From: Hugo Villeneuve Date: Mon, 5 Sep 2011 14:06:16 +0000 (-0400) Subject: Initial commit from official grip-3.3.1 X-Git-Url: http://gitweb.hugovil.com/?a=commitdiff_plain;h=45c0e948e8b98c5034d1e76e32c549063d185811;p=hvgrip.git Initial commit from official grip-3.3.1 --- 45c0e948e8b98c5034d1e76e32c549063d185811 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/ABOUT-NLS b/ABOUT-NLS new file mode 100644 index 0000000..7e6b380 --- /dev/null +++ b/ABOUT-NLS @@ -0,0 +1,296 @@ +Notes on the Free Translation Project +************************************* + + Free software is going international! The Free Translation Project +is a way to get maintainers of free software, translators, and users all +together, so that will gradually become able to speak many languages. +A few packages already provide translations for their messages. + + If you found this `ABOUT-NLS' file inside a distribution, you may +assume that the distributed package does use GNU `gettext' internally, +itself available at your nearest GNU archive site. But you do _not_ +need to install GNU `gettext' prior to configuring, installing or using +this package with messages translated. + + Installers will find here some useful hints. These notes also +explain how users should proceed for getting the programs to use the +available translations. They tell how people wanting to contribute and +work at translations should contact the appropriate team. + + When reporting bugs in the `intl/' directory or bugs which may be +related to internationalization, you should tell about the version of +`gettext' which is used. The information can be found in the +`intl/VERSION' file, in internationalized packages. + +Quick configuration advice +========================== + + If you want to exploit the full power of internationalization, you +should configure it using + + ./configure --with-included-gettext + +to force usage of internationalizing routines provided within this +package, despite the existence of internationalizing capabilities in the +operating system where this package is being installed. So far, only +the `gettext' implementation in the GNU C library version 2 provides as +many features (such as locale alias, message inheritance, automatic +charset conversion or plural form handling) as the implementation here. +It is also not possible to offer this additional functionality on top +of a `catgets' implementation. Future versions of GNU `gettext' will +very likely convey even more functionality. So it might be a good idea +to change to GNU `gettext' as soon as possible. + + So you need _not_ provide this option if you are using GNU libc 2 or +you have installed a recent copy of the GNU gettext package with the +included `libintl'. + +INSTALL Matters +=============== + + Some packages are "localizable" when properly installed; the +programs they contain can be made to speak your own native language. +Most such packages use GNU `gettext'. Other packages have their own +ways to internationalization, predating GNU `gettext'. + + By default, this package will be installed to allow translation of +messages. It will automatically detect whether the system already +provides the GNU `gettext' functions. If not, the GNU `gettext' own +library will be used. This library is wholly contained within this +package, usually in the `intl/' subdirectory, so prior installation of +the GNU `gettext' package is _not_ required. Installers may use +special options at configuration time for changing the default +behaviour. The commands: + + ./configure --with-included-gettext + ./configure --disable-nls + +will respectively bypass any pre-existing `gettext' to use the +internationalizing routines provided within this package, or else, +_totally_ disable translation of messages. + + When you already have GNU `gettext' installed on your system and run +configure without an option for your new package, `configure' will +probably detect the previously built and installed `libintl.a' file and +will decide to use this. This might be not what is desirable. You +should use the more recent version of the GNU `gettext' library. I.e. +if the file `intl/VERSION' shows that the library which comes with this +package is more recent, you should use + + ./configure --with-included-gettext + +to prevent auto-detection. + + The configuration process will not test for the `catgets' function +and therefore it will not be used. The reason is that even an +emulation of `gettext' on top of `catgets' could not provide all the +extensions of the GNU `gettext' library. + + Internationalized packages have usually many `po/LL.po' files, where +LL gives an ISO 639 two-letter code identifying the language. Unless +translations have been forbidden at `configure' time by using the +`--disable-nls' switch, all available translations are installed +together with the package. However, the environment variable `LINGUAS' +may be set, prior to configuration, to limit the installed set. +`LINGUAS' should then contain a space separated list of two-letter +codes, stating which languages are allowed. + +Using This Package +================== + + As a user, if your language has been installed for this package, you +only have to set the `LANG' environment variable to the appropriate +`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, +and `CC' is an ISO 3166 two-letter country code. For example, let's +suppose that you speak German and live in Germany. At the shell +prompt, merely execute `setenv LANG de_DE' (in `csh'), +`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). +This can be done from your `.login' or `.profile' file, once and for +all. + + You might think that the country code specification is redundant. +But in fact, some languages have dialects in different countries. For +example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The +country code serves to distinguish the dialects. + + Not all programs have translations for all languages. By default, an +English message is shown in place of a nonexistent translation. If you +understand other languages, you can set up a priority list of languages. +This is done through a different environment variable, called +`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' +for the purpose of message handling, but you still need to have `LANG' +set to the primary language; this is required by other parts of the +system libraries. For example, some Swedish users who would rather +read translations in German than English for when Swedish is not +available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. + + In the `LANGUAGE' environment variable, but not in the `LANG' +environment variable, `LL_CC' combinations can be abbreviated as `LL' +to denote the language's main dialect. For example, `de' is equivalent +to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' +(Portuguese as spoken in Portugal) in this context. + +Translating Teams +================= + + For the Free Translation Project to be a success, we need interested +people who like their own language and write it well, and who are also +able to synergize with other translators speaking the same language. +Each translation team has its own mailing list. The up-to-date list of +teams can be found at the Free Translation Project's homepage, +`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" +area. + + If you'd like to volunteer to _work_ at translating messages, you +should become a member of the translating team for your own language. +The subscribing address is _not_ the same as the list itself, it has +`-request' appended. For example, speakers of Swedish can send a +message to `sv-request@li.org', having this message body: + + subscribe + + Keep in mind that team members are expected to participate +_actively_ in translations, or at solving translational difficulties, +rather than merely lurking around. If your team does not exist yet and +you want to start one, or if you are unsure about what to do or how to +get started, please write to `translation@iro.umontreal.ca' to reach the +coordinator for all translator teams. + + The English team is special. It works at improving and uniformizing +the terminology in use. Proven linguistic skill are praised more than +programming skill, here. + +Available Packages +================== + + Languages are not equally supported in all packages. The following +matrix shows the current state of internationalization, as of May 2001. +The matrix shows, in regard of each package, for which languages PO +files have been submitted to translation coordination, with a +translation percentage of at least 50%. + + Ready PO files bg cs da de el en eo es et fi fr gl hr id it + +----------------------------------------------+ + a2ps | [] [] | + bash | [] [] [] [] | + bison | [] [] [] [] | + clisp | [] [] [] [] | + cpio | [] [] [] [] | + diffutils | [] [] [] [] [] [] [] | + enscript | [] [] | + error | [] | + fileutils | [] [] [] [] [] [] [] | + findutils | [] [] [] [] [] [] [] [] | + flex | [] [] [] | + gawk | | + gcal | | + gcc | [] | + gettext | [] [] [] [] [] [] [] [] [] | + gnupg | [] [] [] [] [] | + grep | [] [] [] | + hello | [] [] [] [] [] [] [] [] [] | + id-utils | [] [] | + indent | [] [] [] [] [] | + libc | [] [] [] [] [] [] [] [] | + lilypond | | + lynx | [] [] [] | + m4 | [] [] [] [] [] [] [] | + make | [] [] [] [] | + parted | [] [] | + ptx | [] [] [] [] [] [] [] | + python | | + recode | [] [] [] [] [] [] [] [] | + sed | [] [] [] [] [] [] [] [] [] | + sh-utils | [] [] [] [] [] [] [] [] [] | + sharutils | [] [] [] [] [] [] [] | + soundtracker | | + sp | | + tar | [] [] [] [] [] [] [] [] | + texinfo | [] [] [] [] | + textutils | [] [] [] [] [] [] [] | + util-linux | [] | + wdiff | [] [] [] [] [] [] [] | + wget | [] [] [] [] [] [] [] [] [] | + +----------------------------------------------+ + bg cs da de el en eo es et fi fr gl hr id it + 0 14 21 27 10 1 8 20 13 1 28 17 0 9 11 + + ja ko lv nl no pl pt pt_BR ru sk sl sv tr zh + +----------------------------------------------+ + a2ps | [] [] [] | 5 + bash | | 4 + bison | [] [] [] | 7 + clisp | [] | 5 + cpio | [] [] [] [] [] | 9 + diffutils | [] [] [] | 10 + enscript | [] [] [] | 5 + error | | 1 + fileutils | [] [] [] [] [] [] [] [] [] | 16 + findutils | [] [] [] [] [] [] | 14 + flex | [] [] [] | 6 + gawk | | 0 + gcal | | 0 + gcc | [] | 2 + gettext | [] [] [] [] [] [] [] [] [] [] | 19 + gnupg | [] [] [] | 8 + grep | | 3 + hello | [] [] [] [] [] [] [] [] | 17 + id-utils | [] [] [] | 5 + indent | [] [] [] [] [] [] [] | 12 + libc | [] [] [] [] [] [] [] | 15 + lilypond | [] | 1 + lynx | [] [] [] [] [] | 8 + m4 | [] [] [] [] [] | 12 + make | [] [] [] [] [] | 9 + parted | [] [] [] | 5 + ptx | [] [] [] [] [] [] | 13 + python | | 0 + recode | [] [] [] | 11 + sed | [] [] [] [] [] [] [] | 16 + sh-utils | [] [] [] [] [] [] [] [] [] [] | 19 + sharutils | [] [] [] [] | 11 + soundtracker | | 0 + sp | | 0 + tar | [] [] [] [] [] [] [] [] | 16 + texinfo | [] [] | 6 + textutils | [] [] [] [] [] [] [] [] | 15 + util-linux | [] | 2 + wdiff | [] [] [] [] [] | 12 + wget | [] [] [] [] [] [] [] [] | 17 + +----------------------------------------------+ + 29 teams ja ko lv nl no pl pt pt_BR ru sk sl sv tr zh + 40 domains 18 8 0 23 6 16 1 15 26 9 9 20 2 3 336 + + Some counters in the preceding matrix are higher than the number of +visible blocks let us expect. This is because a few extra PO files are +used for implementing regional variants of languages, or language +dialects. + + For a PO file in the matrix above to be effective, the package to +which it applies should also have been internationalized and +distributed as such by its maintainer. There might be an observable +lag between the mere existence a PO file and its wide availability in a +distribution. + + If May 2001 seems to be old, you may fetch a more recent copy of +this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date +matrix with full percentage details can be found at +`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. + +Using `gettext' in new packages +=============================== + + If you are writing a freely available program and want to +internationalize it you are welcome to use GNU `gettext' in your +package. Of course the GNU Public License applies to your sources from +then if you include `gettext' directly in your distribution on but +since you are writing free software anyway this is no restriction. + + Once the sources are change appropriately and the setup can handle to +use of `gettext' the only thing missing are the translations. The Free +Translation Project is also available for packages which are not +developed inside the GNU project. Therefore the information given above +applies also for every other Free Software Project. Contact +`translation@iro.umontreal.ca' to make the `.pot' files available to +the translation teams. + diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..7a198fe --- /dev/null +++ b/AUTHORS @@ -0,0 +1,4 @@ +Mike Oliphant + +See Changelog and CREDITS for the many code contributions +by others diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..a43ea21 --- /dev/null +++ b/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + 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 + + Appendix: 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) 19yy + + 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., 675 Mass Ave, Cambridge, MA 02139, 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) 19yy 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/CREDITS b/CREDITS new file mode 100644 index 0000000..6e8038e --- /dev/null +++ b/CREDITS @@ -0,0 +1,54 @@ +If you submit a patch to Grip, submit an entry in this file. Additional +credits can be found in the ChangeLog file. +----------------------------------------------------------------------- + +2000-04-10 - Michael Bedy + + Fix a seg fault I encountered in the CDDB code. + +Sat 00/04/08 - Steven Kehlet + + mods to compile under FreeBSD + +1999-08-25 Friedemann Baitinger + + Added support to automatically write a 'm3u' playlist + file after finishing ripping + +Wed 99/02/06 - christian + + Added email field to Misc config tab and altered SubmitEntry() and + SubmitBugReport() to generate a file we pipe to sendmail -t. + + Added automatic DBScan when CDDB lookup is successful if selected + in CD config tab. _experimental_? + +Mon 99/04/05 - craig nellist + + Added option to reshuffle everytime playback is started (=> added + config/playback check button + +Mon 99/04/05 - craig nellist + + Added option to perform CDDB lookups automatically for new discs + (=> added config/cddb check button) + + Fixed CDDB indicator not being cleared after failed query + +Fri 99/04/02 - craig nellist + + Added option to not interrupt playback during startup + shutdown and CDDB lookups. (=> added config/misc check + button) + + Added option to rewind to first track when playback + is stopped. (=> added config/misc check button) + + Added option to default to track 1 if no CD is playing. + (=> added config/misc check button) + + Added a '-' to time display when displaying time remaining. + + +Wed 99/03/10 - David Decotigny + + Added basic support for play lists (prog_tracks[]). + + Added support for random / loop play modes (=> added + appropriate toggle buttons). + +ID3 tagging code contributed by Ian Campbell + + +David Walluck, for helping to fix my RPM .spec file + +Dima Barsky, for giving me a workaround for a freezing problem that ocurred +when running bladeenc + +Greg Grensteiner, for suggesting a nice way to implement multi-track ripping diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..88a2ec7 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,1117 @@ +2005-06-25 Mike Oliphant + + * de.po: updated (Götz Waschk) + * it.po: updated (Ceoldo Costantino) + * fr.po: updated (Eric Lassauge) + * pl_PL.po: added (Piotr Adamocha) + * id3.c: put a zero byte before the id3v1 track number (Vladimir + Petrov) + * discdb.c: string parsing fixes to support i18n (Vladimir Petrov) + * discdb.c: better handling of non-UTF-8 local discdb files + (Vladimir Petrov) + * various: tweaks to filesystem-safe character escaping (Vladimir + Petrov) + * cdplay.c: allow retrieving of non-UTF-8 discdb entries (Vladimir + Petrov) + * discdb.c: fixed a possible buffer overflow crash (Dean Brettle) + * grip.spec.in: added some missing BuildRequires (Stephen + E. Dudek) + * configure.in: upped version to 3.3.1 + + +2005-01-29 Mike Oliphant + + * nl.po: added (Sander Brabander) + * hu.po: added (Ferenc Veres) + * various: notification area support added + (Christian Kirbach, Eoin Coffey) + * grip.spec: fixed email address + * rip.c: better error message if ripping is done with no disc in + the drive (Markus Kaufhold) + * rip.c/cdplay.c/discedit.c/grip.c/gripcfg.c: converted some + warnings to use gnome_app_warning + * various: notification area support added (Eoin Coffey) + * discdb.c: fixed a problem keeping proxy support from working + (Skip Slugger, lucabon) + * discedit.c: do not show the multi-artist UI when no disc is + present (Vladimir Petrov) + * discedit.c: removed stray debugging when editing disc titile + (Julian C. Dunn) + * rip.c: fixed track number being off by one when auto-naming + empty tracks (Vladimir Petrov) + * configure.in: upped version to 3.3.0 + + +2004-04-26 Mike Oliphant + + * cdplay.c: fixed crash when clicking on rip column without a disc + inserted (thanks to Michael Mauch for catching this) + * configure.in: upped version to 3.2.0 + +2004-04-20 Mike Oliphant + + * ja.po: updated (Takeshi Aihana) + * ca.po: updated (Jordi Mallach) + * de.po: updated (Götz Waschk) + * fi.po: updated (Flammie Pirinen) + * it.po: updated (Ceoldo Costantino) + * grip.c/rip.c: additional i18n strings + * status_window.c: made vte terminal accept UTF-8 + * various: copyright updates + * configure.in: upped version to 3.1.10 + +2004-04-02 Mike Oliphant + + * it.po: updated (Ceoldo Costantino) + * ja.po: updated (Takeshi Aihana) + * fi.po: updated (Flammie Pirinen) + * cdplay.c: make length and rip columns size appropriately in + different languages + * cdplay.c: fixed bug in playlist support (Markus Kaufhold) + * discdb.c: fixed a string length calculation (Thomas Zajic) + * discdb.c: removed redundant curl calls (Markus Kaufhold) + * status_window.c: fixed a crash problem in certain locales + (Markus Kaufhold) + * rip.c/launch.c: translate args of launched programs to locale + * grip.c/grip.h/discdb.c/cdplay.c: fixed resizing issues, and now + window sizes and edit/volume/prog status are remembered + * grip.c/gripcfg.c/gripcfg.h/parsecfg.c: save ripper/encoder + configurations individually + * grip.c: added i18n for a few more strings (Jordi Mallach) + * configure.in: upped version to 3.1.9 + +2004-03-27 Mike Oliphant + + * de.po: updated (Götz Waschk) + * discdb.c: fixed a problem causing crashes on disc lookup + * configure.in: upped version to 3.1.8 + +2004-03-22 Mike Oliphant + + * de.po: updated (Götz Waschk) + * bg.po: added (Vladimir "Kaladan" Petkov) + * it.po: updated (Ceoldo Costantino) + * gripcfg.c: added date switch to oggenc config + * main.c: fixed an i18n issue withe --help (thanks to Laurent + Martelli for catching this) + * grip.c: default disc db encoding to UTF-8 instead of locale + * configure.in: upped version to 3.1.7 + +2004-03-11 Mike Oliphant + + * de.po: updated (Götz Waschk) + * it.po: updated (Ceoldo Costantino) + * various: fixed handling of UTF-8 + * cdplay.c: fixed handling of clicks on the tracklist + * grip.c: display an error window if the cd device cannot be opened + * gripcfg.c: added track number and genre switches to oggenc config + * id3.c: added JPop, Anime, and SynthPop genres + * discdb.c/h: don't truncate artist/title to 64 characters + * discdb.c/configure.in: switched from ghttp to libcurl + * configure.in: upped version to 3.1.6 + +2004-03-01 Mike Oliphant + + * de.po: updated (Götz Waschk) + * it.po: updated (Ceoldo Costantino) + * fi.po: updated (Flammie Pirinen) + * fr.po: updated (Eric Lassauge) + * gripcfg.c/gripcfg.h/rip.c/rip.h/grip.c/grip.h: extension is now + determined by the encode preset + * cdplay.c/discdb.c: support for UTF-8 when talking to discdb + servers (thanks to Kevin Dalley for pioneering this) + * grip.c/grip.h: display a warning message when people run a dev + version for the first time + * grip.h/rip.c/cdpar.c/cdpar.h/configure.in: check for cdparanoia + includes in both the root include and the cdda subdir + * configure.in: upped version to 3.1.5 + +2003-12-21 Mike Oliphant + + * ja.po: updated (Takeshi Aihana) + * it.po: updated (Ceoldo Costantino) + * grip.h/grip.c/rip.c/cddev.c: NetBSD support + * cdpar.c: changed cdparanoia include location + * rip.c/cddev.c/cddev.h: close cdrom device before ripping to + avoid conflicts (thanks to John Thacker for tracking this down) + * id3.c/id3.h/gripcfg.c/grip.c/grip.h: made unicode in ID3 tags + optional (it doesn't seem to work properly for id3v2) + * configure.in: upped version to 3.1.4 + +2003-11-03 Mike Oliphant + + * de.po: updated (Götz Waschk) + * po/it.po: updated (Ceoldo Costantino) + * po/fi.po: added (Flammie Pirinen) + * grip.c/cdplay.c: minimized mode works again + * various: more UTF8 fixes (Michael Shigorin) + * configure.in: upped version to 3.1.3 + +2003-10-01 Mike Oliphant + + * various: support for alternate character encodings (Sergey Pinaev) + * po/ru.po: fixes (Michael Shigorin) + * rip.c: fixed a bug with ripping more than one disc (Florian Streck) + * discedit.c: year info now saves correctly (Michael Shigorin) + * grip.c/grip.h/gripcfg.c/rip.c: added delayed encoding option + (Jeff Mahoney) + * configure.in: upped version to 3.1.2 + +2003-07-04 Mike Oliphant + + * rip.c: commented out left-over status window code + * be.po: added (Vital Khilko) + * configure.in: upped version to 3.1.1 + +2003-05-30 Mike Oliphant + + * configure.in: cleaned up + * macros: removed + * status_window.c/h: added new status window code (currently + disabled) + * configure.in/grip.spec.in/Makefile.am: build grip.spec from + grip.spec.in + * various: lots of gnome2 changes (thanks to Jean Charles for + doing an intial port) + * po/it.po: added (Ceoldo Costantino) + * configure.in: upped version to 3.1.0 + +2003-04-22 Mike Oliphant + + * fr.po: updated (Eric Lassauge) + * cdplay.c: make cddb lookups not abortable until it is fixed so + that it works properly + * configure.in/grip.spec: upped version to 3.0.7 + * grip.c: enabled general status window + +2003-02-09 Mike Oliphant + + * discdb.c: include (Ed Goforth) + * ja.po: updated (Takeshi AIHANA) + * doc/C/Makefile.am: install images properly (Todd) + * configure.in/grip.spec: upped version to 3.0.6 + +2003-01-12 Mike Oliphant + + * de.po: updated (Goetz Waschk) + * ja.po: updated (Takeshi AIHANA) + * ru.po: updated (Michael Shigorin) + * discdb.c: work around for bug in libghttp that sends "HTTP/1,1" + instead of "HTTP/1.1" on some systems (Michael Mauch) + * rip.c/grip.c/cdplay.c: use 'ripping_a_disc' instead of 'ripping' + to check if a rip is in progress + * doc/C: updated screenshots + * grip.sgml: updated + * rip.c: only increment num_wavs if we are encoding + * rip.c: don't delete wav file on aborted encode + * configure.in/grip.spec: upped version to 3.0.5 + +2002-12-25 Mike Oliphant + + * zh_CN.po: updated (Merlin Ma) + * fr.po/grip.spec: updated (Eric Lassauge) + * ca.po: updated (Jordi Mallach) + * ru.po: updated (Mishell Baranov) + * rip.c/grip.c/grip.h/gripcfg.c: made stopping the cdrom drive + between ripping tracks optional, and default to not (zongo) + * es.po: got rid of duplicate entries + * grip.c/grip.h/rip.c: added overall progress indicators + (Przemyslaw Kryger) + * grip.c/grip.h/rip.c: added tolerance to avoid getting false + "no disc" readings whe drive is spinngin down from a rip + * cdplay.c: fixed bug preventing auto-rip on a disc that had been + previously inserted + * cdplay.c: scroll mouse no longer selects/unselects track rip + check + * cdplay.c: reset to first track when disc ends + * rip.c: rip entire cd now obeys Rip+Encode vs Rip Only + * configure.in/grip.spec: upped version to 3.0.4 + +2002-09-21 Mike Oliphant + + * id3.c: added some #includes + * de.po: updated (Goetz Waschk) + * grip.sgml: MP3->Encoder, and added new config options + * doc/C: created new screenshots + * README: added pointers to get more help + * configure.in/grip.spec: upped version to 3.0.3 + +2002-09-18 Mike Oliphant + + * ca.po: added (Jordi Mallach) + * ja.po: updated (Takeshi AIHANA) + * README: some additional notes about the configure process + * rip.c: changed '%i' tranlation from %02x to %08x (thanks to Alan + Eldridge for this) + * id3.c: reset files to obey the user's umask after v2 tagging + munges them (thanks to David J. MacKenzie for this) + * grip.c: set poll interval to 15 on freebsd and moved force_scsi + out of the cdparanoia-specific config section (thanks to Alan + Eldridge for this) + * grip.h/grip.c/rip.c/gripcfg.c: added option do delay before + ripping (thanks to Jeremiah Stanley for suggesting this) + * grip.spec: Requires/BuildRequires entries (thanks to Thomas + Vander Stichele for this) + * grip.c/grip.h/main.c: added --config option allowing you to + specify a configuration file to allow for multiple + configurations (thanks to Thomas Vander Stichele for this) + * gripcfg.c/rip.c: changed "mp3" to "encode" to placate ogg + fanatics :-) (thanks to Steve Fox for guilt tripping me by + actually submitting a patch) + * configure.in/grip.spec: upped version to 3.0.2 + +2002-06-17 Mike Oliphant + + * pt_BR.po: added (thanks to Wellington Terumi Uemura for this) + * ru.po: added (thanks to Mishell Baranov for this) + * es.po: added (thanks to Noe Misael Nieto Arroyo for this) + * zh_HK.po, zh_TW.po: added (thanks to Anthony Fok for this) + * doc/C/Makefile.am: made DESTDIR safe (thanks to Alan Eldridge + for this) + * grip.c: fixed an initialization problem (thanks to Alan Eldridge + for this) + * grip.c: improved handling of user/host env variables (thanks to + Charles G Waldman for this) + * grip.c/cdplay.c: added manual disc scan button + * cddev.c: set disc_present in a place where it wasn't + * cdplay.c: better handling of disc present/absent status + * grip.c/gripcfg.c/cdplay.c: make polling for new disc optional + * configure.in/grip.spec: upped version to 3.0.1 + * pixmaps/Makefile.am: include all xpms + +2002-04-13 Mike Oliphant + + * rip.c: some fixes to better follow user's id3 tagging + preferences (thanks to Michael Teague for this) + * id3.c: fix to keep id3lib from writing v1 tags + * configure.in/grip.spec: upped version to 3.0.0 + +2002-04-11 Mike Oliphant + + * ja.po: added (thanks to Takeshi AIHANA for this) + * de.po: updated (thanks to Goetz Waschk for this) + * zh_CN.po: updated (thanks to Merlin Ma for this) + * grip.spec: structural changes an zh_CN translation (thanks to + Merlin Ma for this) + * doc: updated some of the screenshots + * README: some additional info on dependencies + * configure.in/grip.spec: upped version to 2.99.3 + +2002-04-02 Mike Oliphant + + * rip.c: fixed a bug causing access checks to fail + * rip.c: don't throw up "rip whole disc" dialog if ripping fails + * configure.in/grip.spec: upped version to 2.99.2 + +2002-04-01 Mike Oliphant + + * de.po: updated (thanks to Goetz Waschk for this) + * zn_CH.po: added (thanks to Merlin Ma for this) + * configure.in: fail if ghttp is not found + * cdpar.c: removed misleading cdparanoia error message + * rip.c: check if we can write wav/mp3/m3u files before proceeding + * rip.c: put a 'nice' call in ThreadRip so that ripping using + internal cdparanoia can be niced. + * gripcfg.c: updated flac commandline + * configure.in/grip.spec: upped version to 2.99.1 + +2002-03-10 Mike Oliphant + + * de.po: updated (thanks to Goetz Waschk for this) + * doc/C/Makefile.am: now obeys DESTDIR (thanks to Alan Eldridge + for this) + * grip.c/parsecfg.c: throw up a dialog and backup the old grip + config if we are forcing a reconfig + * discdb.c: fixed order of title/artist in TTITLE (thanks to + Martin Michlmayr for catching this) + * configure.in/cppmain.cc/main.c/Makefile.am: make sure we + initialize c++ datastructures (thanks to Alan Eldridge for this) + * discdb.c: changed from "secs" to "seconds" in cddb format + * discdb.c: send DYEAR even if it is blank + * gripcfg.c: added "-b %b" to default ogg cmdline (thanks to Taku + Yasui for this) + * rip.c: fixed floating point exception on alpha systems (thanks + to Taku Yasui for this) + * rip.c: make sure num_wavs cannot go below zero (thanks to + Przemyslaw Kryger for this) + * grip.c/grip.h/cdplay.c: added auto play on insert + * discdb.c: fixed wrapping of DTITLE and TTITLE + * gripcfg.c: fixed a problem that screwed up the ripper config if + cdparanoia was not linked in + * launch.c/launch.h/rip.c/cdplay.c: made munging of strings the + default only when we know a filename is being constructed. added + '!' switch modifier to force munging (thanks to Devin Carraway + for pointing out the problem) + * cddev.c/cddev.h: freebsd compatibility fixes (thanks to Alan + Eldridge for this) + * gripcfg.c: do not reset ripper config if the same ripper is + re-selected (thanks to Alan Eldridge for this) + * main.c/grip.c/grip.h: added 'scsi-device' parameter + * gripcfg.c: move generic scsi config out of the builtin paranoia + section + * rip.c: added the 'C' switch for passing the generic scsi device + * README: updated usage + * grip.sgml: added docs for the new 'C' switch + * gripcfg.c: changed cdda2wav to use 'C', removed unnecessary + '*'s, and got rid of \" escaping in oggenc commandline + * fr.po: updated (thanks to Eric Lassauge for this) + * configure.in: added '-lm' to LIBS to try to work around a + cdparanoi link problem on some platforms + * contrib: added contrib directory + * contrib/write-gronk-discid: added (thanks to Alan Eldridge for + this) + * gripcfg.c/gripcfg.h: use PATH to find executables (thanks to + Alan Eldridge for this) + * configure.in/grip.spec: upped version to 2.99.0 + +2002-02-19 Mike Oliphant + + * various: solaris compile fixes (thanks to Jim Crumley for + pointing out the SOLARIS->__sun__ change) + * rip.c: switched order of statvs vs vfs check (thanks to Jim + Crumley for this) + * grip.sgml: added documentation for the "Proxy" and "Misc" config + tabs + * rip.c: ask if we should rip all tracks if none are selected + (thanks to Przemyslaw Kryger for this) + * main.c: unbuffered debugging (thanks to Alan Eldridge for this) + * grip.spec: added '%defattr(-, root, root)' to make installed + files have the proper ownership (thanks to Thomas Schultz for + this) + * de.po: added (thanks to Goetz Waschk for this) + * configure.in/grip.spec: upped version to 2.98.7 + +2002-02-10 Mike Oliphant + + * gripcfg.c: fixed a bug keeping rip config options from + reflecting whether builin cdparanoia was being used or not + (thanks to Marc Williams for pointing the problem out) + * configure.in: added an option to disable compiling with id3lib + (thanks to Thierry Vignaud for this) + * fr.po: added (thanks to Eric Lassauge for the translation) + * rip.c: move where disc filter was being called (cosmetic, not + functional change) + * parsecfg.c: cast boolean values as gboolean instead of int + (thanks to Didier Malenfant for this) + * configure.in: use '.' instead of 'source' in id3 compile check + for portability (thanks to Alan Eldridge for this) + * cddev.c: fix to data track detection when using cdio.h (thanks + to Alan Eldridge for this) + * rip.c: includes for freebsd to compile (thanks to Alan Eldridge + for this) + * configure.in/grip.spec: upped version to 2.98.6 + +2002-01-26 Mike Oliphant + + * rip.c: fixed a nasty crashing bug related to the disc filter + command (thanks to Goetz Waschk for finding it) + * configure.in/grip.spec: upped version to 2.98.5 + +2002-01-23 Mike Oliphant + + * rip.c/rip.h/gripcfg.c: don't include gain analysis stuff if + cdparanoia is not built in + * configure.in: added an option to disable cdparanoia + * configure.in/grip.spec: upped version to 2.98.4 + +2002-01-22 Mike Oliphant + + * grip.sgml: added more documentation + * various: added replay gain calcultion (thanks to David Robinson + for the algorithm and Glen Sawyer for the code) + * gripcfg.c/grip.c/grip.h/rip.c: added mp3 filter command + * gripcfg.c/grip.c/grip.h/rip.c: added disc filter command and + album replay gain + * README: updated to reflect the new version + * configure.in/grip.spec: upped version to 2.98.3 + +2002-01-17 Mike Oliphant + + * grip.sgml/grip.c: added some more documentation + * configure.in/grip.spec: upped version to 2.98.2 + +2002-01-16 Mike Oliphant + + * grip.spec: added Epoch: 1 to allow upgrading from redhat rpms + (thanks to Tim Powers for this) + * grip.spec: put the Icon back + * configure.in/grip.spec: upped version to 2.98.1 + +2002-01-13 Mike Oliphant + + * discdb.c: don't overwrite with blank genre on lookup + * configure.in: added option to link id3lib statically + * gripcfg.c: gettextized + * cddev.c: gettextized + * cdplay.c: gettextized + * dialog.c: gettextized + * discdb.c: gettextized + * discedit.c: gettextized + * grip.c: gettextized + * id3.c: gettextized + * launch.c: gettextized + * parsecfg.c: gettextized + * rip.c: gettextized + * launch.c: fixed TranslateAndLaunch (cd update program now works) + * launch.c/rip.c/cdplay.c/grip.c: changed how IO redirect works + * rip.c: Added option to kill just the rip process + * configure.in/grip.spec: upped version to 2.98.0 (not 2.9.8 -- to + make it sequence after 2.96 in rpms/debs) + +2002-01-08 Mike Oliphant + + * discedit.c: fixed a crashing problem on track edit focus out + * cdplay.c: reset year, id3, and track title/artist on eject + * rip.c: increased number of args to rip/enc commandlines to 100 + (thanks to David J. MacKenzie for pointing this out) + * discdb.c: changed wrap trigger to 70 chars on submissions + * discedit.c/cdplay.c/rip.c: only do CheckDupNames just before + starting to rip + * grip.h: added '-i' to sendmail commandline + * grip.c/grip.h/gripcfg.c/rip.c/rip.h/cdpar.c: generic SCSI device + is now overridable when using builtin cdparanoia + * grip.c: use gripicon.png as window icon + * configure.in: adding config check for id3lib (thanks to Goetz + Waschk for this) + * various: renamed id3.h grip_id3.h + * grip.c/grip.h/gripcfg.c/rip.c: made id3v2 tagging optional if + id3lib is installed + * discdb.c: added support for multiple exact matches + * discdb.c: changed protocol level to 5 + * discdb.c/id3.c: added grabbing id3 genre from DGENRE + * configure.in: added configure switch for linking static + cdparanoia libs + * doc/C: added some more docs + +2002-01-04 Mike Oliphant + + * discdb.c: fixed a bug that made lookups always genre misc + * cddev.c/h: added IsDataTrack + * cddev.c/rip.c: compensate for gap before data track + * rip.c: don't try to rip data tracks + * rip.c: use 'long long' for filesystem space check + * gripcfg.c: added preset for FLAC + * cdplay.c: fixed a sync problem with multi-artist checkbox + (thanks to Yves Kurz for this) + * discdb.c/h: support discdb revision correctly + * discedit.c: on submission, ask for a DiscDB genre if it is set + to 'unknown' + * cdpar.c: fixed a problem with rip smiles being one off + * rip.c: have 'Disable paranoia' override 'Disable extra paranoia' + * grip.c: switch to %A in defaults + * launch.c: fixed problem with munge carrying over in translate + (thanks to Goetz Waschk for pointing this out) + +2001-12-30 Mike Oliphant + + * rip.c: Made rip/encode progress labels font-sensitive + * grip.c: Made cdrom device configurable in the gui + * rip.c: num_wavs no longer reset when new rip starts + +2001-05-19 Mike Oliphant + + * cdplay.c: left clicking when in the "Rip" column toggles rip + checkmark * cdplay.c/rip.c: got the CD update program working + again + +2001-04-20 Mike Oliphant + + * various: now compiles with/without builtin cdparanoia support + based on the result of the configure checks + * rip.c: converted wav filter cmd to new translation mechanism + * various: switched to gnome input dialogs + * cdplay.c: fixed crash when discdb lookup fails + * various: id3 genres now sorted + * discdb.c: save id3 genre in local discdb entries + * gripcfg.c/grip.c: made proxy user/pswd editable + * rip.c: do not rip or encode unless there is at least 1.5 times + as much space free as is required + * id3.c: added id3v2 support via id3lib (thanks to Waider for + this) -- still need configure code for it, though + * grip.c/discdb.c: changed mkdir mask to 0777 + * discdb.c: increased string data size to 256 + * cdplay.c: zero-pad "Track xx" trackname defaults + +2001-03-18 Mike Oliphant + + * discedit.c/discedit.h: moved disc editing code to new codebase + +2001-03-11 Mike Oliphant + + * rip.c: converted ripping/encoding to new structure + * rip.c/discdb.c: detatched threads (thanks to James LewisMoss for + this) I think this fixes the strange problems with auto-eject + not working when using builtin cdparanoia + * rip.c/gripcfg.c: added configurable id3 comment + +2000-10-18 Mike Oliphant + + * discdb.c/discdb.h: new version of cddb.c + * discdb.c/discdb.h: limit all title/artist info to 80 characters + * cddev.c: reorganized for efficiency. should be fewer stats now + * grip.c: now a gnome app + * main.c: added + * Makefile: removed. now using GNU configure + * discdb.c: now uses libghttp for http requests + * discdb.c: added proxy user authentication support + * grip.c: switched to gnome-moz-remote for opening the Grip + homepage in the user's web browers + +v2.96 -- July 15th, 2001 +------------------------ + + o detach threads (thanks to James LewisMoss for the patch) + o fixed a crashing problem with relative paths (thanks to Antti Siipola) + o fixed problem causing ripping to hang waiting on encoding (thanks to Alan + Eldridge for this) + o fixed problem with mp3 filenames being limited to 80 characters + o fixed crash on failed disc lookup + o changed the cddb revision number to '0' until revisions get implemented + properly + o write multi-artist tracks in artist / title format + o added '.gz' to man entries in the spec file so newer versions of RPM + don't get confused (thanks to John Aldrich for this) + +v2.95 -- October 18th, 2000 +--------------------------- + + o now only one failure dialog if CDDB query fails on both primary and + secondary serverss + o use "../" in relative paths where appropriate (thanks to Jim Crumley for + this) + o switch max path length from 1024 to PATH_MAX + o fixed a typo in passing '%i' on the encode commandline (thanks for Steven + Czerwinski for this) + o added an option to allow 8bit characters in filenames (patch submitted + anonymously) + o added an commandline option to prevent I/O redirection (thanks to an + anonymous patch) + o added additional id3 genres (thanks to Götz Waschk for this) + o added speed indicators to rip/encode status (thanks to Steinar Gunderson + for this) + o fixed a segfault problem with certain cdrom drives (thanks to + M.E. O'Neill for this) + o added preliminary ogg support. lots of people submitted patches. the + one I applied was from Fredrik Vraalsen + +v2.94 -- April 18th, 2000 +------------------------- + + o made cddb lookups more stable (thanks to Michael Bedy for the patch) + o put ID3v1.1 support back in (it got mysteriously dropped from v2.93) + o more freebsd compatibility fixes (thanks to Steven Kehlet and Robert Ray) + +v2.93 -- April 8th, 2000 +------------------------ + + o added ID3v1.1 support + o added FreeBSD support (thanks to Steven Kehlet and Robert Ray) + o Eject after rip should be more reliable now + +v2.92 -- March 4th, 2000 +------------------------ + + o ID3 tagging now done internally + o now one .spec file is used to build both Grip and GCD (thanks to + Christian Holtje for sending this in) + o added gtk_set_locale() for non-english users + o added option to have relative paths in .m3u files + o tracks are now only added to the .m3u file if selected for ripping + o cleaned up filename permissions in distribution + +v2.91 -- December 19th, 1999 +---------------------------- + + o now compiled with cdparanoia 9.7 + o big memory bug in paranoia library fixed (yay! thanks, monty!) + o switched Makefile to link with paranoia library using the new "libxxx" + library names + o playback mode now saved between sessions + o if playlist mode is selected and there are no tracks in the playlist, the + mode switches to normal mode + o track artist is now properly quote-escaped in the ID3 command-line + (thanks to a *bunch* of people for sending this one in) + o added an option to disable underscoring of spaces + o the %i switch now works properly on the encoder commandline + o loop mode now saved + o volume level is now saved + o when editing track titles, hitting return now goes on to the next track + o increased the size of the start/end sector text entry fields + o fixed a minor problem with the installation of the gcd manpage (thanks to + Ryan Cleary for this) + o ripping no longer stops permanently after it gets shut down my max + non-encoded .wavs + +v2.9 -- November 13th, 1999 +--------------------------- + + o fixed keep-alive handling in cddb lookups (no really, this time!) + o disc no longer auto-ejects when it shouldn't + o added an option to disable lowercasing of filenames + o added an option to keep certain characters from being stripped in + filenames + o updated the README file + o Grip is now silent in non-debug mode + +v2.8 -- November 7th, 1999 +-------------------------- + + o rewinding past the beginning of a track is now more sensible (thanks to + Daniel Venkitachalam for the patch) + o the UI is now brought up without waiting for the cdrom drive to spin up + o filenames are now always converted to lowercase, with all + non-alphanumeric characters deleted and spaces converted to underscores + o added support for the gogo encoder (asm-accelerated version of LAME) + o overhauled the way input widgets work (lots of effort for no difference + to the end-user, but it was the right thing to do...) + o compiled with cdparanoia 9.6 + o added writing of .m3u files (thanks to Friedemann Baitinger for this) + o got rid of title/time display from rip page + o got rid of outputdir -- rip and mp3 file formats are now fully specified + o keep-alive now skipped somewhat more intelligently + o got rid of grip's .rc file. the current implementation of themes makes it + all but impossible to have application-specific .rc files handled + intelligently + o moved ID3 genre selection + o check mark now shows up on white + o changed all snprintf calls to g_snprintf + +v2.7 -- September 9th, 1999 +--------------------------- + + o fixed a problem that would cause a crash if '-d' was used on the + command-line but no drive was given (thanks to Glenn Golden for pointing + this out) + o added numerous changes to compile under solaris (thanks to David Meleedy + for this) + o added the ability to lowercase % switch fields (thanks to Dan Girellini + for this) + o added "Fast Fusion" ID3 genre (thanks to Jarda Benkovsky and Dima Barsky + for letting me know it was missing + o "keep-alive" line now assumed not to exist when going through a proxy + (hope this is the right thing to do...) + o fixed the default id3 commandline + +v2.6 -- August 27th, 1999 +------------------------- + + o fixed a problem that was keeping uninterrupted play from working when + Grip was exited/reloaded (thanks to Jeremy Buhler for pointing this out) + o added preset for xing encoder (thanks to Aubin Paul and red@chipmusic.nu + for this) + o added a "Host:" bit in the cddb http request (thanks to + casey@seattle.gii.net for this) + o added "faulty eject" option for people with nasty drives (thanks to + Steven James for this suggestion) + o num_wavs no longer set to zero when ripping starts (thanks to Steven + James for this) + o if the file to rip already exists, and is the right size, ripping is + skipped (thanks to Sergio Mones, A.R. Henry and Steven James for all + submitting this) + o fixed a problem that would keep auto-eject from working sometimes (thanks + to Steven James for this) + o added the ability to auto-eject after a delay to make sure it happens on + drives that don't reliably eject while spinning down (thanks to Steven + James for this) + o added %i (cddb discid) switch in id3 commandline (thanks to Sean + Reifschneider for this) + o cddb discid should now work on 64bit systems + o added a Grip man page (thanks to Aaron Sherman for this) + o the builtin cdparanoia no longer enforces user access. if you run Grip as + root, the builtin cdparanoia will now be able to access root-only files + o the loop mode toggle now uses two different bitmaps + o fixed reading of EXTT cddb field (thanks to Michel Verdier for this) + o fixed a problem that was keeping the '-l' option from working (thanks to + Dima Barsky for this) + o http 1.1 is now used for cddb lookups (virtual hosts now supported) + +v2.5 -- July 1st, 1999 +---------------------- + + o fixed a problem that was keeping ripping a new disc while encoding the + previous one from working (thanks to Jonathan Stockley for pointing out + that this wasn't working) + o fixed *another* bug that was preventing ripping a new disc + o partial rip info now insensitive if partial rip not selected + o switched "rip only" and "rip+encode" -- rip+encode is the most used + o bumped the maximum number of CPUs up to 16 to satisfy people who are + ripping CDs on systems they should probably be using for work... + o added option to automatically rip when a disc is inserted and to + automatically eject when ripping finishes (thanks to Sean Reifschneider + for suggesting this and sending in some code) + o added ':' to list of default underscore characters + o removed "save configuration" button -- save is now automatic at exit + o multi-artist splitting can now be done Artist/Title in addition to + Title/Artist + o added an option to "beep" at end of rip + o artist fields are now no longer carried over to an unidentified disc + +v2.4 -- June 21st, 1999 +----------------------- + + o the window now moves if it gets resized off of the screen + o Grip now attempts to unlock the door before ejecting (thanks to Sean + Reifschneider for the patch) + o Grip should now open the tray when you hit eject with no disc in the + drive if you have a decent drive. I don't :-( + o encoding of already ripped tracks now no longer requires the disc to be + in the drive + o error messages now pop up if you try to access the cd while ripping + o program and version names are now correct in GCD's cddb lookup + o got rid of genre directories for local cddb storage (but it will still + search them for backward compatibility + o fixed a bug that could truncate the %A switch in ID3 tagging + o playback now cleanly stopped when ripping starts + o fixed a bug that was causing the %a switch to be wrong in ID3 tagging + o fixed a problem that would set a check after doing a partial rip + o fixed a compile compatibility problem with toggle buttons under older + versions of gtk+ + o fixed problems that would cause ripping and encoding to fail on some + systems (thanks to Ian Soboroff for helping to track this down) + o modified the cdda2wav config and added mp3encode (thanks to Avi Alkalay + for this) + o fixed a problem with the disc not updating when it is switched with + ripping (but not encoding) finished + o critical colors now done internally rather than through a gtkrc + file. this was necessary because themes (brokenly) override application + rc files + o title no longer duplicated as the artist if a song has no artist in multi + o user is now prompted if they try to shut down while ripping/encoding + +v2.3 -- June 14th, 1999 +----------------------- + + o large cddb EXTD and EXTT entries now wrapped properly + o cddb submission not sent if disc or artist field is blank + o fixed '%A' switch + o added a .wav "filter" command that can be run after ripping + o grip and gcd no longer install setuid root. this will make things more + difficult for some users, but is "the right thing to do" + o config file is now ~/.grip instead of /usr/lib/grip/grip.cfg + o added an informative message if the cd device is inaccessible + o fixed up the volume slider so it doesn't encroach on the buttons + o fixed a bug with the artist for the cdupdate program + o added '*' option to skip underscoring of % arguments in file formats + +v2.2 -- June 3rd, 1999 +---------------------- + + o made the progress bars a bit slimmer + o added defaults for common rippers/encoders + o changed track clist selection mode from single to browse + o grip now uses Paranoia directly -- no more running cdparanoia separately! + o added cdparanoia-like "smilies" to indicate rip status + o added builtin paranoia config options + o reorganized the makefile to allow inclusion of cdparanoia to be optional + o reply email address is now configurable (thanks to christian + for the patch) + +v2.1 -- May 31st, 1999 +---------------------- + + o the %a switch in the ID3 command-line now uses the track artist on a + multi-artist cd + o added a %y (year) switch to the ID3 command-line + o cddb genre combo now will not allow the user to entry a genre that isn't + in the list + o cddb submission is now blocked if genre is 'unknown' + o changing the number of cpus now finally works (honest!) -- thanks to Jeff + Dairiki for pointing out that it *still* didn't work in 2.0 + o ~ now supported in filenames + o %g and %G fields now available in file format + o added option to configure encode bitrate and %b switch for mp3 cmdline + o encode progress bar is now 100% accurate if kbit/sec is properly set + o %% now translates as % in switch translation + o added %A switch. this is just like %a, but it stays as the disc artist + even on multi-artist cds + +v2.0 -- May 26th, 1999 +---------------------- + + o fixed a problem with the number of cpu's not getting updated properly + o the cdupdate program is now only called when there is a disc present + (thanks to Simon Rumble for pointing this bug out) + o fixed a problem with the secondary server proxy not being set properly + (thanks to Philippe Raoult for pointing this out) + o added support for multi-artist discs + o added 1 to the track number in the id3 command-line + o clicking on the LCD display now give "super-condensed" mode + o fixed a problem that would keep .wav files from being deleted if the file + was not accessible by root + o year field added to disc information + o extra songs no longer carry over to the next disc + o grip no longer shrinks when volume/track edit are toggled when not + minimized (thanks to Philippe Raoult for the patch) + o proxy yes/no now updated properly (thanks to Alain Schroeder for pointing + the problem out) + o made shrink inhibition when toggling volume/track edit optional + +v1.9 -- April 27th, 1999 +------------------------ + + o added SMP support (thanks to Philippe Raoult for the code) + o play information is now shown in the icon window title (thanks to Martin + Pool for this) + o underscoring of filenames no longer changes the source variables + o disc/track extended information now cleared between discs + o added a config.h option to specify the mail program (thanks to Greg Ward + for this) + o the rip/mp3 file formats can now have path information in them + o added user-agent field to HTTP requests + o switched default ID3 tagger to mp3info + o removed unnecessary malloc-ing in UpdateTracks() + o track length column is now right-justified + o duplicate tracks names now modified to guarantee unique rip names + o fixed a problem looking up discs with a large number of tracks + o added -D_REENTRANT switch to CFLAGS -- this fixes problems with libc5 + o converted the .cfg file to a key-based scheme + o added ability to store song info in an SQL database (currently disabled) + +v1.8 -- April 6th, 1999 +----------------------- + + o the playlist is now updated when the entry loses focus + o switched to a "busy" cursor while play is initiating + o reset playing flag when a disc is ejected + o added a debugging mode + o manual CDDB lookup now prevented if no disc is in the drive + (thanks to Craig Nellist for pointing this out) + o added CREDITS file + o added an options for managing non-interrupted playback when Grip quits, + and a '-' in front of the playback time for "time left" modes + (thanks to Creg Nellist for this code) + o .wav files are now not deleted if the user aborts the rip + (thanks to Sergio Monesi for this) + o clicking on the 'Rip' column title now deselects all tracks if more than + half of them are selected, and selects them all otherwise + o fixed a bug that was causing a cd-detection failure on some systems + o CDDB indicator now updates correctly on a failed query, a flag to + select whether CDDB lookup should happen automatically has been added, + and there is now an option to reshuffle every time playback is started + (thanks to Creg Nellist for these) + o CD-play related options moved to their own tab in the config notebook + o the existence of rip/mp3 programs is now checked before proceeding + o the maximum length of output filenames and rip/mp3/id3 command-lines is + now strictly enforced + +v1.7 -- March 31st, 1999 +------------------------ + + o moved the proxy config options to a separate tab + o underscoring now not done in ID3 command-line + o added a warning when entries are submitted to a commercial server + o added a gtk+ version compatibility warning + o added secondary CDDB server + o the user is now asked if they want to submit when a disc is found on the + secondary server, but not the primary one + o switched the freecddb cgi-path to ~cddb + o made detection of no disc even more reliable + o Makefile now uses install (thanks to Eduard Dulich) + o fixed a nasty bug that could cause Grip to expand to the whole screen + (thanks to Shaw Terwilliger for this) + o fixed a security hole (thanks go to Jonathan Pickard) + o added labels to the disc edit entries, and switched the order of + title/artist + o fixed a problem that was resulting in an unnecessary horizontal scrollbar + in the track list widget in GCD + o added the ability to select CDDB genres + o track transitions are now smooth when in normal play mode + o added a help tab and a bug report submission form + +v1.6 -- March 26th, 1999 +------------------------ + + o removed the leading '/' from the default CDDB cgi path + o removed the submission of user name and host information to the CDDB + server -- I feel that this information is private, and should not be + submitted without the user's consent. anyway, the server has no + (non-marketing) use for it + o added CDDB submission + o added editing of disc title/artist + o low-level cd control now done by Grip instead of libcdaudio + o all libcdauio dependencies now removed + o added "save disc info" button + o the GUI is now more responsive while a song is playing + o fixed a nasty bug that was causing disc title/artist to be switched + o fixed a problem with CDDB entries sometimes being saved as root + o volume control is now set properly on startup + o encoding no longer hangs if the MP3 file format is set improperly + o fixed a problem with not stopping in non-loop play + o fixed a problem that was causing play to stop at the end of a track if + play had been paused (this is a low-level driver bug, I think) + +v1.5 -- March 24th, 1999 +------------------------ + + o added a popup message if the use selects rip/encode with no tracks + selected + o added another fix that *might* fix the X i/o problems some people are + having + o fixed a bug with start/end sector info in command-line/filename parsing + (thanks go to Jonathan Aseltine for pointing this out to me) + o fixed a bug that was keeping the '-d' command-line option from working + (thanks to Alan Wild for sending this in) + o added yet *another* fix to try to get rid of X i/o problems + o added loop and shuffle play modes (courtesy of David Decotigny) + o made the cgi path of the CDDB server configurable + o switched the default CDDB server to freecddb.freecddb.org + o fixed up shuffle play, and added playlist support + o CDDB entry reading/writing is now done by Grip rather than libcdaudio + +v1.4 -- March 8th, 1999 +----------------------- + + o added '"' to the default list of underscored characters + o added %i option to pass the discid as a command-line argument + o added Grip URL to about page (clicking loads page in netscape) + o fixed a problem with GCD accessing a Grip-only label + o the track/time indicator is now displayed properly while looking up a + disc through CDDB + o set the volume widget to the correct scale (it was too quiet) + o CDDB lookup can now be aborted and initiated at any time + o clicking on the time display now toggles the mode between time played in + track, time played in disc, time left in track, and time left in disc + o initial support for cd-changers added, but not tested (I don't have one) + o Track names are now editable + o fixed a bug with handling CDDB entries with long disc/track names + o added '-l' command-line option to disable CDDB lookup + o fixed (I hope!) a bug with CDDB lookup of discs with many tracks + o added a popup message when user's try to edit root-only config options + +v1.3 -- March 2nd, 1999 +----------------------- + + o pixmaps are now compiled into the executable + o added a fix that *might* fix the Xlib async errors some people are getting + o Grip can now read proxy server/port from the "http_proxy" env. variable + o made the text entry widgets take up as much space as they can + o the text in entry widgets is now initially set to display from the + beginning (it looked odd before) + o introduced GCD, a cd-player only version of Grip + +v1.2 -- February 23rd, 1999 +--------------------------- + + o added error message when a pixmap fails to load + o added an option to call an external program to add ID3 tags to the + encoded files. Contributed by Ian Campbell + o cleaned up the look of the config section a bit + o added option to limit the number of tracks to have waiting to be encoded + o rip/encode processes that are active when Grip is shut down are now + terminated + +v1.1 -- February 17th, 1999 +--------------------------- + + o underscoring of spaces filenames is now optional + o added a configurable set of characters to underscore in filenames + o the '%t' (track) switch is now zero-padded to 2 characters + o CDDB lookup is now done by Grip, rather than using libcdaudio + o better handling of self-titled albums + o 'nice' values are now supported for the rip/encode processes + o fixed a bug that could make Grip encode when you didn't want it to + o the time display now stops flashing if the disc is stopped while paused + o now only options that impact the rip program/filename need root access to + be able to configure them + +v1.0 -- February 2nd, 1999 +-------------------------- + + o added a "CD update" program to run whenever a new disc is loaded + o removed the extra "output directory" option in the CDDB config section + o fixed freezing problem with bladeenc + o new icons to show rip/encode progress and CDDB lookup in LCD panel + o tooltips color selection now down through .rc file + o ripping and encoding now run simultaneously for multi-track rips + +v0.9 -- January 18th, 1999 +-------------------------- + + o track times are now displayed while looking up a disc in the CDDB + o Grip now uses the new http-based libcdaudio interface + o added support for proxy servers for CDDB lookup + o added '%c' switch to specify cdrom device + o the '%' switches can now be used in the output directory path + o output files are no longer written as root + +v0.8 -- January 11th, 1999 +-------------------------- + + o fixed a bug that kept the "previous track" button from working properly + when audio was playing + o fixed a bug that made the display keep updating after play hit the end + of a disc + o clicking on the "Rip" column heading will now select all tracks + o added scrolled window for track display in gtk+ 1.1.x versions + o selection of tracks to rip with right mouse should now work for + gtk+ 1.1.x + o selecting a track to rip no longer interacts with whether the track is + selected + +v0.7 -- January 5th, 1999 +------------------------- + + o added a volume control + o the eject button will now close the drive if it is open + o gtk_clist_set_policy() not used if compiling with gtk 1.1.x + o added support for ripping multiple tracks + o re-organized the config page into multiple sub-pages + o re-organized the rip page + o added a button to toggle partial track ripping + o added rip/encode status to the LCD display + o added options to configure the format of ripped and encoded files + o added option to configure output directory + o added option to delete .wav files after MP3-encoding them + +v0.6 -- December 22nd, 1998 +--------------------------- + + o made next/prev track buttons work a bit more sensibly + o standard play now continues to subsequent tracks + o Rip page track info now recognizes when no disc is present + o added track number to track info display + o cd status is no longer checked when idle with a disc in the drive + o track names with a '/' can now be ripped + o the track display now only has scrollbars if they are needed + o fastfwd and rewind now continue if the button is held down + +v0.5 -- December 18th, 1998 +--------------------------- + + o compressed the controls a bit + o added support for MP3-encoding + o added cute rounding effect on the "LCD" display + +v0.4 -- December 16th, 1998 +--------------------------- + + o the play time indicator now resets to zero when a disc is ejected + o changed the look of the CD controls + o added "cd-only" mode + o added "-s" command-line option to force cd-only mode + o the main window now pops up all at once + o added current track indicator in cd panel display + o added fastforward and rewind (kind of) + +v0.3 -- December 14th, 1998 +--------------------------- + + o fixed a bug that would cause a crash if no disc was present on startup + o fixed a bug that would cause discs to be looked up in the CDDB even + if a record was already stored locally + o the display now reflects the situation when no disc is present + o updating data when discs are changed is now much better + o added a CDDB access indicator + +v0.2 -- December 10th, 1998 +--------------------------- + + o ripping is now disabled if you are already ripping + o fixed a memory allocation bug in the track list clist + o CDDB lookup is now threaded + +v0.1 -- December 8th, 1998 +-------------------------- + + o first public release + diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..e69de29 diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..fdf3a60 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,9 @@ +SUBDIRS = po src pixmaps doc contrib + +EXTRA_DIST = \ + grip.desktop \ + CREDITS \ + grip.spec.in + +Applicationsdir = $(datadir)/applications +Applications_DATA = grip.desktop diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..ea7d3d3 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,492 @@ +# Makefile.in generated by automake 1.6.3 from Makefile.am. +# @configure_input@ + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_HEADER = $(INSTALL_DATA) +transform = @program_transform_name@ +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ + +EXEEXT = @EXEEXT@ +OBJEXT = @OBJEXT@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +AMTAR = @AMTAR@ +AS = @AS@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CDPAR_LIBS = @CDPAR_LIBS@ +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +DATADIRNAME = @DATADIRNAME@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +ID3_LIBS = @ID3_LIBS@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +LDFLAGS = @LDFLAGS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +MAINT = @MAINT@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +OBJDUMP = @OBJDUMP@ +PACKAGE = @PACKAGE@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +am__include = @am__include@ +am__quote = @am__quote@ +install_sh = @install_sh@ +SUBDIRS = po src pixmaps doc contrib + +EXTRA_DIST = \ + grip.desktop \ + CREDITS \ + grip.spec.in + + +Applicationsdir = $(datadir)/applications +Applications_DATA = grip.desktop +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = grip.spec +DIST_SOURCES = +DATA = $(Applications_DATA) + + +RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \ + uninstall-info-recursive all-recursive install-data-recursive \ + install-exec-recursive installdirs-recursive install-recursive \ + uninstall-recursive check-recursive installcheck-recursive +DIST_COMMON = README ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL \ + Makefile.am Makefile.in NEWS TODO aclocal.m4 config.guess \ + config.h.in config.sub configure configure.in depcomp \ + grip.spec.in install-sh ltconfig ltmain.sh missing \ + mkinstalldirs +DIST_SUBDIRS = $(SUBDIRS) +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: + +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe) + +$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h + +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOHEADER) + touch $(srcdir)/config.h.in + +distclean-hdr: + -rm -f config.h stamp-h1 +grip.spec: $(top_builddir)/config.status grip.spec.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +ApplicationsDATA_INSTALL = $(INSTALL_DATA) +install-ApplicationsDATA: $(Applications_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(Applicationsdir) + @list='$(Applications_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(ApplicationsDATA_INSTALL) $$d$$p $(DESTDIR)$(Applicationsdir)/$$f"; \ + $(ApplicationsDATA_INSTALL) $$d$$p $(DESTDIR)$(Applicationsdir)/$$f; \ + done + +uninstall-ApplicationsDATA: + @$(NORMAL_UNINSTALL) + @list='$(Applications_DATA)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f $(DESTDIR)$(Applicationsdir)/$$f"; \ + rm -f $(DESTDIR)$(Applicationsdir)/$$f; \ + done + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +ETAGS = etags +ETAGSFLAGS = + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$tags$$unique" \ + || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = . +distdir = $(PACKAGE)-$(VERSION) + +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } + +GZIP_ENV = --best +distcleancheck_listfiles = find . -type f -print + +distdir: $(DISTFILES) + $(am__remove_distdir) + mkdir $(distdir) + $(mkinstalldirs) $(distdir)/. $(distdir)/po + @list='$(DISTFILES)'; for file in $$list; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" \ + distdir=../$(distdir)/$$subdir \ + distdir) \ + || exit 1; \ + fi; \ + done + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist dist-all: distdir + $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + $(am__remove_distdir) + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \ + && cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + find $$dc_install_base -type f -print ; \ + exit 1; } >&2 ) \ + && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \ + && rm -f $(distdir).tar.gz \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @echo "$(distdir).tar.gz is ready for distribution" | \ + sed 'h;s/./=/g;p;x;p;x' +distcleancheck: distclean + if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) config.h +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(Applicationsdir) + +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) +distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +info: info-recursive + +info-am: + +install-data-am: install-ApplicationsDATA + +install-exec-am: + +install-info: install-info-recursive + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf autom4te.cache +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +uninstall-am: uninstall-ApplicationsDATA uninstall-info-am + +uninstall-info: uninstall-info-recursive + +.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \ + clean-generic clean-libtool clean-recursive dist dist-all \ + dist-gzip distcheck distclean distclean-generic distclean-hdr \ + distclean-libtool distclean-recursive distclean-tags \ + distcleancheck distdir dvi dvi-am dvi-recursive info info-am \ + info-recursive install install-ApplicationsDATA install-am \ + install-data install-data-am install-data-recursive \ + install-exec install-exec-am install-exec-recursive \ + install-info install-info-am install-info-recursive install-man \ + install-recursive install-strip installcheck installcheck-am \ + installdirs installdirs-am installdirs-recursive \ + maintainer-clean maintainer-clean-generic \ + maintainer-clean-recursive mostlyclean mostlyclean-generic \ + mostlyclean-libtool mostlyclean-recursive tags tags-recursive \ + uninstall uninstall-ApplicationsDATA uninstall-am \ + uninstall-info-am uninstall-info-recursive uninstall-recursive + +# 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..e69de29 diff --git a/README b/README new file mode 100644 index 0000000..cc53d8c --- /dev/null +++ b/README @@ -0,0 +1,117 @@ +Grip +==== + +Grip is a cd-player and cd-ripper for the Gnome desktop.. It has the ripping +capabilities of cdparanoia builtin, but can also use external rippers (such +as cdda2wav). It also provides an automated frontend for MP3 encoders, +letting you take a disc and transform it easily straight into MP3s. Internet +disc lookups are supported for retrieving track information from disc +database servers. Grip works with DigitalDJ to provide a unified +"computerized" version of your music collection. + + +Requirements +============ + +To use Grip, you must have: + + o The Gnome desktop + o POSIX thread support (http://pauillac.inria.fr/~xleroy/linuxthreads) + o a net connection (if you want to use disc database lookup) + o a CD player (surprise, surprise) + +Grip requires that you have at least a basic version of the Gnome desktop +installed on your computer. In particular, make sure that you have libghttp +installed. If you can't find it, I have mirrored a copy here: + + http://www.nostatic.org/grip/libghttp-1.0.9.tar.gz + +If you wish to have builtin cdparanoia support, or id3v2 support, you must +have the appropriate packages on your system. You can find them here: + + cdparanoia: http://xiph.org/paranoia/index.html + id3v2: http://id3lib.sourceforge.net/ + +Grip is designed to work closely with DigitalDJ, my SQL-based mp3 jukebox +system (although it does not require it). DigitalDJ can be obtained from: + + http://www.nostatic.org/ddj + + +Installation +============ + +If you obtained Grip from the RPM distribution then they are already +installed. If you have the source distribution, you need to compile it. + +To install Grip, simply go through the following steps: + + o after unpacking Grip, cd to the extracted directory + o './configure' + o 'make' + o become root if you are installing in a non-user directory + o 'make install' + +For information on options to the configure process, run: + + ./configure --help + +Grip adds the following options that can be specified to configure: + + --disable-shared-cdpar -- This will force Grip to link statically, rather + than dynamically with cdparanoia + + --disable-cdpar -- This disable linking with cdparanoia entirely + + --disable-shared-id3 -- This will force Grip to link statically, rather + than dynamically with id3lib + +Note that if Gnome is installed in a non-standard place (such as /opt), you +may need to use the '--with-gnome' configure option for all libraries to be +found correctly. + + +Running Grip +============ + +Grip's usage is: + + grip [options] + + where the available options are: + + --config=CONFIG Specify the configuration file to use + (defaults to .grip, relative to home dir) + --device=DEVICE Specify the cdrom device to use + --scsi-device=DEVICE Specify the generic scsi device to use + --small Launch in "small" (cd-only) mode + --local "Local" mode -- do not look up disc info on + the net + --no-redirect Do not do I/O redirection + --verbose Run in verbose (debug) mode + + +Getting Mor Help +================ + +For more information, see the online documentation within Grip. It can also +be accessed locally in the source distribution. Load doc/C/grip/grip.html +into an html viewer. + +If you need more help with Grip, your best resource is the Grip mailing +list. You will find it at: + + http://lists.sourceforge.net/mailman/listinfo/grip-users + +Be sure to check the mailing list archives for answers to any questions you +may have. + +To report a bug with Grip, or to submit a patch. Please do so at the Grip +section on sourceforge.net: + + http://sourceforge.net/projects/grip + +--- +Mike Oliphant (oliphant@gtk.org) + +http://www.nostatic.org/grip diff --git a/TODO b/TODO new file mode 100644 index 0000000..e1afc7b --- /dev/null +++ b/TODO @@ -0,0 +1,23 @@ + o add ability to browse for rip/encode executables + o overall progress indicator for multi-track rips + o abort current track from multi-track rip + o command-line arguments for batch operation + o some way to get the track name in condensed mode (perhaps a tooltip?) + o display/edit extended DiscDB info + o allow ejecting when the tray is closed, but with no disc + o slider to move within a track + o add a timeout for DiscDB lookup + o check rip/encode result status and repeat if necessary + o avoid locking of drive + o update the track time properly when paused and the track is changed + o update the playtime during ripping/encoding? + o digital playing of cds (through CDDA) + o allow per-song year specification? + o better display of cdparanoia error status + o size info as tooltip on rip/encode progress bar + o remember previous position when smart-relocating on expand + o support multiple cdrom drives? + o remember Disk Editor toggle status + o ask if the whole disc should be ripped if no track is selected + o add an option "CD eject program" + o allow different file format for multi-artist cds diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..b974e79 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,4931 @@ +# aclocal.m4 generated automatically by aclocal 1.6.3 -*- Autoconf -*- + +# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# Do all the work for Automake. -*- Autoconf -*- + +# This macro actually does too much some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 8 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +AC_PREREQ([2.52]) + +# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow +# the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl +# test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && + test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl + AC_SUBST([PACKAGE], [AC_PACKAGE_TARNAME])dnl + AC_SUBST([VERSION], [AC_PACKAGE_VERSION])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_MISSING_PROG(AMTAR, tar) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl + +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_][CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_][CC], + defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_][CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_][CXX], + defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl +]) +]) + +# Copyright 2002 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.6"]) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION so it can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], + [AM_AUTOMAKE_VERSION([1.6.3])]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright 2001, 2002 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 2 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# +# Check to make sure that the build environment is sane. +# + +# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 3 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# -*- Autoconf -*- + + +# Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 3 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# AM_AUX_DIR_EXPAND + +# Copyright 2001 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +# Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50]) + +AC_DEFUN([AM_AUX_DIR_EXPAND], [ +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. + +# Copyright 2001 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"$am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# AM_PROG_INSTALL_STRIP + +# Copyright 2001 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# serial 4 -*- Autoconf -*- + +# Copyright 1999, 2000, 2001 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + echo '#include "conftest.h"' > conftest.c + echo 'int i;' > conftest.h + echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=conftest.c object=conftest.o \ + depfile=conftest.Po tmpdepfile=conftest.TPo \ + $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && + grep conftest.h conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[rm -f .deps 2>/dev/null +mkdir .deps 2>/dev/null +if test -d .deps; then + DEPDIR=.deps +else + # MS-DOS does not allow filenames that begin with a dot. + DEPDIR=_deps +fi +rmdir .deps 2>/dev/null +AC_SUBST([DEPDIR]) +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking Speeds up one-time builds + --enable-dependency-tracking Do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH]) +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +#serial 2 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # So let's grep whole file. + if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue + # Extract the definition of DEP_FILES from the Makefile without + # running `make'. + DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` + test -z "$DEPDIR" && continue + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n -e '/^U = / s///p' < "$mf"` + test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" + # We invoke sed twice because it is the simplest approach to + # changing $(DEPDIR) to its actual value in the expansion. + for file in `sed -n -e ' + /^DEP_FILES = .*\\\\$/ { + s/^DEP_FILES = // + :loop + s/\\\\$// + p + n + /\\\\$/ b loop + p + } + /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Copyright 2001 Free Software Foundation, Inc. -*- Autoconf -*- + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 2 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +doit: + @echo done +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi +AC_SUBST(am__include) +AC_SUBST(am__quote) +AC_MSG_RESULT($_am_result) +rm -f confinc confmf +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright 1997, 2000, 2001 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 5 + +AC_PREREQ(2.52) + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE]) +AC_SUBST([$1_FALSE]) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([conditional \"$1\" was never defined. +Usually this means the macro was only invoked conditionally.]) +fi])]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# Copyright 1996, 1998, 2000, 2001 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 1 + +AC_DEFUN([AM_MAINTAINER_MODE], +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*- + +# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +AC_PREREQ([2.52]) + +# serial 6 + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. We must strip everything past the first ":", +# and everything past the last "/". + +# _AM_DIRNAME(PATH) +# ----------------- +# Like AS_DIRNAME, only do it during macro expansion +AC_DEFUN([_AM_DIRNAME], + [m4_if(regexp([$1], [^.*[^/]//*[^/][^/]*/*$]), -1, + m4_if(regexp([$1], [^//\([^/]\|$\)]), -1, + m4_if(regexp([$1], [^/.*]), -1, + [.], + patsubst([$1], [^\(/\).*], [\1])), + patsubst([$1], [^\(//\)\([^/].*\|$\)], [\1])), + patsubst([$1], [^\(.*[^/]\)//*[^/][^/]*/*$], [\1]))[]dnl +])# _AM_DIRNAME + + +# The stamp files are numbered to have different names. +# We could number them on a directory basis, but that's additional +# complications, let's have a unique counter. +m4_define([_AM_STAMP_Count], [0]) + + +# _AM_STAMP(HEADER) +# ----------------- +# The name of the stamp file for HEADER. +AC_DEFUN([_AM_STAMP], +[m4_define([_AM_STAMP_Count], m4_incr(_AM_STAMP_Count))dnl +AS_ESCAPE(_AM_DIRNAME(patsubst([$1], + [:.*])))/stamp-h[]_AM_STAMP_Count]) + + +# _AM_CONFIG_HEADER(HEADER[:SOURCES], COMMANDS, INIT-COMMANDS) +# ------------------------------------------------------------ +# We used to try to get a real timestamp in stamp-h. But the fear is that +# that will cause unnecessary cvs conflicts. +AC_DEFUN([_AM_CONFIG_HEADER], +[# Add the stamp file to the list of files AC keeps track of, +# along with our hook. +AC_CONFIG_HEADERS([$1], + [# update the timestamp +echo 'timestamp for $1' >"_AM_STAMP([$1])" +$2], + [$3]) +])# _AM_CONFIG_HEADER + + +# AM_CONFIG_HEADER(HEADER[:SOURCES]..., COMMANDS, INIT-COMMANDS) +# -------------------------------------------------------------- +AC_DEFUN([AM_CONFIG_HEADER], +[AC_FOREACH([_AM_File], [$1], [_AM_CONFIG_HEADER(_AM_File, [$2], [$3])]) +])# AM_CONFIG_HEADER + +# isc-posix.m4 serial 2 (gettext-0.11.2) +dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +# This file is not needed with autoconf-2.53 and newer. Remove it in 2005. + +# This test replaces the one in autoconf. +# Currently this macro should have the same name as the autoconf macro +# because gettext's gettext.m4 (distributed in the automake package) +# still uses it. Otherwise, the use in gettext.m4 makes autoheader +# give these diagnostics: +# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX +# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX + +undefine([AC_ISC_POSIX]) + +AC_DEFUN([AC_ISC_POSIX], + [ + dnl This test replaces the obsolescent AC_ISC_POSIX kludge. + AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) + ] +) + +# libtool.m4 - Configure libtool for the host system. -*-Shell-script-*- + +# serial 46 AC_PROG_LIBTOOL + +AC_DEFUN([AC_PROG_LIBTOOL], +[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +# Prevent multiple expansion +define([AC_PROG_LIBTOOL], []) +]) + +AC_DEFUN([AC_LIBTOOL_SETUP], +[AC_PREREQ(2.13)dnl +AC_REQUIRE([AC_ENABLE_SHARED])dnl +AC_REQUIRE([AC_ENABLE_STATIC])dnl +AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_LD])dnl +AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl +AC_REQUIRE([AC_PROG_NM])dnl +AC_REQUIRE([LT_AC_PROG_SED])dnl + +AC_REQUIRE([AC_PROG_LN_S])dnl +AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl +AC_REQUIRE([AC_OBJEXT])dnl +AC_REQUIRE([AC_EXEEXT])dnl +dnl + +_LT_AC_PROG_ECHO_BACKSLASH +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + AC_PATH_MAGIC + fi + ;; +esac + +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_CHECK_TOOL(STRIP, strip, :) + +ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) +ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], +enable_win32_dll=yes, enable_win32_dll=no) + +AC_ARG_ENABLE(libtool-lock, + [ --disable-libtool-lock avoid locking (might break parallel builds)]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_SAVE + AC_LANG_C + AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_RESTORE]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; + +ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], +[*-*-cygwin* | *-*-mingw* | *-*-pw32*) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + + # recent cygwin and mingw systems supply a stub DllMain which the user + # can override, but on older systems we have to supply one + AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain, + [AC_TRY_LINK([], + [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*); + DllMain (0, 0, 0);], + [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])]) + + case $host/$CC in + *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*) + # old mingw systems require "-dll" to link a DLL, while more recent ones + # require "-mdll" + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -mdll" + AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch, + [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])]) + CFLAGS="$SAVE_CFLAGS" ;; + *-*-cygwin* | *-*-pw32*) + # cygwin systems need to pass --dll to the linker, and not link + # crt.o which will require a WinMain@16 definition. + lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;; + esac + ;; + ]) +esac + +_LT_AC_LTCONFIG_HACK + +]) + +# AC_LIBTOOL_HEADER_ASSERT +# ------------------------ +AC_DEFUN([AC_LIBTOOL_HEADER_ASSERT], +[AC_CACHE_CHECK([whether $CC supports assert without backlinking], + [lt_cv_func_assert_works], + [case $host in + *-*-solaris*) + if test "$GCC" = yes && test "$with_gnu_ld" != yes; then + case `$CC --version 2>/dev/null` in + [[12]].*) lt_cv_func_assert_works=no ;; + *) lt_cv_func_assert_works=yes ;; + esac + fi + ;; + esac]) + +if test "x$lt_cv_func_assert_works" = xyes; then + AC_CHECK_HEADERS(assert.h) +fi +])# AC_LIBTOOL_HEADER_ASSERT + +# _LT_AC_CHECK_DLFCN +# -------------------- +AC_DEFUN([_LT_AC_CHECK_DLFCN], +[AC_CHECK_HEADERS(dlfcn.h) +])# _LT_AC_CHECK_DLFCN + +# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +# --------------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], +[AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([AC_PROG_NM]) +AC_REQUIRE([AC_OBJEXT]) +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [dnl + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Transform the above into a raw symbol and a C symbol. +symxfrm='\1 \2\3 \3' + +# Transform an extracted symbol line into a proper C declaration +lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) # Its linker distinguishes data from code symbols + lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris* | sysv5*) + symcode='[[BDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# Handle CRLF in mingw tool chain +opt_cr= +case $host_os in +mingw*) + opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then + symcode='[[ABCDGISTW]]' +fi + +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do + + # Write the raw and C identifiers. +lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + rm -f conftest* + cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if egrep ' nm_test_var$' "$nlist" >/dev/null; then + if egrep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr void * +#else +# define lt_ptr char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr address; +} +lt_preloaded_symbols[[]] = +{ +EOF + sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$no_builtin_flag" + if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AC_FD_CC + fi + else + echo "cannot find nm_test_var in $nlist" >&AC_FD_CC + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AC_FD_CC + fi + else + echo "$progname: failed program was:" >&AC_FD_CC + cat conftest.$ac_ext >&5 + fi + rm -f conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" +if test -z "$lt_cv_sys_global_symbol_pipe"; then + global_symbol_to_cdecl= + global_symbol_to_c_name_address= +else + global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" + global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" +fi +if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; +then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi +]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE + +# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR +# --------------------------------- +AC_DEFUN([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR], +[# Find the correct PATH separator. Usually this is `:', but +# DJGPP uses `;' like DOS. +if test "X${PATH_SEPARATOR+set}" != Xset; then + UNAME=${UNAME-`uname 2>/dev/null`} + case X$UNAME in + *-DOS) lt_cv_sys_path_separator=';' ;; + *) lt_cv_sys_path_separator=':' ;; + esac + PATH_SEPARATOR=$lt_cv_sys_path_separator +fi +])# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR + +# _LT_AC_PROG_ECHO_BACKSLASH +# -------------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], +[ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR + +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +echo=${ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null && + echo_test_string="`eval $cmd`" && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(ECHO) +AC_DIVERT_POP +])# _LT_AC_PROG_ECHO_BACKSLASH + +# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ------------------------------------------------------------------ +AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], +[if test "$cross_compiling" = yes; then : + [$4] +else + AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + + exit (status); +}] +EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_unknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_AC_TRY_DLOPEN_SELF + +# AC_LIBTOOL_DLOPEN_SELF +# ------------------- +AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], +[if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + cygwin* | mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + LDFLAGS="$LDFLAGS $link_static_flag" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +])# AC_LIBTOOL_DLOPEN_SELF + +AC_DEFUN([_LT_AC_LTCONFIG_HACK], +[AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])dnl +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e s/^X//' +sed_quote_subst='s/\([[\\"\\`$\\\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([[\\"\\`\\\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except M$VC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" +need_locks="$enable_libtool_lock" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +if test x"$host" != x"$build"; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +# Transform linux* to *-*-linux-gnu*, to support old configure scripts. +case $host_os in +linux-gnu*) ;; +linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` +esac + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" + ;; + *) + old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +# Allow CC to be a program name with arguments. +set dummy $CC +compiler="[$]2" + +AC_MSG_CHECKING([for objdir]) +rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + objdir=_libs +fi +rmdir .libs 2>/dev/null +AC_MSG_RESULT($objdir) + + +AC_ARG_WITH(pic, +[ --with-pic try to use only PIC/non-PIC objects [default=use both]], +pic_mode="$withval", pic_mode=default) +test -z "$pic_mode" && pic_mode=default + +# We assume here that the value for lt_cv_prog_cc_pic will not be cached +# in isolation, and that seeing it set (from the cache) indicates that +# the associated values are set (in the cache) correctly too. +AC_MSG_CHECKING([for $compiler option to produce PIC]) +AC_CACHE_VAL(lt_cv_prog_cc_pic, +[ lt_cv_prog_cc_pic= + lt_cv_prog_cc_shlib= + lt_cv_prog_cc_wl= + lt_cv_prog_cc_static= + lt_cv_prog_cc_no_builtin= + lt_cv_prog_cc_can_build_shared=$can_build_shared + + if test "$GCC" = yes; then + lt_cv_prog_cc_wl='-Wl,' + lt_cv_prog_cc_static='-static' + + case $host_os in + aix*) + # Below there is a dirty hack to force normal static linking with -ldl + # The problem is because libdl dynamically linked with both libc and + # libC (AIX C++ library), which obviously doesn't included in libraries + # list by gcc. This cause undefined symbols with -static flags. + # This hack allows C programs to be linked with "-static -ldl", but + # not sure about C++ programs. + lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_cv_prog_cc_pic='-fno-common' + ;; + cygwin* | mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_cv_prog_cc_pic='-DDLL_EXPORT' + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_cv_prog_cc_pic=-Kconform_pic + fi + ;; + *) + lt_cv_prog_cc_pic='-fPIC' + ;; + esac + else + # PORTME Check for PIC flags for the system compiler. + case $host_os in + aix3* | aix4* | aix5*) + lt_cv_prog_cc_wl='-Wl,' + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_cv_prog_cc_static='-Bstatic' + else + lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + hpux9* | hpux10* | hpux11*) + # Is there a better lt_cv_prog_cc_static that works with the bundled CC? + lt_cv_prog_cc_wl='-Wl,' + lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" + lt_cv_prog_cc_pic='+Z' + ;; + + irix5* | irix6* | nonstopux*) + lt_cv_prog_cc_wl='-Wl,' + lt_cv_prog_cc_static='-non_shared' + # PIC (with -KPIC) is the default. + ;; + + cygwin* | mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_cv_prog_cc_pic='-DDLL_EXPORT' + ;; + + newsos6) + lt_cv_prog_cc_pic='-KPIC' + lt_cv_prog_cc_static='-Bstatic' + ;; + + osf3* | osf4* | osf5*) + # All OSF/1 code is PIC. + lt_cv_prog_cc_wl='-Wl,' + lt_cv_prog_cc_static='-non_shared' + ;; + + sco3.2v5*) + lt_cv_prog_cc_pic='-Kpic' + lt_cv_prog_cc_static='-dn' + lt_cv_prog_cc_shlib='-belf' + ;; + + solaris*) + lt_cv_prog_cc_pic='-KPIC' + lt_cv_prog_cc_static='-Bstatic' + lt_cv_prog_cc_wl='-Wl,' + ;; + + sunos4*) + lt_cv_prog_cc_pic='-PIC' + lt_cv_prog_cc_static='-Bstatic' + lt_cv_prog_cc_wl='-Qoption ld ' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + lt_cv_prog_cc_pic='-KPIC' + lt_cv_prog_cc_static='-Bstatic' + lt_cv_prog_cc_wl='-Wl,' + ;; + + uts4*) + lt_cv_prog_cc_pic='-pic' + lt_cv_prog_cc_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_cv_prog_cc_pic='-Kconform_pic' + lt_cv_prog_cc_static='-Bstatic' + fi + ;; + + *) + lt_cv_prog_cc_can_build_shared=no + ;; + esac + fi +]) +if test -z "$lt_cv_prog_cc_pic"; then + AC_MSG_RESULT([none]) +else + AC_MSG_RESULT([$lt_cv_prog_cc_pic]) + + # Check to make sure the pic_flag actually works. + AC_MSG_CHECKING([if $compiler PIC flag $lt_cv_prog_cc_pic works]) + AC_CACHE_VAL(lt_cv_prog_cc_pic_works, [dnl + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" + AC_TRY_COMPILE([], [], [dnl + case $host_os in + hpux9* | hpux10* | hpux11*) + # On HP-UX, both CC and GCC only warn that PIC is supported... then + # they create non-PIC objects. So, if there were any warnings, we + # assume that PIC is not supported. + if test -s conftest.err; then + lt_cv_prog_cc_pic_works=no + else + lt_cv_prog_cc_pic_works=yes + fi + ;; + *) + lt_cv_prog_cc_pic_works=yes + ;; + esac + ], [dnl + lt_cv_prog_cc_pic_works=no + ]) + CFLAGS="$save_CFLAGS" + ]) + + if test "X$lt_cv_prog_cc_pic_works" = Xno; then + lt_cv_prog_cc_pic= + lt_cv_prog_cc_can_build_shared=no + else + lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" + fi + + AC_MSG_RESULT([$lt_cv_prog_cc_pic_works]) +fi + +# Check for any special shared library compilation flags. +if test -n "$lt_cv_prog_cc_shlib"; then + AC_MSG_WARN([\`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries]) + if echo "$old_CC $old_CFLAGS " | egrep -e "[[ ]]$lt_cv_prog_cc_shlib[[ ]]" >/dev/null; then : + else + AC_MSG_WARN([add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure]) + lt_cv_prog_cc_can_build_shared=no + fi +fi + +AC_MSG_CHECKING([if $compiler static flag $lt_cv_prog_cc_static works]) +AC_CACHE_VAL([lt_cv_prog_cc_static_works], [dnl + lt_cv_prog_cc_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" + AC_TRY_LINK([], [], [lt_cv_prog_cc_static_works=yes]) + LDFLAGS="$save_LDFLAGS" +]) + +# Belt *and* braces to stop my trousers falling down: +test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= +AC_MSG_RESULT([$lt_cv_prog_cc_static_works]) + +pic_flag="$lt_cv_prog_cc_pic" +special_shlib_compile_flags="$lt_cv_prog_cc_shlib" +wl="$lt_cv_prog_cc_wl" +link_static_flag="$lt_cv_prog_cc_static" +no_builtin_flag="$lt_cv_prog_cc_no_builtin" +can_build_shared="$lt_cv_prog_cc_can_build_shared" + + +# Check to see if options -o and -c are simultaneously supported by compiler +AC_MSG_CHECKING([if $compiler supports -c -o file.$ac_objext]) +AC_CACHE_VAL([lt_cv_compiler_c_o], [ +$rm -r conftest 2>/dev/null +mkdir conftest +cd conftest +echo "int some_variable = 0;" > conftest.$ac_ext +mkdir out +# According to Tom Tromey, Ian Lance Taylor reported there are C compilers +# that will create temporary files in the current directory regardless of +# the output directory. Thus, making CWD read-only will cause this test +# to fail, enabling locking or at least warning the user not to do parallel +# builds. +chmod -w . +save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" +compiler_c_o=no +if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s out/conftest.err; then + lt_cv_compiler_c_o=no + else + lt_cv_compiler_c_o=yes + fi +else + # Append any errors to the config.log. + cat out/conftest.err 1>&AC_FD_CC + lt_cv_compiler_c_o=no +fi +CFLAGS="$save_CFLAGS" +chmod u+w . +$rm conftest* out/* +rmdir out +cd .. +rmdir conftest +$rm -r conftest 2>/dev/null +]) +compiler_c_o=$lt_cv_compiler_c_o +AC_MSG_RESULT([$compiler_c_o]) + +if test x"$compiler_c_o" = x"yes"; then + # Check to see if we can write to a .lo + AC_MSG_CHECKING([if $compiler supports -c -o file.lo]) + AC_CACHE_VAL([lt_cv_compiler_o_lo], [ + lt_cv_compiler_o_lo=no + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -c -o conftest.lo" + save_objext="$ac_objext" + ac_objext=lo + AC_TRY_COMPILE([], [int some_variable = 0;], [dnl + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + lt_cv_compiler_o_lo=no + else + lt_cv_compiler_o_lo=yes + fi + ]) + ac_objext="$save_objext" + CFLAGS="$save_CFLAGS" + ]) + compiler_o_lo=$lt_cv_compiler_o_lo + AC_MSG_RESULT([$compiler_o_lo]) +else + compiler_o_lo=no +fi + +# Check to see if we can do hard links to lock some files if needed +hard_links="nottested" +if test "$compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([\`$CC' does not support \`-c -o', so \`make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi + +if test "$GCC" = yes; then + # Check to see if options -fno-rtti -fno-exceptions are supported by compiler + AC_MSG_CHECKING([if $compiler supports -fno-rtti -fno-exceptions]) + echo "int some_variable = 0;" > conftest.$ac_ext + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" + compiler_rtti_exceptions=no + AC_TRY_COMPILE([], [int some_variable = 0;], [dnl + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + compiler_rtti_exceptions=no + else + compiler_rtti_exceptions=yes + fi + ]) + CFLAGS="$save_CFLAGS" + AC_MSG_RESULT([$compiler_rtti_exceptions]) + + if test "$compiler_rtti_exceptions" = "yes"; then + no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' + else + no_builtin_flag=' -fno-builtin' + fi +fi + +# See if the linker supports building shared libraries. +AC_MSG_CHECKING([whether the linker ($LD) supports shared libraries]) + +allow_undefined_flag= +no_undefined_flag= +need_lib_prefix=unknown +need_version=unknown +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +archive_cmds= +archive_expsym_cmds= +old_archive_from_new_cmds= +old_archive_from_expsyms_cmds= +export_dynamic_flag_spec= +whole_archive_flag_spec= +thread_safe_flag_spec= +hardcode_into_libs=no +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no +hardcode_shlibpath_var=unsupported +runpath_var= +link_all_deplibs=unknown +always_export_symbols=no +export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' +# include_expsyms should be a list of space-separated symbols to be *always* +# included in the symbol list +include_expsyms= +# exclude_expsyms can be an egrep regular expression of symbols to exclude +# it will be wrapped by ` (' and `)$', so one must not match beginning or +# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', +# as well as any symbol that contains `d'. +exclude_expsyms="_GLOBAL_OFFSET_TABLE_" +# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out +# platforms (ab)use it in PIC code, but their linkers get confused if +# the symbol is explicitly referenced. Since portable code cannot +# rely on this symbol name, it's probably fine to never include it in +# preloaded symbol tables. +extract_expsyms_cmds= + +case $host_os in +cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; +openbsd*) + with_gnu_ld=no + ;; +esac + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX, the GNU linker is very broken + # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. + ld_shlibs=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + ;; + + amigaos*) + archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can use + # them. + ld_shlibs=no + ;; + + beos*) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32*) + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + allow_undefined_flag=unsupported + always_export_symbols=yes + + extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ + sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ + test -f $output_objdir/impgen.exe || (cd $output_objdir && \ + if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ + else $CC -o impgen impgen.c ; fi)~ + $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' + + old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' + + # cygwin and mingw dlls have different entry points and sets of symbols + # to exclude. + # FIXME: what about values for MSVC? + dll_entry=__cygwin_dll_entry@12 + dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ + case $host_os in + mingw*) + # mingw values + dll_entry=_DllMainCRTStartup@12 + dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ + ;; + esac + + # mingw and cygwin differ, and it's simplest to just exclude the union + # of the two symbol sets. + dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 + + # recent cygwin and mingw systems supply a stub DllMain which the user + # can override, but on older systems we have to supply one (in ltdll.c) + if test "x$lt_cv_need_dllmain" = "xyes"; then + ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " + ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ + test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' + else + ltdll_obj= + ltdll_cmds= + fi + + # Extract the symbol export list from an `--export-all' def file, + # then regenerate the def file from the symbol export list, so that + # the compiled dll only exports the symbol export list. + # Be careful not to strip the DATA tag left be newer dlltools. + export_symbols_cmds="$ltdll_cmds"' + $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ + sed -e "1,/EXPORTS/d" -e "s/ @ [[0-9]]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' + + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is. + # If DATA tags from a recent dlltool are present, honour them! + archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname-def; + else + echo EXPORTS > $output_objdir/$soname-def; + _lt_hint=1; + cat $export_symbols | while read symbol; do + set dummy \$symbol; + case \[$]# in + 2) echo " \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; + 4) echo " \[$]2 \[$]3 \[$]4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; + *) echo " \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;; + esac; + _lt_hint=`expr 1 + \$_lt_hint`; + done; + fi~ + '"$ltdll_cmds"' + $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ + $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ + $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ + $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ + $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris* | sysv5*) + if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = yes; then + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + case $host_os in + cygwin* | mingw* | pw32*) + # dlltool doesn't understand --whole-archive et. al. + whole_archive_flag_spec= + ;; + *) + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + ;; + esac + fi +else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$link_static_flag"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + hardcode_direct=yes + archive_cmds='' + hardcode_libdir_separator=':' + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct=yes + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + esac + + shared_flag='-shared' + else + # not using gcc + if test "$host_cpu" = ia64; then + shared_flag='${wl}-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall can do strange things, so it is better to + # generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' + archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + else + hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='${wl}-berok' + # This is a bit strange, but is similar to how AIX traditionally builds + # it's shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + ;; + + darwin* | rhapsody*) + case "$host_os" in + rhapsody* | darwin1.[[012]]) + allow_undefined_flag='-undefined suppress' + ;; + *) # Darwin 1.3 on + allow_undefined_flag='-flat_namespace -undefined suppress' + ;; + esac + # FIXME: Relying on posixy $() will cause problems for + # cross-compilation, but unfortunately the echo tests do not + # yet detect zsh echo's removal of \ escapes. Also zsh mangles + # `"' quotes if we put them in here... so don't! + archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' + # We need to add '_' to the symbols in $export_symbols first + #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' + hardcode_direct=yes + hardcode_shlibpath_var=no + whole_archive_flag_spec='-all_load $convenience' + ;; + + freebsd1*) + ld_shlibs=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd*) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9* | hpux10* | hpux11*) + case $host_os in + hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; + *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; + esac + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_minus_L=yes # Not in the search PATH, but as the default + # location of the library. + export_dynamic_flag_spec='${wl}-E' + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + link_all_deplibs=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + openbsd*) + hardcode_direct=yes + hardcode_shlibpath_var=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case "$host_os" in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' + + #Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + + sco3.2v5*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + export_dynamic_flag_spec='${wl}-Bexport' + ;; + + solaris*) + # gcc --version < 3.0 without binutils cannot create self contained + # shared libraries reliably, requiring libgcc.a to resolve some of + # the object symbols generated in some cases. Libraries that use + # assert need libgcc.a to resolve __eprintf, for example. Linking + # a copy of libgcc.a into every shared library to guarantee resolving + # such symbols causes other problems: According to Tim Van Holder + # , C++ libraries end up with a separate + # (to the application) exception stack for one thing. + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + case `$CC --version 2>/dev/null` in + [[12]].*) + cat <&2 + +*** Warning: Releases of GCC earlier than version 3.0 cannot reliably +*** create self contained shared libraries on Solaris systems, without +*** introducing a dependency on libgcc.a. Therefore, libtool is disabling +*** -no-undefined support, which will at least allow you to build shared +*** libraries. However, you may find that when you link such libraries +*** into an application without using GCC, you have to manually add +*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to +*** upgrade to a newer version of GCC. Another option is to rebuild your +*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. + +EOF + no_undefined_flag= + ;; + esac + fi + # $CC -shared without GNU ld will not create a library from C++ + # object files and a static libstdc++, better avoid it by now + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv5*) + no_undefined_flag=' -z text' + # $CC -shared without GNU ld will not create a library from C++ + # object files and a static libstdc++, better avoid it by now + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + hardcode_libdir_flag_spec= + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4.2uw2*) + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=no + hardcode_shlibpath_var=no + hardcode_runpath_var=yes + runpath_var=LD_RUN_PATH + ;; + + sysv5uw7* | unixware7*) + no_undefined_flag='${wl}-z ${wl}text' + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac +fi +AC_MSG_RESULT([$ld_shlibs]) +test "$ld_shlibs" = no && can_build_shared=no + +# Check hardcoding attributes. +AC_MSG_CHECKING([how to hardcode library paths into programs]) +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || \ + test -n "$runpath_var"; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$hardcode_shlibpath_var" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +AC_MSG_RESULT([$hardcode_action]) + +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi + +reload_cmds='$LD$reload_flag -o $output$reload_objs' +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +# PORTME Fill in your ld.so characteristics +AC_MSG_CHECKING([dynamic linker characteristics]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}.so$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}.so$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can + # not hardcode correct soname into executable. Probably we can + # add versioning support to collect2, so additional links can + # be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}.so$major' + fi + shlibpath_var=LIBPATH + fi + hardcode_into_libs=yes + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}.so' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi4*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + export_dynamic_flag_spec=-rdynamic + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + need_version=no + need_lib_prefix=no + case $GCC,$host_os in + yes,cygwin*) + library_names_spec='$libname.dll.a' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' + postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog .libs/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + ;; + yes,mingw*) + library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` + ;; + yes,pw32*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' + ;; + *) + library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + # FIXME: Relying on posixy $() will cause problems for + # cross-compilation, but unfortunately the echo tests do not + # yet detect zsh echo's removal of \ escapes. + library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' + soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd*) + objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + *) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + dynamic_linker="$host_os dld.sl" + version_type=sunos + need_lib_prefix=no + need_version=no + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' + soname_spec='${libname}${release}.sl$major' + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) version_type=irix ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}.so$major' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux-gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + + # Find out which ABI we are using (multilib Linux x86_64 hack). + libsuff= + case "$host_cpu" in + x86_64*|s390x*) + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *64-bit*) + libsuff=64 + ;; + esac + fi + rm -rf conftest* + ;; + *) + ;; + esac + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}" + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' + soname_spec='${libname}${release}.so$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case "$host_os" in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + ;; + +os2*) + libname_spec='$name' + need_lib_prefix=no + library_names_spec='$libname.dll $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_version=no + soname_spec='${libname}${release}.so$major' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + hardcode_into_libs=yes + ;; + +sco3.2v5*) + version_type=osf + soname_spec='${libname}${release}.so$major' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + shlibpath_var=LD_LIBRARY_PATH + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + version_type=linux + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' + soname_spec='$libname.so.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +# Report the final consequences. +AC_MSG_CHECKING([if libtool supports shared libraries]) +AC_MSG_RESULT([$can_build_shared]) + +AC_MSG_CHECKING([whether to build shared libraries]) +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case "$host_os" in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +AC_MSG_RESULT([$enable_shared]) + +AC_MSG_CHECKING([whether to build static libraries]) +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +AC_MSG_RESULT([$enable_static]) + +if test "$hardcode_action" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +AC_LIBTOOL_DLOPEN_SELF + +if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + AC_CACHE_VAL([lt_cv_archive_cmds_need_lc], + [$rm conftest* + echo 'static int dummy;' > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile); then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_cv_prog_cc_wl + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if AC_TRY_EVAL(archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi]) + AC_MSG_RESULT([$lt_cv_archive_cmds_need_lc]) + ;; + esac +fi +need_lc=${lt_cv_archive_cmds_need_lc-yes} + +# The second clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + : +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + test -f Makefile && make "$ltmain" +fi + +if test -f "$ltmain"; then + trap "$rm \"${ofile}T\"; exit 1" 1 2 15 + $rm -f "${ofile}T" + + echo creating $ofile + + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS SED \ + AR AR_FLAGS CC LD LN_S NM SHELL \ + reload_flag reload_cmds wl \ + pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ + thread_safe_flag_spec whole_archive_flag_spec libname_spec \ + library_names_spec soname_spec \ + RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ + old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ + postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ + old_striplib striplib file_magic_cmd export_symbols_cmds \ + deplibs_check_method allow_undefined_flag no_undefined_flag \ + finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ + global_symbol_to_c_name_address \ + hardcode_libdir_flag_spec hardcode_libdir_separator \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do + + case $var in + reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ + extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + cat <<__EOF__ > "${ofile}T" +#! $SHELL + +# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996-2000 Free Software Foundation, Inc. +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A sed that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="${SED} -e s/^X//" + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi + +# ### BEGIN LIBTOOL CONFIG + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$need_lc + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# The default C compiler. +CC=$lt_CC + +# Is the compiler the GNU C compiler? +with_gcc=$GCC + +# The linker used to build libraries. +LD=$lt_LD + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_wl + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_pic_flag +pic_mode=$pic_mode + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_compiler_c_o + +# Can we write directly to a .lo ? +compiler_o_lo=$lt_compiler_o_lo + +# Must we lock files when doing compilation ? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_link_static_flag + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_no_builtin_flag + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# ### END LIBTOOL CONFIG + +__EOF__ + + case $host_os in + aix3*) + cat <<\EOF >> "${ofile}T" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + case $host_os in + cygwin* | mingw* | pw32* | os2*) + cat <<'EOF' >> "${ofile}T" + # This is a source program that is used to create dlls on Windows + # Don't remove nor modify the starting and closing comments +# /* ltdll.c starts here */ +# #define WIN32_LEAN_AND_MEAN +# #include +# #undef WIN32_LEAN_AND_MEAN +# #include +# +# #ifndef __CYGWIN__ +# # ifdef __CYGWIN32__ +# # define __CYGWIN__ __CYGWIN32__ +# # endif +# #endif +# +# #ifdef __cplusplus +# extern "C" { +# #endif +# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); +# #ifdef __cplusplus +# } +# #endif +# +# #ifdef __CYGWIN__ +# #include +# DECLARE_CYGWIN_DLL( DllMain ); +# #endif +# HINSTANCE __hDllInstance_base; +# +# BOOL APIENTRY +# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) +# { +# __hDllInstance_base = hInst; +# return TRUE; +# } +# /* ltdll.c ends here */ + # This is a source program that is used to create import libraries + # on Windows for dlls which lack them. Don't remove nor modify the + # starting and closing comments +# /* impgen.c starts here */ +# /* Copyright (C) 1999-2000 Free Software Foundation, Inc. +# +# This file is part of GNU libtool. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# */ +# +# #include /* for printf() */ +# #include /* for open(), lseek(), read() */ +# #include /* for O_RDONLY, O_BINARY */ +# #include /* for strdup() */ +# +# /* O_BINARY isn't required (or even defined sometimes) under Unix */ +# #ifndef O_BINARY +# #define O_BINARY 0 +# #endif +# +# static unsigned int +# pe_get16 (fd, offset) +# int fd; +# int offset; +# { +# unsigned char b[2]; +# lseek (fd, offset, SEEK_SET); +# read (fd, b, 2); +# return b[0] + (b[1]<<8); +# } +# +# static unsigned int +# pe_get32 (fd, offset) +# int fd; +# int offset; +# { +# unsigned char b[4]; +# lseek (fd, offset, SEEK_SET); +# read (fd, b, 4); +# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); +# } +# +# static unsigned int +# pe_as32 (ptr) +# void *ptr; +# { +# unsigned char *b = ptr; +# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); +# } +# +# int +# main (argc, argv) +# int argc; +# char *argv[]; +# { +# int dll; +# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; +# unsigned long export_rva, export_size, nsections, secptr, expptr; +# unsigned long name_rvas, nexp; +# unsigned char *expdata, *erva; +# char *filename, *dll_name; +# +# filename = argv[1]; +# +# dll = open(filename, O_RDONLY|O_BINARY); +# if (dll < 1) +# return 1; +# +# dll_name = filename; +# +# for (i=0; filename[i]; i++) +# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') +# dll_name = filename + i +1; +# +# pe_header_offset = pe_get32 (dll, 0x3c); +# opthdr_ofs = pe_header_offset + 4 + 20; +# num_entries = pe_get32 (dll, opthdr_ofs + 92); +# +# if (num_entries < 1) /* no exports */ +# return 1; +# +# export_rva = pe_get32 (dll, opthdr_ofs + 96); +# export_size = pe_get32 (dll, opthdr_ofs + 100); +# nsections = pe_get16 (dll, pe_header_offset + 4 +2); +# secptr = (pe_header_offset + 4 + 20 + +# pe_get16 (dll, pe_header_offset + 4 + 16)); +# +# expptr = 0; +# for (i = 0; i < nsections; i++) +# { +# char sname[8]; +# unsigned long secptr1 = secptr + 40 * i; +# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); +# unsigned long vsize = pe_get32 (dll, secptr1 + 16); +# unsigned long fptr = pe_get32 (dll, secptr1 + 20); +# lseek(dll, secptr1, SEEK_SET); +# read(dll, sname, 8); +# if (vaddr <= export_rva && vaddr+vsize > export_rva) +# { +# expptr = fptr + (export_rva - vaddr); +# if (export_rva + export_size > vaddr + vsize) +# export_size = vsize - (export_rva - vaddr); +# break; +# } +# } +# +# expdata = (unsigned char*)malloc(export_size); +# lseek (dll, expptr, SEEK_SET); +# read (dll, expdata, export_size); +# erva = expdata - export_rva; +# +# nexp = pe_as32 (expdata+24); +# name_rvas = pe_as32 (expdata+32); +# +# printf ("EXPORTS\n"); +# for (i = 0; i> "${ofile}T" || (rm -f "${ofile}T"; exit 1) + + mv -f "${ofile}T" "$ofile" || \ + (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") + chmod +x "$ofile" +fi + +])# _LT_AC_LTCONFIG_HACK + +# AC_LIBTOOL_DLOPEN - enable checks for dlopen support +AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])]) + +# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's +AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])]) + +# AC_ENABLE_SHARED - implement the --enable-shared flag +# Usage: AC_ENABLE_SHARED[(DEFAULT)] +# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to +# `yes'. +AC_DEFUN([AC_ENABLE_SHARED], +[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE(shared, +changequote(<<, >>)dnl +<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT], +changequote([, ])dnl +[p=${PACKAGE-default} +case $enableval in +yes) enable_shared=yes ;; +no) enable_shared=no ;; +*) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," + for pkg in $enableval; do + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$ac_save_ifs" + ;; +esac], +enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl +]) + +# AC_DISABLE_SHARED - set the default shared flag to --disable-shared +AC_DEFUN([AC_DISABLE_SHARED], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_SHARED(no)]) + +# AC_ENABLE_STATIC - implement the --enable-static flag +# Usage: AC_ENABLE_STATIC[(DEFAULT)] +# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to +# `yes'. +AC_DEFUN([AC_ENABLE_STATIC], +[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE(static, +changequote(<<, >>)dnl +<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT], +changequote([, ])dnl +[p=${PACKAGE-default} +case $enableval in +yes) enable_static=yes ;; +no) enable_static=no ;; +*) + enable_static=no + # Look at the argument we got. We use all the common list separators. + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," + for pkg in $enableval; do + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$ac_save_ifs" + ;; +esac], +enable_static=AC_ENABLE_STATIC_DEFAULT)dnl +]) + +# AC_DISABLE_STATIC - set the default static flag to --disable-static +AC_DEFUN([AC_DISABLE_STATIC], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_STATIC(no)]) + + +# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag +# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)] +# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to +# `yes'. +AC_DEFUN([AC_ENABLE_FAST_INSTALL], +[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE(fast-install, +changequote(<<, >>)dnl +<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT], +changequote([, ])dnl +[p=${PACKAGE-default} +case $enableval in +yes) enable_fast_install=yes ;; +no) enable_fast_install=no ;; +*) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," + for pkg in $enableval; do + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$ac_save_ifs" + ;; +esac], +enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl +]) + +# AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install +AC_DEFUN([AC_DISABLE_FAST_INSTALL], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_FAST_INSTALL(no)]) + +# AC_LIBTOOL_PICMODE - implement the --with-pic flag +# Usage: AC_LIBTOOL_PICMODE[(MODE)] +# Where MODE is either `yes' or `no'. If omitted, it defaults to +# `both'. +AC_DEFUN([AC_LIBTOOL_PICMODE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +pic_mode=ifelse($#,1,$1,default)]) + + +# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library +AC_DEFUN([AC_PATH_TOOL_PREFIX], +[AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in + /*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; + ?:/*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. + ;; + *) + ac_save_MAGIC_CMD="$MAGIC_CMD" + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="ifelse([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + egrep "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$ac_save_ifs" + MAGIC_CMD="$ac_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +]) + + +# AC_PATH_MAGIC - find a file program which can recognise a shared library +AC_DEFUN([AC_PATH_MAGIC], +[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl +AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH) + else + MAGIC_CMD=: + fi +fi +]) + + +# AC_PROG_LD - find the path to the GNU or non-GNU linker +AC_DEFUN([AC_PROG_LD], +[AC_ARG_WITH(gnu-ld, +[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], +test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by GCC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | [[A-Za-z]]:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break + fi + fi + done + IFS="$ac_save_ifs" +else + lt_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$lt_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +AC_PROG_LD_GNU +]) + +# AC_PROG_LD_GNU - +AC_DEFUN([AC_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU ld's only accept -v. +if $LD -v 2>&1 &5; then + lt_cv_prog_gnu_ld=yes +else + lt_cv_prog_gnu_ld=no +fi]) +with_gnu_ld=$lt_cv_prog_gnu_ld +]) + +# AC_PROG_LD_RELOAD_FLAG - find reload flag for linker +# -- PORTME Some linkers may need a different reload flag. +AC_DEFUN([AC_PROG_LD_RELOAD_FLAG], +[AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag, +[lt_cv_ld_reload_flag='-r']) +reload_flag=$lt_cv_ld_reload_flag +test -n "$reload_flag" && reload_flag=" $reload_flag" +]) + +# AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +AC_DEFUN([AC_DEPLIBS_CHECK_METHOD], +[AC_CACHE_CHECK([how to recognise dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given egrep regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix4* | aix5*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi4*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin* | mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' + lt_cv_file_magic_cmd='/usr/bin/file -L' + case "$host_os" in + rhapsody* | darwin1.[[012]]) + lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` + ;; + *) # Darwin 1.3 on + lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' + ;; + esac + ;; + +freebsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20*|hpux11*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + irix5* | nonstopux*) + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" + ;; + *) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1" + ;; + esac + lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux-gnu*) + case $host_cpu in + alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64* | s390* | x86_64*) + lt_cv_deplibs_check_method=pass_all ;; + *) + # glibc up to 2.1.1 does not perform some relocations on ARM + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; + esac + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so\.[[0-9]]+\.[[0-9]]+$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +openbsd*) + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' + else + lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' + fi + ;; + +osf3* | osf4* | osf5*) + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' + lt_cv_file_magic_test_file=/shlib/libc.so + lt_cv_deplibs_check_method=pass_all + ;; + +sco3.2v5*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=/lib/libc.so + ;; + +sysv5uw[[78]]* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +]) + + +# AC_PROG_NM - find the path to a BSD-compatible name lister +AC_DEFUN([AC_PROG_NM], +[AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl +AC_MSG_CHECKING([for BSD-compatible nm]) +AC_CACHE_VAL(lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/${ac_tool_prefix}nm + if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then + lt_cv_path_NM="$tmp_nm -B" + break + elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then + lt_cv_path_NM="$tmp_nm -p" + break + else + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + fi + fi + done + IFS="$ac_save_ifs" + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi]) +NM="$lt_cv_path_NM" +AC_MSG_RESULT([$NM]) +]) + +# AC_CHECK_LIBM - check for math library +AC_DEFUN([AC_CHECK_LIBM], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32*) + # These system don't have libm + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, main, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, main, LIBM="-lm") + ;; +esac +]) + +# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for +# the libltdl convenience library and LTDLINCL to the include flags for +# the libltdl header and adds --enable-ltdl-convenience to the +# configure arguments. Note that LIBLTDL and LTDLINCL are not +# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not +# provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed +# with '${top_builddir}/' and LTDLINCL will be prefixed with +# '${top_srcdir}/' (note the single quotes!). If your package is not +# flat and you're not using automake, define top_builddir and +# top_srcdir appropriately in the Makefiles. +AC_DEFUN([AC_LIBLTDL_CONVENIENCE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + case $enable_ltdl_convenience in + no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; + "") enable_ltdl_convenience=yes + ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; + esac + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +]) + +# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for +# the libltdl installable library and LTDLINCL to the include flags for +# the libltdl header and adds --enable-ltdl-install to the configure +# arguments. Note that LIBLTDL and LTDLINCL are not AC_SUBSTed, nor is +# AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed +# libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will +# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed +# with '${top_srcdir}/' (note the single quotes!). If your package is +# not flat and you're not using automake, define top_builddir and +# top_srcdir appropriately in the Makefiles. +# In the future, this macro may have to be called after AC_PROG_LIBTOOL. +AC_DEFUN([AC_LIBLTDL_INSTALLABLE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_CHECK_LIB(ltdl, main, + [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], + [if test x"$enable_ltdl_install" = xno; then + AC_MSG_WARN([libltdl not installed, but installation disabled]) + else + enable_ltdl_install=yes + fi + ]) + if test x"$enable_ltdl_install" = x"yes"; then + ac_configure_args="$ac_configure_args --enable-ltdl-install" + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + else + ac_configure_args="$ac_configure_args --enable-ltdl-install=no" + LIBLTDL="-lltdl" + LTDLINCL= + fi + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +]) + +# old names +AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) +AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) +AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) + +# This is just to silence aclocal about the macro not being used +ifelse([AC_DISABLE_FAST_INSTALL]) + +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +# LT_AC_PROG_SED +# -------------- +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +AC_DEFUN([LT_AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_executable_p="test -f" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" + fi + done + done +done + + # Create a temporary directory, and hook for its removal unless debugging. +$debug || +{ + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} + +# Create a (secure) tmp directory for tmp files. +: ${TMPDIR=/tmp} +{ + tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=$TMPDIR/sed$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in $TMPDIR" >&2 + { (exit 1); exit 1; } +} + _max=0 + _count=0 + # Add /usr/xpg4/bin/sed as it is typically found on Solaris + # along with /bin/sed that truncates output. + for _sed in $_sed_list /usr/xpg4/bin/sed; do + test ! -f ${_sed} && break + cat /dev/null > "$tmp/sed.in" + _count=0 + echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" + # Check for GNU sed and select it if it is found. + if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then + lt_cv_path_SED=${_sed} + break + fi + while true; do + cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" + mv "$tmp/sed.tmp" "$tmp/sed.in" + cp "$tmp/sed.in" "$tmp/sed.nl" + echo >>"$tmp/sed.nl" + ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break + cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break + # 40000 chars as input seems more than enough + test $_count -gt 10 && break + _count=`expr $_count + 1` + if test $_count -gt $_max; then + _max=$_count + lt_cv_path_SED=$_sed + fi + done + done + rm -rf "$tmp" +]) +if test "X$SED" != "X"; then + lt_cv_path_SED=$SED +else + SED=$lt_cv_path_SED +fi +AC_MSG_RESULT([$SED]) +]) + + +dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) +dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page +dnl also defines GSTUFF_PKG_ERRORS on error +AC_DEFUN(PKG_CHECK_MODULES, [ + succeeded=no + + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + AC_MSG_CHECKING(for $2) + + if $PKG_CONFIG --exists "$2" ; then + AC_MSG_RESULT(yes) + succeeded=yes + + AC_MSG_CHECKING($1_CFLAGS) + $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` + AC_MSG_RESULT($$1_CFLAGS) + + AC_MSG_CHECKING($1_LIBS) + $1_LIBS=`$PKG_CONFIG --libs "$2"` + AC_MSG_RESULT($$1_LIBS) + else + $1_CFLAGS="" + $1_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + ifelse([$4], ,echo $$1_PKG_ERRORS,) + fi + + AC_SUBST($1_CFLAGS) + AC_SUBST($1_LIBS) + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + ifelse([$3], , :, [$3]) + else + ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) + fi +]) + + + +# Macro to add for using GNU gettext. +# Ulrich Drepper , 1995, 1996 +# +# Modified to never use included libintl. +# Owen Taylor , 12/15/1998 +# +# Major rework to remove unused code +# Owen Taylor , 12/11/2002 +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# + +# +# We need this here as well, since someone might use autoconf-2.5x +# to configure GLib then an older version to configure a package +# using AM_GLIB_GNU_GETTEXT +AC_PREREQ(2.53) + +dnl +dnl We go to great lengths to make sure that aclocal won't +dnl try to pull in the installed version of these macros +dnl when running aclocal in the glib directory. +dnl +m4_copy([AC_DEFUN],[glib_DEFUN]) +m4_copy([AC_REQUIRE],[glib_REQUIRE]) +dnl +dnl At the end, if we're not within glib, we'll define the public +dnl definitions in terms of our private definitions. +dnl + +# GLIB_LC_MESSAGES +#-------------------- +glib_DEFUN([GLIB_LC_MESSAGES], + [AC_CHECK_HEADERS([locale.h]) + if test $ac_cv_header_locale_h = yes; then + AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include ], [return LC_MESSAGES], + am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) + if test $am_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES, 1, + [Define if your file defines LC_MESSAGES.]) + fi + fi]) + +# GLIB_PATH_PROG_WITH_TEST +#---------------------------- +dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], +[# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + /*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in ifelse([$5], , $PATH, [$5]); do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) + +# GLIB_WITH_NLS +#----------------- +glib_DEFUN([GLIB_WITH_NLS], + dnl NLS is obligatory + [USE_NLS=yes + AC_SUBST(USE_NLS) + + gt_cv_have_gettext=no + + CATOBJEXT=NONE + XGETTEXT=: + INTLLIBS= + + AC_CHECK_HEADER(libintl.h, + [gt_cv_func_dgettext_libintl="no" + libintl_extra_libs="" + + # + # First check in libc + # + AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, + [AC_TRY_LINK([ +#include +], + [return (int) dgettext ("","")], + gt_cv_func_dgettext_libc=yes, + gt_cv_func_dgettext_libc=no) + ]) + + if test "$gt_cv_func_dgettext_libc" = "yes" ; then + AC_CHECK_FUNCS(bind_textdomain_codeset) + fi + + # + # If we don't have everything we want, check in libintl + # + if test "$gt_cv_func_dgettext_libc" != "yes" \ + || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then + + AC_CHECK_LIB(intl, bindtextdomain, + [AC_CHECK_LIB(intl, dgettext, + gt_cv_func_dgettext_libintl=yes)]) + + if test "$gt_cv_func_dgettext_libintl" != "yes" ; then + AC_MSG_CHECKING([if -liconv is needed to use gettext]) + AC_MSG_RESULT([]) + AC_CHECK_LIB(intl, dcgettext, + [gt_cv_func_dgettext_libintl=yes + libintl_extra_libs=-liconv], + :,-liconv) + fi + + # + # If we found libintl, then check in it for bind_textdomain_codeset(); + # we'll prefer libc if neither have bind_textdomain_codeset(), + # and both have dgettext + # + if test "$gt_cv_func_dgettext_libintl" = "yes" ; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS -lintl $libintl_extra_libs" + unset ac_cv_func_bind_textdomain_codeset + AC_CHECK_FUNCS(bind_textdomain_codeset) + LIBS="$glib_save_LIBS" + + if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then + gt_cv_func_dgettext_libc=no + else + if test "$gt_cv_func_dgettext_libc" = "yes"; then + gt_cv_func_dgettext_libintl=no + fi + fi + fi + fi + + if test "$gt_cv_func_dgettext_libc" = "yes" \ + || test "$gt_cv_func_dgettext_libintl" = "yes"; then + gt_cv_have_gettext=yes + fi + + if test "$gt_cv_func_dgettext_libintl" = "yes"; then + INTLLIBS="-lintl $libintl_extra_libs" + fi + + if test "$gt_cv_have_gettext" = "yes"; then + AC_DEFINE(HAVE_GETTEXT,1, + [Define if the GNU gettext() function is already present or preinstalled.]) + GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl + if test "$MSGFMT" != "no"; then + AC_CHECK_FUNCS(dcgettext) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr], + [CATOBJEXT=.gmo + DATADIRNAME=share], + [CATOBJEXT=.mo + DATADIRNAME=lib]) + INSTOBJEXT=.mo + else + gt_cv_have_gettext=no + fi + fi + ]) + + if test "$gt_cv_have_gettext" = "yes" ; then + AC_DEFINE(ENABLE_NLS, 1, + [always defined to indicate that i18n is enabled]) + fi + + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is not GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + AC_MSG_RESULT( + [found xgettext program is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + + AC_OUTPUT_COMMANDS( + [case "$CONFIG_FILES" in *po/Makefile.in*) + sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + esac]) + + dnl These rules are solely for the distribution goal. While doing this + dnl we only have to keep exactly one list of the available catalogs + dnl in configure.in. + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + dnl Make all variables we use known to autoconf. + AC_SUBST(CATALOGS) + AC_SUBST(CATOBJEXT) + AC_SUBST(DATADIRNAME) + AC_SUBST(GMOFILES) + AC_SUBST(INSTOBJEXT) + AC_SUBST(INTLLIBS) + AC_SUBST(PO_IN_DATADIR_TRUE) + AC_SUBST(PO_IN_DATADIR_FALSE) + AC_SUBST(POFILES) + AC_SUBST(POSUB) + ]) + +# AM_GLIB_GNU_GETTEXT +# ------------------- +# Do checks necessary for use of gettext. If a suitable implementation +# of gettext is found in either in libintl or in the C library, +# it will set INTLLIBS to the libraries needed for use of gettext +# and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable +# gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() +# on various variables needed by the Makefile.in.in installed by +# glib-gettextize. +dnl +glib_DEFUN(GLIB_GNU_GETTEXT, + [AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + + GLIB_LC_MESSAGES + GLIB_WITH_NLS + + if test "$gt_cv_have_gettext" = "yes"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + AC_MSG_CHECKING(for catalogs to be installed) + NEW_LINGUAS= + for lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in + *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; + esac + done + LINGUAS=$NEW_LINGUAS + AC_MSG_RESULT($LINGUAS) + fi + + dnl Construct list of names of catalog files to be constructed. + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly + dnl find the mkinstalldirs script in another subdir but ($top_srcdir). + dnl Try to locate is. + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + AC_SUBST(MKINSTALLDIRS) + + dnl Generate list of files to be processed by xgettext which will + dnl be included in po/Makefile. + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + ]) + +# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) +# ------------------------------- +# Define VARIABLE to the location where catalog files will +# be installed by po/Makefile. +glib_DEFUN(GLIB_DEFINE_LOCALEDIR, +[glib_REQUIRE([GLIB_GNU_GETTEXT])dnl +glib_save_prefix="$prefix" +test "x$prefix" = xNONE && prefix=$ac_default_prefix +if test "x$CATOBJEXT" = "x.mo" ; then + localedir=`eval echo "${libdir}/locale"` +else + localedir=`eval echo "${datadir}/locale"` +fi +prefix="$glib_save_prefix" +AC_DEFINE_UNQUOTED($1, "$localedir", + [Define the location where the catalogs will be installed]) +]) + +dnl +dnl Now the definitions that aclocal will find +dnl +ifdef(glib_configure_in,[],[ +AC_DEFUN(AM_GLIB_GNU_GETTEXT,[GLIB_GNU_GETTEXT($@)]) +AC_DEFUN(AM_GLIB_DEFINE_LOCALEDIR,[GLIB_DEFINE_LOCALEDIR($@)]) +])dnl + diff --git a/config.guess b/config.guess new file mode 100755 index 0000000..ba66165 --- /dev/null +++ b/config.guess @@ -0,0 +1,1371 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. + +timestamp='2001-04-20' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Written by Per Bothner . +# Please send patches to . +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + + +dummy=dummy-$$ +trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int dummy(){}" > $dummy.c + for c in cc gcc c89 ; do + ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 + if test $? = 0 ; then + CC_FOR_BUILD="$c"; break + fi + done + rm -f $dummy.c $dummy.o $dummy.rel + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 8/24/94.) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # Netbsd (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # Determine the machine/vendor (is the vendor relevant). + case "${UNAME_MACHINE}" in + amiga) machine=m68k-unknown ;; + arm32) machine=arm-unknown ;; + atari*) machine=m68k-atari ;; + sun3*) machine=m68k-sun ;; + mac68k) machine=m68k-apple ;; + macppc) machine=powerpc-apple ;; + hp3[0-9][05]) machine=m68k-hp ;; + ibmrt|romp-ibm) machine=romp-ibm ;; + *) machine=${UNAME_MACHINE}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE}" in + i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k) + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit 0 ;; + alpha:OSF1:*:*) + if test $UNAME_RELEASE = "V4.0"; then + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + fi + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + cat <$dummy.s + .data +\$Lformat: + .byte 37,100,45,37,120,10,0 # "%d-%x\n" + + .text + .globl main + .align 4 + .ent main +main: + .frame \$30,16,\$26,0 + ldgp \$29,0(\$27) + .prologue 1 + .long 0x47e03d80 # implver \$0 + lda \$2,-1 + .long 0x47e20c21 # amask \$2,\$1 + lda \$16,\$Lformat + mov \$0,\$17 + not \$1,\$18 + jsr \$26,printf + ldgp \$29,0(\$26) + mov 0,\$16 + jsr \$26,exit + .end main +EOF + $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null + if test "$?" = 0 ; then + case `./$dummy` in + 0-0) + UNAME_MACHINE="alpha" + ;; + 1-0) + UNAME_MACHINE="alphaev5" + ;; + 1-1) + UNAME_MACHINE="alphaev56" + ;; + 1-101) + UNAME_MACHINE="alphapca56" + ;; + 2-303) + UNAME_MACHINE="alphaev6" + ;; + 2-307) + UNAME_MACHINE="alphaev67" + ;; + esac + fi + rm -f $dummy.s $dummy + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit 0 ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit 0;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit 0 ;; + arc64:OpenBSD:*:*) + echo mips64el-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hkmips:OpenBSD:*:*) + echo mips-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + pmax:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sgi:OpenBSD:*:*) + echo mips-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + wgrisc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit 0;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit 0 ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit 0 ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit 0 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; + atari*:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit 0 ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit 0 ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit 0 ;; + sun3*:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit 0 ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit 0 ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD $dummy.c -o $dummy \ + && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit 0 ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit 0 ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit 0 ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit 0 ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit 0 ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit 0 ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit 0 ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit 0 ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit 0 ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit 0 ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit 0 ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit 0 ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit 0 ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + case "${HPUX_REV}" in + 11.[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" ;; + esac ;; + esac + fi ;; + esac + if [ "${HP_ARCH}" = "" ]; then + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` + if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi + rm -f $dummy.c $dummy + fi ;; + esac + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit 0 ;; + 3050*:HI-UX:*:*) + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit 0 ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; + *9??*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit 0 ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; + hppa*:OpenBSD:*:*) + echo hppa-unknown-openbsd + exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit 0 ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit 0 ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit 0 ;; + CRAY*X-MP:*:*:*) + echo xmp-cray-unicos + exit 0 ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} + exit 0 ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + exit 0 ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3D:*:*:*) + echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY-2:*:*:*) + echo cray2-cray-unicos + exit 0 ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit 0 ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit 0 ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit 0 ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i386-pc-interix + exit 0 ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit 0 ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit 0 ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux + exit 0 ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + mips:Linux:*:*) + cat >$dummy.c < /* for printf() prototype */ +int main (int argc, char *argv[]) { +#else +int main (argc, argv) int argc; char *argv[]; { +#endif +#ifdef __MIPSEB__ + printf ("%s-unknown-linux-gnu\n", argv[1]); +#endif +#ifdef __MIPSEL__ + printf ("%sel-unknown-linux-gnu\n", argv[1]); +#endif + return 0; +} +EOF + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + ;; + ppc:Linux:*:*) + # Determine Lib Version + cat >$dummy.c < +#if defined(__GLIBC__) +extern char __libc_version[]; +extern char __libc_release[]; +#endif +main(argc, argv) + int argc; + char *argv[]; +{ +#if defined(__GLIBC__) + printf("%s %s\n", __libc_version, __libc_release); +#else + printf("unknown\n"); +#endif + return 0; +} +EOF + LIBC="" + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null + if test "$?" = 0 ; then + ./$dummy | grep 1\.99 > /dev/null + if test "$?" = 0 ; then LIBC="libc1" ; fi + fi + rm -f $dummy.c $dummy + echo powerpc-unknown-linux-gnu${LIBC} + exit 0 ;; + alpha:Linux:*:*) + cat <$dummy.s + .data + \$Lformat: + .byte 37,100,45,37,120,10,0 # "%d-%x\n" + .text + .globl main + .align 4 + .ent main + main: + .frame \$30,16,\$26,0 + ldgp \$29,0(\$27) + .prologue 1 + .long 0x47e03d80 # implver \$0 + lda \$2,-1 + .long 0x47e20c21 # amask \$2,\$1 + lda \$16,\$Lformat + mov \$0,\$17 + not \$1,\$18 + jsr \$26,printf + ldgp \$29,0(\$26) + mov 0,\$16 + jsr \$26,exit + .end main +EOF + LIBC="" + $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null + if test "$?" = 0 ; then + case `./$dummy` in + 0-0) UNAME_MACHINE="alpha" ;; + 1-0) UNAME_MACHINE="alphaev5" ;; + 1-1) UNAME_MACHINE="alphaev56" ;; + 1-101) UNAME_MACHINE="alphapca56" ;; + 2-303) UNAME_MACHINE="alphaev6" ;; + 2-307) UNAME_MACHINE="alphaev67" ;; + esac + objdump --private-headers $dummy | \ + grep ld.so.1 > /dev/null + if test "$?" = 0 ; then + LIBC="libc1" + fi + fi + rm -f $dummy.s $dummy + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit 0 ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit 0 ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit 0 ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit 0 ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit 0 ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + ld_supported_emulations=`cd /; ld --help 2>&1 \ + | sed -ne '/supported emulations:/!d + s/[ ][ ]*/ /g + s/.*supported emulations: *// + s/ .*// + p'` + case "$ld_supported_emulations" in + i*86linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit 0 + ;; + elf_i*86) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + i*86coff) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit 0 + ;; + esac + # Either a pre-BFD a.out linker (linux-gnuoldld) + # or one that does not give us useful --help. + # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. + # If ld does not provide *any* "supported emulations:" + # that means it is gnuoldld. + test -z "$ld_supported_emulations" && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 + case "${UNAME_MACHINE}" in + i*86) + VENDOR=pc; + ;; + *) + VENDOR=unknown; + ;; + esac + # Determine whether the default compiler is a.out or elf + cat >$dummy.c < +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif +#ifdef __ELF__ +# ifdef __GLIBC__ +# if __GLIBC__ >= 2 + printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); +# else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +# endif +# else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +# endif +#else + printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); +#endif + return 0; +} +EOF + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + ;; +# 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. + i*86:DYNIX/ptx:4*:*) + echo i386-sequent-sysv4 + exit 0 ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit 0 ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit 0 ;; + i*86:*:5:7*) + # Fixed at (any) Pentium or better + UNAME_MACHINE=i586 + if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then + echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} + fi + exit 0 ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` + (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 0 ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit 0 ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit 0 ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit 0 ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit 0 ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit 0 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit 0 ;; + PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit 0 ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit 0 ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit 0 ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit 0 ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit 0 ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit 0 ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit 0 ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Darwin:*:*) + echo `uname -p`-apple-darwin${UNAME_RELEASE} + exit 0 ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + if test "${UNAME_MACHINE}" = "x86pc"; then + UNAME_MACHINE=pc + fi + echo `uname -p`-${UNAME_MACHINE}-nto-qnx + exit 0 ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit 0 ;; + NSR-[KW]:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit 0 ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit 0 ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit 0 ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit 0 ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit 0 ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit 0 ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit 0 ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit 0 ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit 0 ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit 0 ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit 0 ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit 0 ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0 +rm -f $dummy.c $dummy + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..0d5fd00 --- /dev/null +++ b/config.h.in @@ -0,0 +1,139 @@ +/* config.h.in. Generated from configure.in by autoheader. */ + +/* always defined to indicate that i18n is enabled */ +#undef ENABLE_NLS + +/* Gettext package */ +#undef GETTEXT_PACKAGE + +/* Define to 1 if you have the `bind_textdomain_codeset' function. */ +#undef HAVE_BIND_TEXTDOMAIN_CODESET + +/* Define to 1 if you have the header file. */ +#undef HAVE_CDDA_CDDA_INTERFACE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_CDDA_CDDA_PARANOIA_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_CDDA_INTERFACE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_CDDA_PARANOIA_H + +/* Define to 1 if you have the `dcgettext' function. */ +#undef HAVE_DCGETTEXT + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Description */ +#undef HAVE_ID3V2 + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_IO_CAM_CDROM_H + +/* Define if your file defines LC_MESSAGES. */ +#undef HAVE_LC_MESSAGES + +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_CDROM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_SOUNDCARD_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_UCDROM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LOCALE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MACHINE_SOUNDCARD_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SUN_AUDIOIO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_AUDIOIO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_AUDIO_IO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_CDIO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_MNTENT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOUNDCARD_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STATVFS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_VFS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Description */ +#undef ID3LIB_MAJOR + +/* Description */ +#undef ID3LIB_MINOR + +/* Description */ +#undef ID3LIB_PATCH + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION diff --git a/config.sub b/config.sub new file mode 100755 index 0000000..a06a480 --- /dev/null +++ b/config.sub @@ -0,0 +1,1362 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. + +timestamp='2001-04-20' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit 0;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \ + | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \ + | pyramid | mn10200 | mn10300 | tron | a29k \ + | 580 | i960 | h8300 \ + | x86 | ppcbe | mipsbe | mipsle | shbe | shle \ + | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \ + | hppa64 \ + | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \ + | alphaev6[78] \ + | we32k | ns16k | clipper | i370 | sh | sh[34] \ + | powerpc | powerpcle \ + | 1750a | dsp16xx | pdp10 | pdp11 \ + | mips16 | mips64 | mipsel | mips64el \ + | mips64orion | mips64orionel | mipstx39 | mipstx39el \ + | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \ + | mips64vr5000 | miprs64vr5000el | mcore | s390 | s390x \ + | sparc | sparclet | sparclite | sparc64 | sparcv9 | sparcv9b \ + | v850 | c4x \ + | thumb | d10v | d30v | fr30 | avr | openrisc | tic80 \ + | pj | pjl | h8500) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | w65) + ;; + + # 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. + # FIXME: clean up the formatting here. + vax-* | tahoe-* | i*86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \ + | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \ + | arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ + | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \ + | xmp-* | ymp-* \ + | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \ + | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \ + | hppa2.0n-* | hppa64-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \ + | alphaev6[78]-* \ + | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \ + | clipper-* | orion-* \ + | sparclite-* | pdp10-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ + | sparc64-* | sparcv9-* | sparcv9b-* | sparc86x-* \ + | mips16-* | mips64-* | mipsel-* \ + | mips64el-* | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \ + | mipstx39-* | mipstx39el-* | mcore-* \ + | f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \ + | [cjt]90-* \ + | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \ + | thumb-* | v850-* | d30v-* | tic30-* | tic80-* | c30-* | fr30-* \ + | bs2000-* | tic54x-* | c54x-* | x86_64-* | pj-* | pjl-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + 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 | ymp) + basic_machine=ymp-cray + os=-unicos + ;; + cray2) + basic_machine=cray2-cray + os=-unicos + ;; + [cjt]90) + basic_machine=${basic_machine}-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mipsel*-linux*) + basic_machine=mipsel-unknown + os=-linux-gnu + ;; + mips*-linux*) + basic_machine=mips-unknown + os=-linux-gnu + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + mmix*) + basic_machine=mmix-knuth + os=-mmixware + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5 | k5 | k6 | nexgen) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon) + basic_machine=i686-pc + ;; + pentiumii | pentium2) + basic_machine=i686-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sparclite-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=t3e-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xmp) + basic_machine=xmp-cray + os=-unicos + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + mips) + if [ x$os = x-linux-gnu ]; then + basic_machine=mips-unknown + else + basic_machine=mips-mips + fi + ;; + romp) + basic_machine=romp-ibm + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh3 | sh4) + basic_machine=sh-unknown + ;; + sparc | sparcv9 | sparcv9b) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + c4x*) + basic_machine=c4x-none + os=-coff + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto*) + os=-nto-qnx + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -vxsim* | -vxworks*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/configure b/configure new file mode 100755 index 0000000..e5b041a --- /dev/null +++ b/configure @@ -0,0 +1,12746 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.59 for grip 3.3.1. +# +# Report bugs to . +# +# Copyright (C) 2003 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 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+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi +DUALCASE=1; export DUALCASE # for MKS sh + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; 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 + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# 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'" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + + +# Find the correct PATH separator. Usually this is `:', but +# DJGPP uses `;' like DOS. +if test "X${PATH_SEPARATOR+set}" != Xset; then + UNAME=${UNAME-`uname 2>/dev/null`} + case X$UNAME in + *-DOS) lt_cv_sys_path_separator=';' ;; + *) lt_cv_sys_path_separator=':' ;; + esac + PATH_SEPARATOR=$lt_cv_sys_path_separator +fi + + +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` + ;; +esac + +echo=${ECHO-echo} +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "$0" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null && + echo_test_string="`eval $cmd`" && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL $0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL $0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "$0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" +fi + + + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +exec 6>&1 + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_config_libobj_dir=. +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Maximum number of lines to put in a shell here document. +# This variable seems obsolete. It should probably be removed, and +# only ac_max_sed_lines should be used. +: ${ac_max_here_lines=38} + +# Identity of this package. +PACKAGE_NAME='grip' +PACKAGE_TARNAME='grip' +PACKAGE_VERSION='3.3.1' +PACKAGE_STRING='grip 3.3.1' +PACKAGE_BUGREPORT='http://sf.net/tracker/?group_id=3714&atid=103714' + +ac_unique_file="src/main.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#if HAVE_SYS_TYPES_H +# include +#endif +#if HAVE_SYS_STAT_H +# include +#endif +#if STDC_HEADERS +# include +# include +#else +# if HAVE_STDLIB_H +# include +# endif +#endif +#if HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H +# include +# endif +# include +#endif +#if HAVE_STRINGS_H +# include +#endif +#if HAVE_INTTYPES_H +# include +#else +# if HAVE_STDINT_H +# include +# endif +#endif +#if HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE CXX CXXFLAGS ac_ct_CXX CXXDEPMODE CPP EGREP build build_cpu build_vendor build_os host host_cpu host_vendor host_os LN_S ECHO RANLIB ac_ct_RANLIB LIBTOOL PKG_CONFIG GNOME_CFLAGS GNOME_LIBS TERMINAL_WIDGET_CFLAGS TERMINAL_WIDGET_LIBS GETTEXT_PACKAGE USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLLIBS PO_IN_DATADIR_TRUE PO_IN_DATADIR_FALSE POFILES POSUB MKINSTALLDIRS CDPAR_LIBS ID3_LIBS LIBOBJS LTLIBOBJS' +ac_subst_files='' + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +ac_prev= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_option in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval "enable_$ac_feature=no" ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "enable_$ac_feature='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package| sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "with_$ac_package='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval "with_$ac_package=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` + eval "$ac_envvar='$ac_optarg'" + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute paths. +for ac_var in exec_prefix prefix +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* | NONE | '' ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# Be sure to have absolute paths. +for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_confdir=`(dirname "$0") 2>/dev/null || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 + { (exit 1); exit 1; }; } + else + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } + fi +fi +(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || + { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 + { (exit 1); exit 1; }; } +srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` +ac_env_build_alias_set=${build_alias+set} +ac_env_build_alias_value=$build_alias +ac_cv_env_build_alias_set=${build_alias+set} +ac_cv_env_build_alias_value=$build_alias +ac_env_host_alias_set=${host_alias+set} +ac_env_host_alias_value=$host_alias +ac_cv_env_host_alias_set=${host_alias+set} +ac_cv_env_host_alias_value=$host_alias +ac_env_target_alias_set=${target_alias+set} +ac_env_target_alias_value=$target_alias +ac_cv_env_target_alias_set=${target_alias+set} +ac_cv_env_target_alias_value=$target_alias +ac_env_CC_set=${CC+set} +ac_env_CC_value=$CC +ac_cv_env_CC_set=${CC+set} +ac_cv_env_CC_value=$CC +ac_env_CFLAGS_set=${CFLAGS+set} +ac_env_CFLAGS_value=$CFLAGS +ac_cv_env_CFLAGS_set=${CFLAGS+set} +ac_cv_env_CFLAGS_value=$CFLAGS +ac_env_LDFLAGS_set=${LDFLAGS+set} +ac_env_LDFLAGS_value=$LDFLAGS +ac_cv_env_LDFLAGS_set=${LDFLAGS+set} +ac_cv_env_LDFLAGS_value=$LDFLAGS +ac_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_env_CPPFLAGS_value=$CPPFLAGS +ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_cv_env_CPPFLAGS_value=$CPPFLAGS +ac_env_CXX_set=${CXX+set} +ac_env_CXX_value=$CXX +ac_cv_env_CXX_set=${CXX+set} +ac_cv_env_CXX_value=$CXX +ac_env_CXXFLAGS_set=${CXXFLAGS+set} +ac_env_CXXFLAGS_value=$CXXFLAGS +ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} +ac_cv_env_CXXFLAGS_value=$CXXFLAGS +ac_env_CPP_set=${CPP+set} +ac_env_CPP_value=$CPP +ac_cv_env_CPP_set=${CPP+set} +ac_cv_env_CPP_value=$CPP + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures grip 3.3.1 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +_ACEOF + + cat <<_ACEOF +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data [PREFIX/share] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --infodir=DIR info documentation [PREFIX/info] + --mandir=DIR man documentation [PREFIX/man] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of grip 3.3.1:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer + --disable-shared-cdpar use static cdparanoia lib + --disable-cdpar do not compile with cdparanoia + --disable-id3 do not compile with id3lib + --disable-shared-id3 use static id3lib + --disable-dependency-tracking Speeds up one-time builds + --enable-dependency-tracking Do not reject slow dependency extractors + --enable-shared=PKGS build shared libraries default=yes + --enable-static=PKGS build static libraries default=yes + --enable-fast-install=PKGS optimize for fast installation default=yes + --disable-libtool-lock avoid locking (might break parallel builds) + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-gnu-ld assume the C compiler uses GNU ld default=no + --with-pic try to use only PIC/non-PIC objects default=use both + +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 + CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have + headers in a nonstandard directory + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + ac_popdir=`pwd` + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d $ac_dir || continue + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac + + cd $ac_dir + # Check for guested configure; otherwise get Cygnus style configure. + if test -f $ac_srcdir/configure.gnu; then + echo + $SHELL $ac_srcdir/configure.gnu --help=recursive + elif test -f $ac_srcdir/configure; then + echo + $SHELL $ac_srcdir/configure --help=recursive + elif test -f $ac_srcdir/configure.ac || + test -f $ac_srcdir/configure.in; then + echo + $ac_configure --help + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi + cd $ac_popdir + done +fi + +test -n "$ac_init_help" && exit 0 +if $ac_init_version; then + cat <<\_ACEOF +grip configure 3.3.1 +generated by GNU Autoconf 2.59 + +Copyright (C) 2003 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit 0 +fi +exec 5>config.log +cat >&5 <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by grip $as_me 3.3.1, which was +generated by GNU Autoconf 2.59. Invocation command line was + + $ $0 $@ + +_ACEOF +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +hostinfo = `(hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# 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_sep= +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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$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 + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + # Get rid of the leading space. + ac_sep=" " + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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: Be sure not to use single quotes in there, as some shells, +# such as our DU 5.0 friend, will then `close' the trap. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +{ + (set) 2>&1 | + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) + sed -n \ + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; + *) + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------- ## +## Output files. ## +## ------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + sed "/^$/d" confdefs.h | sort + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core && + rm -rf conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status + ' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo >confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . $cache_file;; + *) . ./$cache_file;; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in `(set) 2>&1 | + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val="\$ac_cv_env_${ac_var}_value" + eval ac_new_val="\$ac_env_${ac_var}_value" + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + + + + + + + + + + + + + + + + + + + + + + + +am__api_version="1.6" +ac_aux_dir= +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f $ac_dir/shtool; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 +echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} + { (exit 1); exit 1; }; } +fi +ac_config_guess="$SHELL $ac_aux_dir/config.guess" +ac_config_sub="$SHELL $ac_aux_dir/config.sub" +ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/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_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL=$ac_install_sh + fi +fi +echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&5 +echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&2;} + { (exit 1); exit 1; }; } + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! +Check your system clock" >&5 +echo "$as_me: error: newly created file is older than distributed files! +Check your system clock" >&2;} + { (exit 1); exit 1; }; } +fi +echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +test "$program_prefix" != NONE && + program_transform_name="s,^,$program_prefix,;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$,$program_suffix,;$program_transform_name" +# Double any \ or $. echo might interpret backslashes. +# By default was `s,x,x', remove it if useless. +cat <<\_ACEOF >conftest.sed +s/[\\$]/&&/g;s/;s,x,x,$// +_ACEOF +program_transform_name=`echo $program_transform_name | sed -f conftest.sed` +rm conftest.sed + + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 +echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$AWK" && break +done + +echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` +if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +all: + @echo 'ac_maketemp="$(MAKE)"' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftest.make +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + SET_MAKE= +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + + # test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && + test -f $srcdir/config.status; then + { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} + { (exit 1); exit 1; }; } +fi + +# Define the identity of the package. + PACKAGE=grip + VERSION=3.3.1 + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +install_sh=${install_sh-"$am_aux_dir/install-sh"} + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + STRIP=$ac_ct_STRIP +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. + + + + +echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi; + echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 +echo "${ECHO_T}$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 + + +# Add the stamp file to the list of files AC keeps track of, +# along with our hook. + ac_config_headers="$ac_config_headers config.h" + + + + +# Check whether --enable-shared_cdpar or --disable-shared_cdpar was given. +if test "${enable_shared_cdpar+set}" = set; then + enableval="$enable_shared_cdpar" + +else + enable_shared_cdpar=yes +fi; + +# Check whether --enable-cdpar or --disable-cdpar was given. +if test "${enable_cdpar+set}" = set; then + enableval="$enable_cdpar" + +else + enable_cdpar=yes +fi; + +# Check whether --enable-id3 or --disable-id3 was given. +if test "${enable_id3+set}" = set; then + enableval="$enable_id3" + +else + enable_id3=yes +fi; + +# Check whether --enable-shared_id3 or --disable-shared_id3 was given. +if test "${enable_shared_id3+set}" = set; then + enableval="$enable_shared_id3" + +else + enable_shared_id3=yes +fi; + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$ac_ct_CC" && break +done + + CC=$ac_ct_CC +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO:" \ + "checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out 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. +echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 + (eval $ac_link_default) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Find the output, starting from the most likely. This scheme is +# not robust to junk in `.', hence go to wildcards (a.*) only as a last +# resort. + +# Be careful to initialize this variable, since it used to be cached. +# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. +ac_cv_exeext= +# b.out is created by i960 compilers. +for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) + ;; + conftest.$ac_ext ) + # This is the source file. + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + # FIXME: I believe we export ac_cv_exeext for Libtool, + # but it would be cool to find out if it's true. Does anybody + # maintain Libtool? --akim. + export ac_cv_exeext + break;; + * ) + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext +echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6 + +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +rm -f a.out a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 +echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6 + +echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + export ac_cv_exeext + break;; + * ) break;; + esac +done +else + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6 + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6 +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_compiler_gnu=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +CFLAGS="-g" +echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_prog_cc_g=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 +echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_stdc=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* 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 -std1 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 -std1. */ +int osf4_cc_array ['\x00' == 0 ? 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 +# Don't try gcc -ansi; that turns off useful extensions and +# breaks some systems' header files. +# AIX -qlanglvl=ansi +# Ultrix and OSF/1 -std1 +# HP-UX 10.20 and later -Ae +# HP-UX older versions -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_stdc=$ac_arg +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext +done +rm -f conftest.$ac_ext conftest.$ac_objext +CC=$ac_save_CC + +fi + +case "x$ac_cv_prog_cc_stdc" in + x|xno) + echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6 ;; + *) + echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 + CC="$CC $ac_cv_prog_cc_stdc" ;; +esac + +# Some people use a C++ compiler to compile C. Since we use `exit', +# in C++ we need to declare it. In case someone uses the same compiler +# for both compiling C and C++ we need to have the C++ compiler decide +# the declaration of exit, since it's the most demanding environment. +cat >conftest.$ac_ext <<_ACEOF +#ifndef __cplusplus + choke me +#endif +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ + '' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' +do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +#include +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +continue +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done +rm -f conftest* +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>confdefs.h +fi + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +rm -f .deps 2>/dev/null +mkdir .deps 2>/dev/null +if test -d .deps; then + DEPDIR=.deps +else + # MS-DOS does not allow filenames that begin with a dot. + DEPDIR=_deps +fi +rmdir .deps 2>/dev/null + + + ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +doit: + @echo done +END +# If we don't find an include directive, just comment out the code. +echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi + + +echo "$as_me:$LINENO: result: $_am_result" >&5 +echo "${ECHO_T}$_am_result" >&6 +rm -f confinc confmf + +# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then + enableval="$enable_dependency_tracking" + +fi; +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi + + +if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + + +depcc="$CC" am_compiler_list= + +echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + echo '#include "conftest.h"' > conftest.c + echo 'int i;' > conftest.h + echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=conftest.c object=conftest.o \ + depfile=conftest.Po tmpdepfile=conftest.TPo \ + $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && + grep conftest.h conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -n "$ac_tool_prefix"; then + for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + echo "$as_me:$LINENO: result: $CXX" >&5 +echo "${ECHO_T}$CXX" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 +echo "${ECHO_T}$ac_ct_CXX" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$ac_ct_CXX" && break +done +test -n "$ac_ct_CXX" || ac_ct_CXX="g++" + + CXX=$ac_ct_CXX +fi + + +# Provide some information about the compiler. +echo "$as_me:$LINENO:" \ + "checking for C++ compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_compiler_gnu=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 +GXX=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +CXXFLAGS="-g" +echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 +echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_cxx_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_prog_cxx_g=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +for ac_declaration in \ + '' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' +do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +#include +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +continue +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done +rm -f conftest* +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>confdefs.h +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CXX" am_compiler_list= + +echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + echo '#include "conftest.h"' > conftest.c + echo 'int i;' > conftest.h + echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=conftest.c object=conftest.o \ + depfile=conftest.Po tmpdepfile=conftest.TPo \ + $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && + grep conftest.h conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + + + + echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5 +echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6 +if test "${ac_cv_lib_cposix_strerror+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcposix $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char strerror (); +int +main () +{ +strerror (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_cposix_strerror=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_cposix_strerror=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5 +echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6 +if test $ac_cv_lib_cposix_strerror = yes; then + LIBS="$LIBS -lcposix" +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # 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 >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6 +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # 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 >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6 +if test "${ac_cv_prog_egrep+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 +echo "${ECHO_T}$ac_cv_prog_egrep" >&6 + EGREP=$ac_cv_prog_egrep + + +echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_header_stdc=no +fi +rm -f 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 >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* 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 >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* 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 >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6 +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_Header=no" +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + +for ac_header in sys/vfs.h sys/statvfs.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## --------------------------------------------------------------- ## +## Report this to http://sf.net/tracker/?group_id=3714&atid=103714 ## +## --------------------------------------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + +for ac_header in linux/cdrom.h linux/ucdrom.h sys/cdio.h io/cam/cdrom.h sys/mntent.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## --------------------------------------------------------------- ## +## Report this to http://sf.net/tracker/?group_id=3714&atid=103714 ## +## --------------------------------------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + + +for ac_header in linux/soundcard.h machine/soundcard.h sys/soundcard.h sys/audioio.h sys/audio.io.h sun/audioio.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## --------------------------------------------------------------- ## +## Report this to http://sf.net/tracker/?group_id=3714&atid=103714 ## +## --------------------------------------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +# Check whether --enable-shared or --disable-shared was given. +if test "${enable_shared+set}" = set; then + enableval="$enable_shared" + p=${PACKAGE-default} +case $enableval in +yes) enable_shared=yes ;; +no) enable_shared=no ;; +*) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," + for pkg in $enableval; do + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$ac_save_ifs" + ;; +esac +else + enable_shared=yes +fi; +# Check whether --enable-static or --disable-static was given. +if test "${enable_static+set}" = set; then + enableval="$enable_static" + p=${PACKAGE-default} +case $enableval in +yes) enable_static=yes ;; +no) enable_static=no ;; +*) + enable_static=no + # Look at the argument we got. We use all the common list separators. + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," + for pkg in $enableval; do + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$ac_save_ifs" + ;; +esac +else + enable_static=yes +fi; +# Check whether --enable-fast-install or --disable-fast-install was given. +if test "${enable_fast_install+set}" = set; then + enableval="$enable_fast_install" + p=${PACKAGE-default} +case $enableval in +yes) enable_fast_install=yes ;; +no) enable_fast_install=no ;; +*) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," + for pkg in $enableval; do + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$ac_save_ifs" + ;; +esac +else + enable_fast_install=yes +fi; +# Make sure we can run config.sub. +$ac_config_sub sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 +echo "$as_me: error: cannot run $ac_config_sub" >&2;} + { (exit 1); exit 1; }; } + +echo "$as_me:$LINENO: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6 +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_build_alias=$build_alias +test -z "$ac_cv_build_alias" && + ac_cv_build_alias=`$ac_config_guess` +test -z "$ac_cv_build_alias" && + { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || + { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 +echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6 +build=$ac_cv_build +build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + + +echo "$as_me:$LINENO: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6 +if test "${ac_cv_host+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_host_alias=$host_alias +test -z "$ac_cv_host_alias" && + ac_cv_host_alias=$ac_cv_build_alias +ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || + { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 +echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6 +host=$ac_cv_host +host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + + +# Find the correct PATH separator. Usually this is `:', but +# DJGPP uses `;' like DOS. +if test "X${PATH_SEPARATOR+set}" != Xset; then + UNAME=${UNAME-`uname 2>/dev/null`} + case X$UNAME in + *-DOS) lt_cv_sys_path_separator=';' ;; + *) lt_cv_sys_path_separator=':' ;; + esac + PATH_SEPARATOR=$lt_cv_sys_path_separator +fi + + +# Check whether --with-gnu-ld or --without-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval="$with_gnu_ld" + test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi; +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + echo "$as_me:$LINENO: checking for ld used by GCC" >&5 +echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6 + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | [A-Za-z]:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 +else + echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 +fi +if test "${lt_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break + fi + fi + done + IFS="$ac_save_ifs" +else + lt_cv_path_LD="$LD" # Let the user override the test with a path. +fi +fi + +LD="$lt_cv_path_LD" +if test -n "$LD"; then + echo "$as_me:$LINENO: result: $LD" >&5 +echo "${ECHO_T}$LD" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 +if test "${lt_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU ld's only accept -v. +if $LD -v 2>&1 &5; then + lt_cv_prog_gnu_ld=yes +else + lt_cv_prog_gnu_ld=no +fi +fi +echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5 +echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 +with_gnu_ld=$lt_cv_prog_gnu_ld + + +echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 +echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 +if test "${lt_cv_ld_reload_flag+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_ld_reload_flag='-r' +fi +echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 +echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 +reload_flag=$lt_cv_ld_reload_flag +test -n "$reload_flag" && reload_flag=" $reload_flag" + +echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 +echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 +if test "${lt_cv_path_NM+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/${ac_tool_prefix}nm + if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then + lt_cv_path_NM="$tmp_nm -B" + break + elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then + lt_cv_path_NM="$tmp_nm -p" + break + else + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + fi + fi + done + IFS="$ac_save_ifs" + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi +fi + +NM="$lt_cv_path_NM" +echo "$as_me:$LINENO: result: $NM" >&5 +echo "${ECHO_T}$NM" >&6 + +echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 +echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 +if test "${lt_cv_path_SED+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_executable_p="test -f" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" + fi + done + done +done + + # Create a temporary directory, and hook for its removal unless debugging. +$debug || +{ + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} + +# Create a (secure) tmp directory for tmp files. +: ${TMPDIR=/tmp} +{ + tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=$TMPDIR/sed$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in $TMPDIR" >&2 + { (exit 1); exit 1; } +} + _max=0 + _count=0 + # Add /usr/xpg4/bin/sed as it is typically found on Solaris + # along with /bin/sed that truncates output. + for _sed in $_sed_list /usr/xpg4/bin/sed; do + test ! -f ${_sed} && break + cat /dev/null > "$tmp/sed.in" + _count=0 + echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" + # Check for GNU sed and select it if it is found. + if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then + lt_cv_path_SED=${_sed} + break + fi + while true; do + cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" + mv "$tmp/sed.tmp" "$tmp/sed.in" + cp "$tmp/sed.in" "$tmp/sed.nl" + echo >>"$tmp/sed.nl" + ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break + cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break + # 40000 chars as input seems more than enough + test $_count -gt 10 && break + _count=`expr $_count + 1` + if test $_count -gt $_max; then + _max=$_count + lt_cv_path_SED=$_sed + fi + done + done + rm -rf "$tmp" + +fi + +if test "X$SED" != "X"; then + lt_cv_path_SED=$SED +else + SED=$lt_cv_path_SED +fi +echo "$as_me:$LINENO: result: $SED" >&5 +echo "${ECHO_T}$SED" >&6 + +echo "$as_me:$LINENO: checking whether ln -s works" >&5 +echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +echo "${ECHO_T}no, using $LN_S" >&6 +fi + +echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 +echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 +if test "${lt_cv_deplibs_check_method+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given egrep regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix4* | aix5*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi4*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin* | mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' + lt_cv_file_magic_cmd='/usr/bin/file -L' + case "$host_os" in + rhapsody* | darwin1.[012]) + lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` + ;; + *) # Darwin 1.3 on + lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' + ;; + esac + ;; + +freebsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20*|hpux11*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + irix5* | nonstopux*) + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" + ;; + *) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" + ;; + esac + lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux-gnu*) + case $host_cpu in + alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64* | s390* | x86_64*) + lt_cv_deplibs_check_method=pass_all ;; + *) + # glibc up to 2.1.1 does not perform some relocations on ARM + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; + esac + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +openbsd*) + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' + else + lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' + fi + ;; + +osf3* | osf4* | osf5*) + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' + lt_cv_file_magic_test_file=/shlib/libc.so + lt_cv_deplibs_check_method=pass_all + ;; + +sco3.2v5*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=/lib/libc.so + ;; + +sysv5uw[78]* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; +esac + +fi +echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 +echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method + + + + + + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +echo "$as_me:$LINENO: checking command to parse $NM output" >&5 +echo $ECHO_N "checking command to parse $NM output... $ECHO_C" >&6 +if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Transform the above into a raw symbol and a C symbol. +symxfrm='\1 \2\3 \3' + +# Transform an extracted symbol line into a proper C declaration +lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32*) + symcode='[ABCDGISTW]' + ;; +hpux*) # Its linker distinguishes data from code symbols + lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris* | sysv5*) + symcode='[BDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# Handle CRLF in mingw tool chain +opt_cr= +case $host_os in +mingw*) + opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then + symcode='[ABCDGISTW]' +fi + +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do + + # Write the raw and C identifiers. +lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + rm -f conftest* + cat > conftest.$ac_ext <&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 + (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if egrep ' nm_test_var$' "$nlist" >/dev/null; then + if egrep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr void * +#else +# define lt_ptr char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr address; +} +lt_preloaded_symbols[] = +{ +EOF + sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$no_builtin_flag" + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -f conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" +if test -z "$lt_cv_sys_global_symbol_pipe"; then + global_symbol_to_cdecl= + global_symbol_to_c_name_address= +else + global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" + global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" +fi +if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; +then + echo "$as_me:$LINENO: result: failed" >&5 +echo "${ECHO_T}failed" >&6 +else + echo "$as_me:$LINENO: result: ok" >&5 +echo "${ECHO_T}ok" >&6 +fi + + +for ac_header in dlfcn.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## --------------------------------------------------------------- ## +## Report this to http://sf.net/tracker/?group_id=3714&atid=103714 ## +## --------------------------------------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 +echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in + /*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; + ?:/*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. + ;; + *) + ac_save_MAGIC_CMD="$MAGIC_CMD" + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="/usr/bin:$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + egrep "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$ac_save_ifs" + MAGIC_CMD="$ac_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + echo "$as_me:$LINENO: checking for file" >&5 +echo $ECHO_N "checking for file... $ECHO_C" >&6 +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in + /*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; + ?:/*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. + ;; + *) + ac_save_MAGIC_CMD="$MAGIC_CMD" + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="/usr/bin:$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + egrep "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$ac_save_ifs" + MAGIC_CMD="$ac_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + RANLIB=$ac_ct_RANLIB +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + STRIP=$ac_ct_STRIP +else + STRIP="$ac_cv_prog_STRIP" +fi + + +enable_dlopen=no +enable_win32_dll=no + +# Check whether --enable-libtool-lock or --disable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval="$enable_libtool_lock" + +fi; +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +*-*-irix6*) + # Find out which ABI we are using. + echo '#line 5704 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 +echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 +if test "${lt_cv_cc_needs_belf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + lt_cv_cc_needs_belf=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +lt_cv_cc_needs_belf=no +fi +rm -f 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 +echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 +echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; + + +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e s/^X//' +sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except M$VC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" +need_locks="$enable_libtool_lock" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +if test x"$host" != x"$build"; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +# Transform linux* to *-*-linux-gnu*, to support old configure scripts. +case $host_os in +linux-gnu*) ;; +linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` +esac + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" + ;; + *) + old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +# Allow CC to be a program name with arguments. +set dummy $CC +compiler="$2" + +echo "$as_me:$LINENO: checking for objdir" >&5 +echo $ECHO_N "checking for objdir... $ECHO_C" >&6 +rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + objdir=_libs +fi +rmdir .libs 2>/dev/null +echo "$as_me:$LINENO: result: $objdir" >&5 +echo "${ECHO_T}$objdir" >&6 + + + +# Check whether --with-pic or --without-pic was given. +if test "${with_pic+set}" = set; then + withval="$with_pic" + pic_mode="$withval" +else + pic_mode=default +fi; +test -z "$pic_mode" && pic_mode=default + +# We assume here that the value for lt_cv_prog_cc_pic will not be cached +# in isolation, and that seeing it set (from the cache) indicates that +# the associated values are set (in the cache) correctly too. +echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 +if test "${lt_cv_prog_cc_pic+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_cc_pic= + lt_cv_prog_cc_shlib= + lt_cv_prog_cc_wl= + lt_cv_prog_cc_static= + lt_cv_prog_cc_no_builtin= + lt_cv_prog_cc_can_build_shared=$can_build_shared + + if test "$GCC" = yes; then + lt_cv_prog_cc_wl='-Wl,' + lt_cv_prog_cc_static='-static' + + case $host_os in + aix*) + # Below there is a dirty hack to force normal static linking with -ldl + # The problem is because libdl dynamically linked with both libc and + # libC (AIX C++ library), which obviously doesn't included in libraries + # list by gcc. This cause undefined symbols with -static flags. + # This hack allows C programs to be linked with "-static -ldl", but + # not sure about C++ programs. + lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_cv_prog_cc_pic='-fno-common' + ;; + cygwin* | mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_cv_prog_cc_pic='-DDLL_EXPORT' + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_cv_prog_cc_pic=-Kconform_pic + fi + ;; + *) + lt_cv_prog_cc_pic='-fPIC' + ;; + esac + else + # PORTME Check for PIC flags for the system compiler. + case $host_os in + aix3* | aix4* | aix5*) + lt_cv_prog_cc_wl='-Wl,' + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_cv_prog_cc_static='-Bstatic' + else + lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + hpux9* | hpux10* | hpux11*) + # Is there a better lt_cv_prog_cc_static that works with the bundled CC? + lt_cv_prog_cc_wl='-Wl,' + lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" + lt_cv_prog_cc_pic='+Z' + ;; + + irix5* | irix6* | nonstopux*) + lt_cv_prog_cc_wl='-Wl,' + lt_cv_prog_cc_static='-non_shared' + # PIC (with -KPIC) is the default. + ;; + + cygwin* | mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_cv_prog_cc_pic='-DDLL_EXPORT' + ;; + + newsos6) + lt_cv_prog_cc_pic='-KPIC' + lt_cv_prog_cc_static='-Bstatic' + ;; + + osf3* | osf4* | osf5*) + # All OSF/1 code is PIC. + lt_cv_prog_cc_wl='-Wl,' + lt_cv_prog_cc_static='-non_shared' + ;; + + sco3.2v5*) + lt_cv_prog_cc_pic='-Kpic' + lt_cv_prog_cc_static='-dn' + lt_cv_prog_cc_shlib='-belf' + ;; + + solaris*) + lt_cv_prog_cc_pic='-KPIC' + lt_cv_prog_cc_static='-Bstatic' + lt_cv_prog_cc_wl='-Wl,' + ;; + + sunos4*) + lt_cv_prog_cc_pic='-PIC' + lt_cv_prog_cc_static='-Bstatic' + lt_cv_prog_cc_wl='-Qoption ld ' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + lt_cv_prog_cc_pic='-KPIC' + lt_cv_prog_cc_static='-Bstatic' + lt_cv_prog_cc_wl='-Wl,' + ;; + + uts4*) + lt_cv_prog_cc_pic='-pic' + lt_cv_prog_cc_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_cv_prog_cc_pic='-Kconform_pic' + lt_cv_prog_cc_static='-Bstatic' + fi + ;; + + *) + lt_cv_prog_cc_can_build_shared=no + ;; + esac + fi + +fi + +if test -z "$lt_cv_prog_cc_pic"; then + echo "$as_me:$LINENO: result: none" >&5 +echo "${ECHO_T}none" >&6 +else + echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic" >&5 +echo "${ECHO_T}$lt_cv_prog_cc_pic" >&6 + + # Check to make sure the pic_flag actually works. + echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_cv_prog_cc_pic works... $ECHO_C" >&6 + if test "${lt_cv_prog_cc_pic_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + case $host_os in + hpux9* | hpux10* | hpux11*) + # On HP-UX, both CC and GCC only warn that PIC is supported... then + # they create non-PIC objects. So, if there were any warnings, we + # assume that PIC is not supported. + if test -s conftest.err; then + lt_cv_prog_cc_pic_works=no + else + lt_cv_prog_cc_pic_works=yes + fi + ;; + *) + lt_cv_prog_cc_pic_works=yes + ;; + esac + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + lt_cv_prog_cc_pic_works=no + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + +fi + + + if test "X$lt_cv_prog_cc_pic_works" = Xno; then + lt_cv_prog_cc_pic= + lt_cv_prog_cc_can_build_shared=no + else + lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" + fi + + echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic_works" >&5 +echo "${ECHO_T}$lt_cv_prog_cc_pic_works" >&6 +fi + +# Check for any special shared library compilation flags. +if test -n "$lt_cv_prog_cc_shlib"; then + { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&5 +echo "$as_me: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&2;} + if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$lt_cv_prog_cc_shlib[ ]" >/dev/null; then : + else + { echo "$as_me:$LINENO: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5 +echo "$as_me: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;} + lt_cv_prog_cc_can_build_shared=no + fi +fi + +echo "$as_me:$LINENO: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_cv_prog_cc_static works... $ECHO_C" >&6 +if test "${lt_cv_prog_cc_static_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_cc_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + lt_cv_prog_cc_static_works=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi + + +# Belt *and* braces to stop my trousers falling down: +test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= +echo "$as_me:$LINENO: result: $lt_cv_prog_cc_static_works" >&5 +echo "${ECHO_T}$lt_cv_prog_cc_static_works" >&6 + +pic_flag="$lt_cv_prog_cc_pic" +special_shlib_compile_flags="$lt_cv_prog_cc_shlib" +wl="$lt_cv_prog_cc_wl" +link_static_flag="$lt_cv_prog_cc_static" +no_builtin_flag="$lt_cv_prog_cc_no_builtin" +can_build_shared="$lt_cv_prog_cc_can_build_shared" + + +# Check to see if options -o and -c are simultaneously supported by compiler +echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 +if test "${lt_cv_compiler_c_o+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +$rm -r conftest 2>/dev/null +mkdir conftest +cd conftest +echo "int some_variable = 0;" > conftest.$ac_ext +mkdir out +# According to Tom Tromey, Ian Lance Taylor reported there are C compilers +# that will create temporary files in the current directory regardless of +# the output directory. Thus, making CWD read-only will cause this test +# to fail, enabling locking or at least warning the user not to do parallel +# builds. +chmod -w . +save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" +compiler_c_o=no +if { (eval echo configure:6262: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s out/conftest.err; then + lt_cv_compiler_c_o=no + else + lt_cv_compiler_c_o=yes + fi +else + # Append any errors to the config.log. + cat out/conftest.err 1>&5 + lt_cv_compiler_c_o=no +fi +CFLAGS="$save_CFLAGS" +chmod u+w . +$rm conftest* out/* +rmdir out +cd .. +rmdir conftest +$rm -r conftest 2>/dev/null + +fi + +compiler_c_o=$lt_cv_compiler_c_o +echo "$as_me:$LINENO: result: $compiler_c_o" >&5 +echo "${ECHO_T}$compiler_c_o" >&6 + +if test x"$compiler_c_o" = x"yes"; then + # Check to see if we can write to a .lo + echo "$as_me:$LINENO: checking if $compiler supports -c -o file.lo" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.lo... $ECHO_C" >&6 + if test "${lt_cv_compiler_o_lo+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + lt_cv_compiler_o_lo=no + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -c -o conftest.lo" + save_objext="$ac_objext" + ac_objext=lo + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +int some_variable = 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + lt_cv_compiler_o_lo=no + else + lt_cv_compiler_o_lo=yes + fi + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_objext="$save_objext" + CFLAGS="$save_CFLAGS" + +fi + + compiler_o_lo=$lt_cv_compiler_o_lo + echo "$as_me:$LINENO: result: $compiler_o_lo" >&5 +echo "${ECHO_T}$compiler_o_lo" >&6 +else + compiler_o_lo=no +fi + +# Check to see if we can do hard links to lock some files if needed +hard_links="nottested" +if test "$compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6 + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +if test "$GCC" = yes; then + # Check to see if options -fno-rtti -fno-exceptions are supported by compiler + echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 + echo "int some_variable = 0;" > conftest.$ac_ext + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" + compiler_rtti_exceptions=no + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +int some_variable = 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + compiler_rtti_exceptions=no + else + compiler_rtti_exceptions=yes + fi + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + echo "$as_me:$LINENO: result: $compiler_rtti_exceptions" >&5 +echo "${ECHO_T}$compiler_rtti_exceptions" >&6 + + if test "$compiler_rtti_exceptions" = "yes"; then + no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' + else + no_builtin_flag=' -fno-builtin' + fi +fi + +# See if the linker supports building shared libraries. +echo "$as_me:$LINENO: checking whether the linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the linker ($LD) supports shared libraries... $ECHO_C" >&6 + +allow_undefined_flag= +no_undefined_flag= +need_lib_prefix=unknown +need_version=unknown +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +archive_cmds= +archive_expsym_cmds= +old_archive_from_new_cmds= +old_archive_from_expsyms_cmds= +export_dynamic_flag_spec= +whole_archive_flag_spec= +thread_safe_flag_spec= +hardcode_into_libs=no +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no +hardcode_shlibpath_var=unsupported +runpath_var= +link_all_deplibs=unknown +always_export_symbols=no +export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' +# include_expsyms should be a list of space-separated symbols to be *always* +# included in the symbol list +include_expsyms= +# exclude_expsyms can be an egrep regular expression of symbols to exclude +# it will be wrapped by ` (' and `)$', so one must not match beginning or +# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', +# as well as any symbol that contains `d'. +exclude_expsyms="_GLOBAL_OFFSET_TABLE_" +# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out +# platforms (ab)use it in PIC code, but their linkers get confused if +# the symbol is explicitly referenced. Since portable code cannot +# rely on this symbol name, it's probably fine to never include it in +# preloaded symbol tables. +extract_expsyms_cmds= + +case $host_os in +cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; +openbsd*) + with_gnu_ld=no + ;; +esac + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX, the GNU linker is very broken + # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. + ld_shlibs=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + ;; + + amigaos*) + archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can use + # them. + ld_shlibs=no + ;; + + beos*) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32*) + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + allow_undefined_flag=unsupported + always_export_symbols=yes + + extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ + sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ + test -f $output_objdir/impgen.exe || (cd $output_objdir && \ + if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ + else $CC -o impgen impgen.c ; fi)~ + $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' + + old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' + + # cygwin and mingw dlls have different entry points and sets of symbols + # to exclude. + # FIXME: what about values for MSVC? + dll_entry=__cygwin_dll_entry@12 + dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ + case $host_os in + mingw*) + # mingw values + dll_entry=_DllMainCRTStartup@12 + dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ + ;; + esac + + # mingw and cygwin differ, and it's simplest to just exclude the union + # of the two symbol sets. + dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 + + # recent cygwin and mingw systems supply a stub DllMain which the user + # can override, but on older systems we have to supply one (in ltdll.c) + if test "x$lt_cv_need_dllmain" = "xyes"; then + ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " + ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ + test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' + else + ltdll_obj= + ltdll_cmds= + fi + + # Extract the symbol export list from an `--export-all' def file, + # then regenerate the def file from the symbol export list, so that + # the compiled dll only exports the symbol export list. + # Be careful not to strip the DATA tag left be newer dlltools. + export_symbols_cmds="$ltdll_cmds"' + $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ + sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' + + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is. + # If DATA tags from a recent dlltool are present, honour them! + archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname-def; + else + echo EXPORTS > $output_objdir/$soname-def; + _lt_hint=1; + cat $export_symbols | while read symbol; do + set dummy \$symbol; + case \$# in + 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; + 4) echo " \$2 \$3 \$4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; + *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;; + esac; + _lt_hint=`expr 1 + \$_lt_hint`; + done; + fi~ + '"$ltdll_cmds"' + $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ + $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ + $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ + $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ + $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris* | sysv5*) + if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = yes; then + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + case $host_os in + cygwin* | mingw* | pw32*) + # dlltool doesn't understand --whole-archive et. al. + whole_archive_flag_spec= + ;; + *) + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + ;; + esac + fi +else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$link_static_flag"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + hardcode_direct=yes + archive_cmds='' + hardcode_libdir_separator=':' + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct=yes + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + esac + + shared_flag='-shared' + else + # not using gcc + if test "$host_cpu" = ia64; then + shared_flag='${wl}-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall can do strange things, so it is better to + # generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' + archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + else + hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='${wl}-berok' + # This is a bit strange, but is similar to how AIX traditionally builds + # it's shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + ;; + + darwin* | rhapsody*) + case "$host_os" in + rhapsody* | darwin1.[012]) + allow_undefined_flag='-undefined suppress' + ;; + *) # Darwin 1.3 on + allow_undefined_flag='-flat_namespace -undefined suppress' + ;; + esac + # FIXME: Relying on posixy $() will cause problems for + # cross-compilation, but unfortunately the echo tests do not + # yet detect zsh echo's removal of \ escapes. Also zsh mangles + # `"' quotes if we put them in here... so don't! + archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' + # We need to add '_' to the symbols in $export_symbols first + #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' + hardcode_direct=yes + hardcode_shlibpath_var=no + whole_archive_flag_spec='-all_load $convenience' + ;; + + freebsd1*) + ld_shlibs=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd*) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9* | hpux10* | hpux11*) + case $host_os in + hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; + *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; + esac + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_minus_L=yes # Not in the search PATH, but as the default + # location of the library. + export_dynamic_flag_spec='${wl}-E' + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + link_all_deplibs=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + openbsd*) + hardcode_direct=yes + hardcode_shlibpath_var=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case "$host_os" in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' + + #Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + + sco3.2v5*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + export_dynamic_flag_spec='${wl}-Bexport' + ;; + + solaris*) + # gcc --version < 3.0 without binutils cannot create self contained + # shared libraries reliably, requiring libgcc.a to resolve some of + # the object symbols generated in some cases. Libraries that use + # assert need libgcc.a to resolve __eprintf, for example. Linking + # a copy of libgcc.a into every shared library to guarantee resolving + # such symbols causes other problems: According to Tim Van Holder + # , C++ libraries end up with a separate + # (to the application) exception stack for one thing. + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + case `$CC --version 2>/dev/null` in + [12].*) + cat <&2 + +*** Warning: Releases of GCC earlier than version 3.0 cannot reliably +*** create self contained shared libraries on Solaris systems, without +*** introducing a dependency on libgcc.a. Therefore, libtool is disabling +*** -no-undefined support, which will at least allow you to build shared +*** libraries. However, you may find that when you link such libraries +*** into an application without using GCC, you have to manually add +*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to +*** upgrade to a newer version of GCC. Another option is to rebuild your +*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. + +EOF + no_undefined_flag= + ;; + esac + fi + # $CC -shared without GNU ld will not create a library from C++ + # object files and a static libstdc++, better avoid it by now + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv5*) + no_undefined_flag=' -z text' + # $CC -shared without GNU ld will not create a library from C++ + # object files and a static libstdc++, better avoid it by now + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + hardcode_libdir_flag_spec= + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4.2uw2*) + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=no + hardcode_shlibpath_var=no + hardcode_runpath_var=yes + runpath_var=LD_RUN_PATH + ;; + + sysv5uw7* | unixware7*) + no_undefined_flag='${wl}-z ${wl}text' + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac +fi +echo "$as_me:$LINENO: result: $ld_shlibs" >&5 +echo "${ECHO_T}$ld_shlibs" >&6 +test "$ld_shlibs" = no && can_build_shared=no + +# Check hardcoding attributes. +echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || \ + test -n "$runpath_var"; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$hardcode_shlibpath_var" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +echo "$as_me:$LINENO: result: $hardcode_action" >&5 +echo "${ECHO_T}$hardcode_action" >&6 + +striplib= +old_striplib= +echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 +echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +reload_cmds='$LD$reload_flag -o $output$reload_objs' +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +# PORTME Fill in your ld.so characteristics +echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 +library_names_spec= +libname_spec='lib$name' +soname_spec= +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}.so$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}.so$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can + # not hardcode correct soname into executable. Probably we can + # add versioning support to collect2, so additional links can + # be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}.so$major' + fi + shlibpath_var=LIBPATH + fi + hardcode_into_libs=yes + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}.so' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi4*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + export_dynamic_flag_spec=-rdynamic + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + need_version=no + need_lib_prefix=no + case $GCC,$host_os in + yes,cygwin*) + library_names_spec='$libname.dll.a' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' + postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog .libs/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + ;; + yes,mingw*) + library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` + ;; + yes,pw32*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll' + ;; + *) + library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + # FIXME: Relying on posixy $() will cause problems for + # cross-compilation, but unfortunately the echo tests do not + # yet detect zsh echo's removal of \ escapes. + library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' + soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd*) + objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + *) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + dynamic_linker="$host_os dld.sl" + version_type=sunos + need_lib_prefix=no + need_version=no + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' + soname_spec='${libname}${release}.sl$major' + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) version_type=irix ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}.so$major' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux-gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + + # Find out which ABI we are using (multilib Linux x86_64 hack). + libsuff= + case "$host_cpu" in + x86_64*|s390x*) + echo '#line 7464 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *64-bit*) + libsuff=64 + ;; + esac + fi + rm -rf conftest* + ;; + *) + ;; + esac + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}" + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' + soname_spec='${libname}${release}.so$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case "$host_os" in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + ;; + +os2*) + libname_spec='$name' + need_lib_prefix=no + library_names_spec='$libname.dll $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_version=no + soname_spec='${libname}${release}.so$major' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + hardcode_into_libs=yes + ;; + +sco3.2v5*) + version_type=osf + soname_spec='${libname}${release}.so$major' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + shlibpath_var=LD_LIBRARY_PATH + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + version_type=linux + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' + soname_spec='$libname.so.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +*) + dynamic_linker=no + ;; +esac +echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6 +test "$dynamic_linker" = no && can_build_shared=no + +# Report the final consequences. +echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 +echo "$as_me:$LINENO: result: $can_build_shared" >&5 +echo "${ECHO_T}$can_build_shared" >&6 + +echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case "$host_os" in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +echo "$as_me:$LINENO: result: $enable_shared" >&5 +echo "${ECHO_T}$enable_shared" >&6 + +echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +echo "$as_me:$LINENO: result: $enable_static" >&5 +echo "${ECHO_T}$enable_static" >&6 + +if test "$hardcode_action" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + cygwin* | mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + *) + echo "$as_me:$LINENO: checking for shl_load" >&5 +echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 +if test "${ac_cv_func_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define shl_load to an innocuous variant, in case declares shl_load. + For example, HP-UX 11i declares gettimeofday. */ +#define shl_load innocuous_shl_load + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char shl_load (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef shl_load + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char shl_load (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_shl_load) || defined (__stub___shl_load) +choke me +#else +char (*f) () = shl_load; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != shl_load; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_shl_load=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 +echo "${ECHO_T}$ac_cv_func_shl_load" >&6 +if test $ac_cv_func_shl_load = yes; then + lt_cv_dlopen="shl_load" +else + echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 +echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 +if test "${ac_cv_lib_dld_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char shl_load (); +int +main () +{ +shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dld_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_dld_shl_load=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 +if test $ac_cv_lib_dld_shl_load = yes; then + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" +else + echo "$as_me:$LINENO: checking for dlopen" >&5 +echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 +if test "${ac_cv_func_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define dlopen to an innocuous variant, in case declares dlopen. + For example, HP-UX 11i declares gettimeofday. */ +#define dlopen innocuous_dlopen + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dlopen (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef dlopen + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dlopen (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_dlopen) || defined (__stub___dlopen) +choke me +#else +char (*f) () = dlopen; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != dlopen; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_dlopen=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 +echo "${ECHO_T}$ac_cv_func_dlopen" >&6 +if test $ac_cv_func_dlopen = yes; then + lt_cv_dlopen="dlopen" +else + echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main () +{ +dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_dl_dlopen=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 +if test $ac_cv_lib_dl_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 +echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 +if test "${ac_cv_lib_svld_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main () +{ +dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_svld_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_svld_dlopen=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 +if test $ac_cv_lib_svld_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 +echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 +if test "${ac_cv_lib_dld_dld_link+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dld_link (); +int +main () +{ +dld_link (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dld_dld_link=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_dld_dld_link=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 +if test $ac_cv_lib_dld_dld_link = yes; then + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 +echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 +if test "${lt_cv_dlopen_self+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + + exit (status); +} +EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_unknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 +echo "${ECHO_T}$lt_cv_dlopen_self" >&6 + + if test "x$lt_cv_dlopen_self" = xyes; then + LDFLAGS="$LDFLAGS $link_static_flag" + echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 +echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 +if test "${lt_cv_dlopen_self_static+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + + exit (status); +} +EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 +echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + +if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 + if test "${lt_cv_archive_cmds_need_lc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + $rm conftest* + echo 'static int dummy;' > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_cv_prog_cc_wl + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi +fi + + echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5 +echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6 + ;; + esac +fi +need_lc=${lt_cv_archive_cmds_need_lc-yes} + +# The second clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + : +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + test -f Makefile && make "$ltmain" +fi + +if test -f "$ltmain"; then + trap "$rm \"${ofile}T\"; exit 1" 1 2 15 + $rm -f "${ofile}T" + + echo creating $ofile + + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS SED \ + AR AR_FLAGS CC LD LN_S NM SHELL \ + reload_flag reload_cmds wl \ + pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ + thread_safe_flag_spec whole_archive_flag_spec libname_spec \ + library_names_spec soname_spec \ + RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ + old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ + postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ + old_striplib striplib file_magic_cmd export_symbols_cmds \ + deplibs_check_method allow_undefined_flag no_undefined_flag \ + finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ + global_symbol_to_c_name_address \ + hardcode_libdir_flag_spec hardcode_libdir_separator \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do + + case $var in + reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ + extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + cat <<__EOF__ > "${ofile}T" +#! $SHELL + +# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996-2000 Free Software Foundation, Inc. +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A sed that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="${SED} -e s/^X//" + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi + +# ### BEGIN LIBTOOL CONFIG + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$need_lc + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# The default C compiler. +CC=$lt_CC + +# Is the compiler the GNU C compiler? +with_gcc=$GCC + +# The linker used to build libraries. +LD=$lt_LD + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_wl + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_pic_flag +pic_mode=$pic_mode + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_compiler_c_o + +# Can we write directly to a .lo ? +compiler_o_lo=$lt_compiler_o_lo + +# Must we lock files when doing compilation ? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_link_static_flag + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_no_builtin_flag + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# ### END LIBTOOL CONFIG + +__EOF__ + + case $host_os in + aix3*) + cat <<\EOF >> "${ofile}T" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + case $host_os in + cygwin* | mingw* | pw32* | os2*) + cat <<'EOF' >> "${ofile}T" + # This is a source program that is used to create dlls on Windows + # Don't remove nor modify the starting and closing comments +# /* ltdll.c starts here */ +# #define WIN32_LEAN_AND_MEAN +# #include +# #undef WIN32_LEAN_AND_MEAN +# #include +# +# #ifndef __CYGWIN__ +# # ifdef __CYGWIN32__ +# # define __CYGWIN__ __CYGWIN32__ +# # endif +# #endif +# +# #ifdef __cplusplus +# extern "C" { +# #endif +# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); +# #ifdef __cplusplus +# } +# #endif +# +# #ifdef __CYGWIN__ +# #include +# DECLARE_CYGWIN_DLL( DllMain ); +# #endif +# HINSTANCE __hDllInstance_base; +# +# BOOL APIENTRY +# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) +# { +# __hDllInstance_base = hInst; +# return TRUE; +# } +# /* ltdll.c ends here */ + # This is a source program that is used to create import libraries + # on Windows for dlls which lack them. Don't remove nor modify the + # starting and closing comments +# /* impgen.c starts here */ +# /* Copyright (C) 1999-2000 Free Software Foundation, Inc. +# +# This file is part of GNU libtool. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# */ +# +# #include /* for printf() */ +# #include /* for open(), lseek(), read() */ +# #include /* for O_RDONLY, O_BINARY */ +# #include /* for strdup() */ +# +# /* O_BINARY isn't required (or even defined sometimes) under Unix */ +# #ifndef O_BINARY +# #define O_BINARY 0 +# #endif +# +# static unsigned int +# pe_get16 (fd, offset) +# int fd; +# int offset; +# { +# unsigned char b[2]; +# lseek (fd, offset, SEEK_SET); +# read (fd, b, 2); +# return b[0] + (b[1]<<8); +# } +# +# static unsigned int +# pe_get32 (fd, offset) +# int fd; +# int offset; +# { +# unsigned char b[4]; +# lseek (fd, offset, SEEK_SET); +# read (fd, b, 4); +# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); +# } +# +# static unsigned int +# pe_as32 (ptr) +# void *ptr; +# { +# unsigned char *b = ptr; +# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); +# } +# +# int +# main (argc, argv) +# int argc; +# char *argv[]; +# { +# int dll; +# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; +# unsigned long export_rva, export_size, nsections, secptr, expptr; +# unsigned long name_rvas, nexp; +# unsigned char *expdata, *erva; +# char *filename, *dll_name; +# +# filename = argv[1]; +# +# dll = open(filename, O_RDONLY|O_BINARY); +# if (dll < 1) +# return 1; +# +# dll_name = filename; +# +# for (i=0; filename[i]; i++) +# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') +# dll_name = filename + i +1; +# +# pe_header_offset = pe_get32 (dll, 0x3c); +# opthdr_ofs = pe_header_offset + 4 + 20; +# num_entries = pe_get32 (dll, opthdr_ofs + 92); +# +# if (num_entries < 1) /* no exports */ +# return 1; +# +# export_rva = pe_get32 (dll, opthdr_ofs + 96); +# export_size = pe_get32 (dll, opthdr_ofs + 100); +# nsections = pe_get16 (dll, pe_header_offset + 4 +2); +# secptr = (pe_header_offset + 4 + 20 + +# pe_get16 (dll, pe_header_offset + 4 + 16)); +# +# expptr = 0; +# for (i = 0; i < nsections; i++) +# { +# char sname[8]; +# unsigned long secptr1 = secptr + 40 * i; +# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); +# unsigned long vsize = pe_get32 (dll, secptr1 + 16); +# unsigned long fptr = pe_get32 (dll, secptr1 + 20); +# lseek(dll, secptr1, SEEK_SET); +# read(dll, sname, 8); +# if (vaddr <= export_rva && vaddr+vsize > export_rva) +# { +# expptr = fptr + (export_rva - vaddr); +# if (export_rva + export_size > vaddr + vsize) +# export_size = vsize - (export_rva - vaddr); +# break; +# } +# } +# +# expdata = (unsigned char*)malloc(export_size); +# lseek (dll, expptr, SEEK_SET); +# read (dll, expdata, export_size); +# erva = expdata - export_rva; +# +# nexp = pe_as32 (expdata+24); +# name_rvas = pe_as32 (expdata+32); +# +# printf ("EXPORTS\n"); +# for (i = 0; i> "${ofile}T" || (rm -f "${ofile}T"; exit 1) + + mv -f "${ofile}T" "$ofile" || \ + (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") + chmod +x "$ofile" +fi + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + +# Prevent multiple expansion + + + + + succeeded=no + + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG + +if test -n "$PKG_CONFIG"; then + echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 +echo "${ECHO_T}$PKG_CONFIG" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + echo "$as_me:$LINENO: checking for libgnomeui-2.0 >= 2.2.0" >&5 +echo $ECHO_N "checking for libgnomeui-2.0 >= 2.2.0... $ECHO_C" >&6 + + if $PKG_CONFIG --exists "libgnomeui-2.0 >= 2.2.0" ; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + succeeded=yes + + echo "$as_me:$LINENO: checking GNOME_CFLAGS" >&5 +echo $ECHO_N "checking GNOME_CFLAGS... $ECHO_C" >&6 + GNOME_CFLAGS=`$PKG_CONFIG --cflags "libgnomeui-2.0 >= 2.2.0"` + echo "$as_me:$LINENO: result: $GNOME_CFLAGS" >&5 +echo "${ECHO_T}$GNOME_CFLAGS" >&6 + + echo "$as_me:$LINENO: checking GNOME_LIBS" >&5 +echo $ECHO_N "checking GNOME_LIBS... $ECHO_C" >&6 + GNOME_LIBS=`$PKG_CONFIG --libs "libgnomeui-2.0 >= 2.2.0"` + echo "$as_me:$LINENO: result: $GNOME_LIBS" >&5 +echo "${ECHO_T}$GNOME_LIBS" >&6 + else + GNOME_CFLAGS="" + GNOME_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + GNOME_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libgnomeui-2.0 >= 2.2.0"` + echo $GNOME_PKG_ERRORS + fi + + + + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + LIBS="$LIBS $GNOME_LIBS" + CFLAGS="$CFLAGS $GNOME_CFLAGS" + else + { { echo "$as_me:$LINENO: error: Library requirements (libgnomeui-2.0 >= 2.2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5 +echo "$as_me: error: Library requirements (libgnomeui-2.0 >= 2.2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;} + { (exit 1); exit 1; }; } + fi + + + + succeeded=no + + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG + +if test -n "$PKG_CONFIG"; then + echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 +echo "${ECHO_T}$PKG_CONFIG" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + echo "$as_me:$LINENO: checking for vte" >&5 +echo $ECHO_N "checking for vte... $ECHO_C" >&6 + + if $PKG_CONFIG --exists "vte" ; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + succeeded=yes + + echo "$as_me:$LINENO: checking TERMINAL_WIDGET_CFLAGS" >&5 +echo $ECHO_N "checking TERMINAL_WIDGET_CFLAGS... $ECHO_C" >&6 + TERMINAL_WIDGET_CFLAGS=`$PKG_CONFIG --cflags "vte"` + echo "$as_me:$LINENO: result: $TERMINAL_WIDGET_CFLAGS" >&5 +echo "${ECHO_T}$TERMINAL_WIDGET_CFLAGS" >&6 + + echo "$as_me:$LINENO: checking TERMINAL_WIDGET_LIBS" >&5 +echo $ECHO_N "checking TERMINAL_WIDGET_LIBS... $ECHO_C" >&6 + TERMINAL_WIDGET_LIBS=`$PKG_CONFIG --libs "vte"` + echo "$as_me:$LINENO: result: $TERMINAL_WIDGET_LIBS" >&5 +echo "${ECHO_T}$TERMINAL_WIDGET_LIBS" >&6 + else + TERMINAL_WIDGET_CFLAGS="" + TERMINAL_WIDGET_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + TERMINAL_WIDGET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "vte"` + echo $TERMINAL_WIDGET_PKG_ERRORS + fi + + + + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + : + else + { { echo "$as_me:$LINENO: error: Library requirements (vte) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5 +echo "$as_me: error: Library requirements (vte) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;} + { (exit 1); exit 1; }; } + fi + +CFLAGS="$TERMINAL_WIDGET_CFLAGS $CFLAGS" + +if test "${ac_cv_header_curl_curl_h+set}" = set; then + echo "$as_me:$LINENO: checking for curl/curl.h" >&5 +echo $ECHO_N "checking for curl/curl.h... $ECHO_C" >&6 +if test "${ac_cv_header_curl_curl_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_curl_curl_h" >&5 +echo "${ECHO_T}$ac_cv_header_curl_curl_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking curl/curl.h usability" >&5 +echo $ECHO_N "checking curl/curl.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking curl/curl.h presence" >&5 +echo $ECHO_N "checking curl/curl.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: curl/curl.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: curl/curl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: curl/curl.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: curl/curl.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: curl/curl.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: curl/curl.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: curl/curl.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: curl/curl.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: curl/curl.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: curl/curl.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: curl/curl.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: curl/curl.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: curl/curl.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: curl/curl.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: curl/curl.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: curl/curl.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## --------------------------------------------------------------- ## +## Report this to http://sf.net/tracker/?group_id=3714&atid=103714 ## +## --------------------------------------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for curl/curl.h" >&5 +echo $ECHO_N "checking for curl/curl.h... $ECHO_C" >&6 +if test "${ac_cv_header_curl_curl_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_curl_curl_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_curl_curl_h" >&5 +echo "${ECHO_T}$ac_cv_header_curl_curl_h" >&6 + +fi +if test $ac_cv_header_curl_curl_h = yes; then + : +else + { { echo "$as_me:$LINENO: error: libcurl headers are missing" >&5 +echo "$as_me: error: libcurl headers are missing" >&2;} + { (exit 1); exit 1; }; } +fi + + +echo "$as_me:$LINENO: checking for curl_global_init in -lcurl" >&5 +echo $ECHO_N "checking for curl_global_init in -lcurl... $ECHO_C" >&6 +if test "${ac_cv_lib_curl_curl_global_init+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcurl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char curl_global_init (); +int +main () +{ +curl_global_init (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_curl_curl_global_init=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_curl_curl_global_init=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_curl_curl_global_init" >&5 +echo "${ECHO_T}$ac_cv_lib_curl_curl_global_init" >&6 +if test $ac_cv_lib_curl_curl_global_init = yes; then + LIBS="$LIBS `curl-config --libs`" +else + { { echo "$as_me:$LINENO: error: curl libs are missing" >&5 +echo "$as_me: error: curl libs are missing" >&2;} + { (exit 1); exit 1; }; } +fi + + +GETTEXT_PACKAGE=grip-2.2 + + +cat >>confdefs.h <<_ACEOF +#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" +_ACEOF + +ALL_LINGUAS="fr de zh_CN zh_HK zh_TW ja pt_BR ru es ca it be fi bg nl hu pl_PL" + + +for ac_header in locale.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## --------------------------------------------------------------- ## +## Report this to http://sf.net/tracker/?group_id=3714&atid=103714 ## +## --------------------------------------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + if test $ac_cv_header_locale_h = yes; then + echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5 +echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6 +if test "${am_cv_val_LC_MESSAGES+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +return LC_MESSAGES + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + am_cv_val_LC_MESSAGES=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +am_cv_val_LC_MESSAGES=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5 +echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6 + if test $am_cv_val_LC_MESSAGES = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LC_MESSAGES 1 +_ACEOF + + fi + fi + USE_NLS=yes + + + gt_cv_have_gettext=no + + CATOBJEXT=NONE + XGETTEXT=: + INTLLIBS= + + if test "${ac_cv_header_libintl_h+set}" = set; then + echo "$as_me:$LINENO: checking for libintl.h" >&5 +echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6 +if test "${ac_cv_header_libintl_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 +echo "${ECHO_T}$ac_cv_header_libintl_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking libintl.h usability" >&5 +echo $ECHO_N "checking libintl.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking libintl.h presence" >&5 +echo $ECHO_N "checking libintl.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: libintl.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: libintl.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: libintl.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: libintl.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: libintl.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: libintl.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: libintl.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## --------------------------------------------------------------- ## +## Report this to http://sf.net/tracker/?group_id=3714&atid=103714 ## +## --------------------------------------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for libintl.h" >&5 +echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6 +if test "${ac_cv_header_libintl_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_libintl_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 +echo "${ECHO_T}$ac_cv_header_libintl_h" >&6 + +fi +if test $ac_cv_header_libintl_h = yes; then + gt_cv_func_dgettext_libintl="no" + libintl_extra_libs="" + + # + # First check in libc + # + echo "$as_me:$LINENO: checking for dgettext in libc" >&5 +echo $ECHO_N "checking for dgettext in libc... $ECHO_C" >&6 +if test "${gt_cv_func_dgettext_libc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include + +int +main () +{ +return (int) dgettext ("","") + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_func_dgettext_libc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_func_dgettext_libc=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5 +echo "${ECHO_T}$gt_cv_func_dgettext_libc" >&6 + + if test "$gt_cv_func_dgettext_libc" = "yes" ; then + +for ac_func in bind_textdomain_codeset +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* 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_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + fi + + # + # If we don't have everything we want, check in libintl + # + if test "$gt_cv_func_dgettext_libc" != "yes" \ + || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then + + echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5 +echo $ECHO_N "checking for bindtextdomain in -lintl... $ECHO_C" >&6 +if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char bindtextdomain (); +int +main () +{ +bindtextdomain (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_intl_bindtextdomain=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_intl_bindtextdomain=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5 +echo "${ECHO_T}$ac_cv_lib_intl_bindtextdomain" >&6 +if test $ac_cv_lib_intl_bindtextdomain = yes; then + echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5 +echo $ECHO_N "checking for dgettext in -lintl... $ECHO_C" >&6 +if test "${ac_cv_lib_intl_dgettext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dgettext (); +int +main () +{ +dgettext (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_intl_dgettext=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_intl_dgettext=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5 +echo "${ECHO_T}$ac_cv_lib_intl_dgettext" >&6 +if test $ac_cv_lib_intl_dgettext = yes; then + gt_cv_func_dgettext_libintl=yes +fi + +fi + + + if test "$gt_cv_func_dgettext_libintl" != "yes" ; then + echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5 +echo $ECHO_N "checking if -liconv is needed to use gettext... $ECHO_C" >&6 + echo "$as_me:$LINENO: result: " >&5 +echo "${ECHO_T}" >&6 + echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5 +echo $ECHO_N "checking for dcgettext in -lintl... $ECHO_C" >&6 +if test "${ac_cv_lib_intl_dcgettext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl -liconv $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dcgettext (); +int +main () +{ +dcgettext (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_intl_dcgettext=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_intl_dcgettext=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dcgettext" >&5 +echo "${ECHO_T}$ac_cv_lib_intl_dcgettext" >&6 +if test $ac_cv_lib_intl_dcgettext = yes; then + gt_cv_func_dgettext_libintl=yes + libintl_extra_libs=-liconv +else + : +fi + + fi + + # + # If we found libintl, then check in it for bind_textdomain_codeset(); + # we'll prefer libc if neither have bind_textdomain_codeset(), + # and both have dgettext + # + if test "$gt_cv_func_dgettext_libintl" = "yes" ; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS -lintl $libintl_extra_libs" + unset ac_cv_func_bind_textdomain_codeset + +for ac_func in bind_textdomain_codeset +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* 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_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + LIBS="$glib_save_LIBS" + + if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then + gt_cv_func_dgettext_libc=no + else + if test "$gt_cv_func_dgettext_libc" = "yes"; then + gt_cv_func_dgettext_libintl=no + fi + fi + fi + fi + + if test "$gt_cv_func_dgettext_libc" = "yes" \ + || test "$gt_cv_func_dgettext_libintl" = "yes"; then + gt_cv_have_gettext=yes + fi + + if test "$gt_cv_func_dgettext_libintl" = "yes"; then + INTLLIBS="-lintl $libintl_extra_libs" + fi + + if test "$gt_cv_have_gettext" = "yes"; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GETTEXT 1 +_ACEOF + + # Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_MSGFMT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case "$MSGFMT" in + /*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then + ac_cv_path_MSGFMT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != "no"; then + echo "$as_me:$LINENO: result: $MSGFMT" >&5 +echo "${ECHO_T}$MSGFMT" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + if test "$MSGFMT" != "no"; then + +for ac_func in dcgettext +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* 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_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_GMSGFMT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT + +if test -n "$GMSGFMT"; then + echo "$as_me:$LINENO: result: $GMSGFMT" >&5 +echo "${ECHO_T}$GMSGFMT" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + # Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_XGETTEXT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case "$XGETTEXT" in + /*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + echo "$as_me:$LINENO: result: $XGETTEXT" >&5 +echo "${ECHO_T}$XGETTEXT" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + CATOBJEXT=.gmo + DATADIRNAME=share +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +CATOBJEXT=.mo + DATADIRNAME=lib +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + INSTOBJEXT=.mo + else + gt_cv_have_gettext=no + fi + fi + +fi + + + + if test "$gt_cv_have_gettext" = "yes" ; then + +cat >>confdefs.h <<\_ACEOF +#define ENABLE_NLS 1 +_ACEOF + + fi + + if test "$XGETTEXT" != ":"; then + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 +echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6 + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + + ac_config_commands="$ac_config_commands default-1" + + + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + + + + + + + + + + + + + if test "$gt_cv_have_gettext" = "yes"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + echo "$as_me:$LINENO: checking for catalogs to be installed" >&5 +echo $ECHO_N "checking for catalogs to be installed... $ECHO_C" >&6 + NEW_LINGUAS= + for lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in + *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; + esac + done + LINGUAS=$NEW_LINGUAS + echo "$as_me:$LINENO: result: $LINGUAS" >&5 +echo "${ECHO_T}$LINGUAS" >&6 + fi + + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + + + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + + +if test "$enable_cdpar" = "yes"; then + LIBS="$LIBS -lm" + + + +for ac_header in cdda_interface.h cdda_paranoia.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## --------------------------------------------------------------- ## +## Report this to http://sf.net/tracker/?group_id=3714&atid=103714 ## +## --------------------------------------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +for ac_header in cdda/cdda_interface.h cdda/cdda_paranoia.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## --------------------------------------------------------------- ## +## Report this to http://sf.net/tracker/?group_id=3714&atid=103714 ## +## --------------------------------------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + echo "$as_me:$LINENO: checking for main in -lcdda_interface" >&5 +echo $ECHO_N "checking for main in -lcdda_interface... $ECHO_C" >&6 +if test "${ac_cv_lib_cdda_interface_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcdda_interface $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + +int +main () +{ +main (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_cdda_interface_main=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_cdda_interface_main=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_cdda_interface_main" >&5 +echo "${ECHO_T}$ac_cv_lib_cdda_interface_main" >&6 +if test $ac_cv_lib_cdda_interface_main = yes; then + if test "$enable_shared_cdpar" = "yes"; then + echo "using shared cdparanoia libraries" + CDPAR_LIBS="-lcdda_interface -lcdda_paranoia" + else + echo "using static cdparanoia libraries" + CDPAR_LIBS="$prefix/lib/libcdda_interface.a $prefix/lib/libcdda_paranoia.a" + fi +fi + +fi + + +id3_libs_bak=$LIBS +if test "$enable_id3" = "yes"; then + echo "$as_me:$LINENO: checking for library containing ID3Tag_Link" >&5 +echo $ECHO_N "checking for library containing ID3Tag_Link... $ECHO_C" >&6 +if test "${ac_cv_search_ID3Tag_Link+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +ac_cv_search_ID3Tag_Link=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char ID3Tag_Link (); +int +main () +{ +ID3Tag_Link (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_ID3Tag_Link="none required" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_ID3Tag_Link" = no; then + for ac_lib in "id3 -lz -lstdc++"; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char ID3Tag_Link (); +int +main () +{ +ID3Tag_Link (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_ID3Tag_Link="-l$ac_lib" +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done +fi +LIBS=$ac_func_search_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_search_ID3Tag_Link" >&5 +echo "${ECHO_T}$ac_cv_search_ID3Tag_Link" >&6 +if test "$ac_cv_search_ID3Tag_Link" != no; then + test "$ac_cv_search_ID3Tag_Link" = "none required" || LIBS="$ac_cv_search_ID3Tag_Link $LIBS" + id3lib=yes + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ID3V2 +_ACEOF + + if test "$enable_shared_id3" = "yes"; then + echo "using shared id3lib" + ID3_LIBS="-lid3 -lz -lstdc++" + else + echo "using static id3lib" + ID3_LIBS="$prefix/lib/libid3.a -lz -lstdc++" + fi +else + id3lib=no + { echo "$as_me:$LINENO: WARNING: id3lib not found - disabling id3v2 support" >&5 +echo "$as_me: WARNING: id3lib not found - disabling id3v2 support" >&2;} +fi + +fi + +ID3LIB_MAJOR=3 +ID3LIB_MINOR=7 +ID3LIB_PATCH=13 + +if test $id3lib = yes; then + echo "$as_me:$LINENO: checking for id3lib version" >&5 +echo $ECHO_N "checking for id3lib version... $ECHO_C" >&6 + if test "$cross_compiling" = yes; then + echo $ac_n "cross compiling; assuming ${ID3LIB_MAJOR}.${ID3LIB_MINOR}.${ID3LIB_PATCH} $ac_c" +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include +int +main () +{ + FILE *output; + output=fopen("conftest.id3","w"); + fprintf(output,"ID3LIB_MAJOR=%d\nID3LIB_MINOR=%d\nID3LIB_PATCH=%d\n", + ID3LIB_MAJOR_VERSION,ID3LIB_MINOR_VERSION,ID3LIB_PATCH_VERSION); + fclose(output); + exit(0); +} + +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + . conftest.id3 + echo "${ID3LIB_MAJOR}.${ID3LIB_MINOR}.${ID3LIB_PATCH}" +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +{ echo "$as_me:$LINENO: WARNING: could not determine id3lib version" >&5 +echo "$as_me: WARNING: could not determine id3lib version" >&2;} +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + +cat >>confdefs.h <<_ACEOF +#define ID3LIB_MAJOR $ID3LIB_MAJOR +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define ID3LIB_MINOR $ID3LIB_MINOR +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define ID3LIB_PATCH $ID3LIB_PATCH +_ACEOF + +fi + +LIBS=$id3_libs_bak + + + + + + ac_config_files="$ac_config_files Makefile grip.spec src/Makefile po/Makefile.in pixmaps/Makefile doc/Makefile doc/C/Makefile contrib/Makefile" +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +{ + (set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} | + sed ' + t clear + : clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + : end' >>confcache +if diff $cache_file confcache >/dev/null 2>&1; then :; else + if test -w $cache_file; then + test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" + cat confcache >$cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/; +s/:*\${srcdir}:*/:/; +s/:*@srcdir@:*/:/; +s/^\([^=]*=[ ]*\):*/\1/; +s/:*$//; +s/^[^=]*=[ ]*$//; +}' +fi + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_i=`echo "$ac_i" | + sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + # 2. Add them. + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi +DUALCASE=1; export DUALCASE # for MKS sh + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; 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 + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 +echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 +echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# 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'" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + +exec 6>&1 + +# Open the log real soon, to keep \$[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. Logging --version etc. is OK. +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX +} >&5 +cat >&5 <<_CSEOF + +This file was extended by grip $as_me 3.3.1, which was +generated by GNU Autoconf 2.59. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +_CSEOF +echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 +echo >&5 +_ACEOF + +# Files that config.status was made for. +if test -n "$ac_config_files"; then + echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_headers"; then + echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_links"; then + echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_commands"; then + echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS +fi + +cat >>$CONFIG_STATUS <<\_ACEOF + +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +grip config.status 3.3.1 +configured by $0, generated by GNU Autoconf 2.59, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2003 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." +srcdir=$srcdir +INSTALL="$INSTALL" +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "x$1" : 'x\([^=]*\)='` + ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` + ac_shift=: + ;; + -*) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + *) # This is not an option, so the user has probably given explicit + # arguments. + ac_option=$1 + ac_need_defaults=false;; + esac + + case $ac_option in + # Handling of the options. +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --vers* | -V ) + echo "$ac_cs_version"; exit 0 ;; + --he | --h) + # Conflict between --help and --header + { { echo "$as_me:$LINENO: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" ;; + + esac + shift +done + +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 +if \$ac_cs_recheck; then + echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +# +# INIT-COMMANDS section. +# + +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +_ACEOF + + + +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_config_target in $ac_config_targets +do + case "$ac_config_target" in + # Handling of arguments. + "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "grip.spec" ) CONFIG_FILES="$CONFIG_FILES grip.spec" ;; + "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "pixmaps/Makefile" ) CONFIG_FILES="$CONFIG_FILES pixmaps/Makefile" ;; + "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "doc/C/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/C/Makefile" ;; + "contrib/Makefile" ) CONFIG_FILES="$CONFIG_FILES contrib/Makefile" ;; + "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; + "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason to put it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Create a temporary directory, and hook for its removal unless debugging. +$debug || +{ + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} + +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./confstat$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF + +# +# CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "\$CONFIG_FILES"; then + # Protect against being on the right side of a sed subst in config.status. + sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; + s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF +s,@SHELL@,$SHELL,;t t +s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t +s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t +s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t +s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t +s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t +s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t +s,@exec_prefix@,$exec_prefix,;t t +s,@prefix@,$prefix,;t t +s,@program_transform_name@,$program_transform_name,;t t +s,@bindir@,$bindir,;t t +s,@sbindir@,$sbindir,;t t +s,@libexecdir@,$libexecdir,;t t +s,@datadir@,$datadir,;t t +s,@sysconfdir@,$sysconfdir,;t t +s,@sharedstatedir@,$sharedstatedir,;t t +s,@localstatedir@,$localstatedir,;t t +s,@libdir@,$libdir,;t t +s,@includedir@,$includedir,;t t +s,@oldincludedir@,$oldincludedir,;t t +s,@infodir@,$infodir,;t t +s,@mandir@,$mandir,;t t +s,@build_alias@,$build_alias,;t t +s,@host_alias@,$host_alias,;t t +s,@target_alias@,$target_alias,;t t +s,@DEFS@,$DEFS,;t t +s,@ECHO_C@,$ECHO_C,;t t +s,@ECHO_N@,$ECHO_N,;t t +s,@ECHO_T@,$ECHO_T,;t t +s,@LIBS@,$LIBS,;t t +s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t +s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t +s,@INSTALL_DATA@,$INSTALL_DATA,;t t +s,@PACKAGE@,$PACKAGE,;t t +s,@VERSION@,$VERSION,;t t +s,@ACLOCAL@,$ACLOCAL,;t t +s,@AUTOCONF@,$AUTOCONF,;t t +s,@AUTOMAKE@,$AUTOMAKE,;t t +s,@AUTOHEADER@,$AUTOHEADER,;t t +s,@MAKEINFO@,$MAKEINFO,;t t +s,@AMTAR@,$AMTAR,;t t +s,@install_sh@,$install_sh,;t t +s,@STRIP@,$STRIP,;t t +s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t +s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t +s,@AWK@,$AWK,;t t +s,@SET_MAKE@,$SET_MAKE,;t t +s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t +s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t +s,@MAINT@,$MAINT,;t t +s,@CC@,$CC,;t t +s,@CFLAGS@,$CFLAGS,;t t +s,@LDFLAGS@,$LDFLAGS,;t t +s,@CPPFLAGS@,$CPPFLAGS,;t t +s,@ac_ct_CC@,$ac_ct_CC,;t t +s,@EXEEXT@,$EXEEXT,;t t +s,@OBJEXT@,$OBJEXT,;t t +s,@DEPDIR@,$DEPDIR,;t t +s,@am__include@,$am__include,;t t +s,@am__quote@,$am__quote,;t t +s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t +s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t +s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t +s,@CCDEPMODE@,$CCDEPMODE,;t t +s,@CXX@,$CXX,;t t +s,@CXXFLAGS@,$CXXFLAGS,;t t +s,@ac_ct_CXX@,$ac_ct_CXX,;t t +s,@CXXDEPMODE@,$CXXDEPMODE,;t t +s,@CPP@,$CPP,;t t +s,@EGREP@,$EGREP,;t t +s,@build@,$build,;t t +s,@build_cpu@,$build_cpu,;t t +s,@build_vendor@,$build_vendor,;t t +s,@build_os@,$build_os,;t t +s,@host@,$host,;t t +s,@host_cpu@,$host_cpu,;t t +s,@host_vendor@,$host_vendor,;t t +s,@host_os@,$host_os,;t t +s,@LN_S@,$LN_S,;t t +s,@ECHO@,$ECHO,;t t +s,@RANLIB@,$RANLIB,;t t +s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t +s,@LIBTOOL@,$LIBTOOL,;t t +s,@PKG_CONFIG@,$PKG_CONFIG,;t t +s,@GNOME_CFLAGS@,$GNOME_CFLAGS,;t t +s,@GNOME_LIBS@,$GNOME_LIBS,;t t +s,@TERMINAL_WIDGET_CFLAGS@,$TERMINAL_WIDGET_CFLAGS,;t t +s,@TERMINAL_WIDGET_LIBS@,$TERMINAL_WIDGET_LIBS,;t t +s,@GETTEXT_PACKAGE@,$GETTEXT_PACKAGE,;t t +s,@USE_NLS@,$USE_NLS,;t t +s,@MSGFMT@,$MSGFMT,;t t +s,@GMSGFMT@,$GMSGFMT,;t t +s,@XGETTEXT@,$XGETTEXT,;t t +s,@CATALOGS@,$CATALOGS,;t t +s,@CATOBJEXT@,$CATOBJEXT,;t t +s,@DATADIRNAME@,$DATADIRNAME,;t t +s,@GMOFILES@,$GMOFILES,;t t +s,@INSTOBJEXT@,$INSTOBJEXT,;t t +s,@INTLLIBS@,$INTLLIBS,;t t +s,@PO_IN_DATADIR_TRUE@,$PO_IN_DATADIR_TRUE,;t t +s,@PO_IN_DATADIR_FALSE@,$PO_IN_DATADIR_FALSE,;t t +s,@POFILES@,$POFILES,;t t +s,@POSUB@,$POSUB,;t t +s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t +s,@CDPAR_LIBS@,$CDPAR_LIBS,;t t +s,@ID3_LIBS@,$ID3_LIBS,;t t +s,@LIBOBJS@,$LIBOBJS,;t t +s,@LTLIBOBJS@,$LTLIBOBJS,;t t +CEOF + +_ACEOF + + cat >>$CONFIG_STATUS <<\_ACEOF + # Split the substitutions into bite-sized pieces for seds with + # small command number limits, like on Digital OSF/1 and HP-UX. + ac_max_sed_lines=48 + ac_sed_frag=1 # Number of current file. + ac_beg=1 # First line for current file. + ac_end=$ac_max_sed_lines # Line after last line for current file. + ac_more_lines=: + ac_sed_cmds= + while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + else + sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + fi + if test ! -s $tmp/subs.frag; then + ac_more_lines=false + else + # The purpose of the label and of the branching condition is to + # speed up the sed processing (if there are no `@' at all, there + # is no need to browse any of the substitutions). + # These are the two extra sed commands mentioned above. + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_lines` + fi + done + if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat + fi +fi # test -n "$CONFIG_FILES" + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac + + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_builddir$INSTALL ;; + esac + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + if test x"$ac_file" = x-; then + configure_input= + else + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | + sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo "$f";; + *) # Relative + if test -f "$f"; then + # Build tree + echo "$f" + elif test -f "$srcdir/$f"; then + # Source tree + echo "$srcdir/$f" + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s,@configure_input@,$configure_input,;t t +s,@srcdir@,$ac_srcdir,;t t +s,@abs_srcdir@,$ac_abs_srcdir,;t t +s,@top_srcdir@,$ac_top_srcdir,;t t +s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t +s,@builddir@,$ac_builddir,;t t +s,@abs_builddir@,$ac_abs_builddir,;t t +s,@top_builddir@,$ac_top_builddir,;t t +s,@abs_top_builddir@,$ac_abs_top_builddir,;t t +s,@INSTALL@,$ac_INSTALL,;t t +" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then + mv $tmp/out $ac_file + else + cat $tmp/out + rm -f $tmp/out + fi + +done +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + +# +# CONFIG_HEADER section. +# + +# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where +# NAME is the cpp macro being defined and VALUE is the value it is being given. +# +# ac_d sets the value in "#define NAME VALUE" lines. +ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' +ac_dB='[ ].*$,\1#\2' +ac_dC=' ' +ac_dD=',;t' +# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uB='$,\1#\2define\3' +ac_uC=' ' +ac_uD=',;t' + +for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + # Do quote $f, to prevent DOS paths from being IFS'd. + echo "$f";; + *) # Relative + if test -f "$f"; then + # Build tree + echo "$f" + elif test -f "$srcdir/$f"; then + # Source tree + echo "$srcdir/$f" + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } + # Remove the trailing spaces. + sed 's/[ ]*$//' $ac_file_inputs >$tmp/in + +_ACEOF + +# Transform confdefs.h into two sed scripts, `conftest.defines' and +# `conftest.undefs', that substitutes the proper values into +# config.h.in to produce config.h. The first handles `#define' +# templates, and the second `#undef' templates. +# And first: Protect against being on the right side of a sed subst in +# config.status. Protect against being in an unquoted here document +# in config.status. +rm -f conftest.defines conftest.undefs +# Using a here document instead of a string reduces the quoting nightmare. +# Putting comments in sed scripts is not portable. +# +# `end' is used to avoid that the second main sed command (meant for +# 0-ary CPP macros) applies to n-ary macro definitions. +# See the Autoconf documentation for `clear'. +cat >confdef2sed.sed <<\_ACEOF +s/[\\&,]/\\&/g +s,[\\$`],\\&,g +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp +t end +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp +: end +_ACEOF +# If some macros were called several times there might be several times +# the same #defines, which is useless. Nevertheless, we may not want to +# sort them, since we want the *last* AC-DEFINE to be honored. +uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines +sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs +rm -f confdef2sed.sed + +# This sed command replaces #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +cat >>conftest.undefs <<\_ACEOF +s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, +_ACEOF + +# Break up conftest.defines because some shells have a limit on the size +# of here documents, and old seds have small limits too (100 cmds). +echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS +echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS +echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS +echo ' :' >>$CONFIG_STATUS +rm -f conftest.tail +while grep . conftest.defines >/dev/null +do + # Write a limited-size here document to $tmp/defines.sed. + echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS + # Speed up: don't consider the non `#define' lines. + echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS + sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS + echo 'CEOF + sed -f $tmp/defines.sed $tmp/in >$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in +' >>$CONFIG_STATUS + sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail + rm -f conftest.defines + mv conftest.tail conftest.defines +done +rm -f conftest.defines +echo ' fi # grep' >>$CONFIG_STATUS +echo >>$CONFIG_STATUS + +# Break up conftest.undefs because some shells have a limit on the size +# of here documents, and old seds have small limits too (100 cmds). +echo ' # Handle all the #undef templates' >>$CONFIG_STATUS +rm -f conftest.tail +while grep . conftest.undefs >/dev/null +do + # Write a limited-size here document to $tmp/undefs.sed. + echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS + # Speed up: don't consider the non `#undef' + echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS + sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS + echo 'CEOF + sed -f $tmp/undefs.sed $tmp/in >$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in +' >>$CONFIG_STATUS + sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail + rm -f conftest.undefs + mv conftest.tail conftest.undefs +done +rm -f conftest.undefs + +cat >>$CONFIG_STATUS <<\_ACEOF + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + if test x"$ac_file" = x-; then + echo "/* Generated by configure. */" >$tmp/config.h + else + echo "/* $ac_file. Generated by configure. */" >$tmp/config.h + fi + cat $tmp/in >>$tmp/config.h + rm -f $tmp/in + if test x"$ac_file" != x-; then + if diff $ac_file $tmp/config.h >/dev/null 2>&1; then + { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +echo "$as_me: $ac_file is unchanged" >&6;} + else + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + rm -f $ac_file + mv $tmp/config.h $ac_file + fi + else + cat $tmp/config.h + rm -f $tmp/config.h + fi + # Run the commands associated with the file. + case $ac_file in + config.h ) # update the timestamp +echo 'timestamp for config.h' >"./stamp-h1" + ;; + esac +done +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + +# +# CONFIG_COMMANDS section. +# +for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue + ac_dest=`echo "$ac_file" | sed 's,:.*,,'` + ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_dir=`(dirname "$ac_dest") 2>/dev/null || +$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_dest" : 'X\(//\)[^/]' \| \ + X"$ac_dest" : 'X\(//\)$' \| \ + X"$ac_dest" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_dest" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac + + + { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 +echo "$as_me: executing $ac_dest commands" >&6;} + case $ac_dest in + depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # So let's grep whole file. + if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then + dirpart=`(dirname "$mf") 2>/dev/null || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + else + continue + fi + grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue + # Extract the definition of DEP_FILES from the Makefile without + # running `make'. + DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` + test -z "$DEPDIR" && continue + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n -e '/^U = / s///p' < "$mf"` + test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" + # We invoke sed twice because it is the simplest approach to + # changing $(DEPDIR) to its actual value in the expansion. + for file in `sed -n -e ' + /^DEP_FILES = .*\\\\$/ { + s/^DEP_FILES = // + :loop + s/\\\\$// + p + n + /\\\\$/ b loop + p + } + /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`(dirname "$file") 2>/dev/null || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p $dirpart/$fdir + else + as_dir=$dirpart/$fdir + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 +echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} + { (exit 1); exit 1; }; }; } + + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done + ;; + default-1 ) case "$CONFIG_FILES" in *po/Makefile.in*) + sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + esac ;; + esac +done +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + 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 || { (exit 1); exit 1; } +fi + diff --git a/configure.in b/configure.in new file mode 100644 index 0000000..ab8be14 --- /dev/null +++ b/configure.in @@ -0,0 +1,132 @@ +AC_PREREQ(2.52) + +AC_INIT(grip, 3.3.1, http://sf.net/tracker/?group_id=3714&atid=103714) +AC_CONFIG_SRCDIR(src/main.c) +AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) + +AM_MAINTAINER_MODE +AM_CONFIG_HEADER(config.h) + +AC_ARG_ENABLE(shared_cdpar, + [ --disable-shared-cdpar use static cdparanoia lib], + ,enable_shared_cdpar=yes) + +AC_ARG_ENABLE(cdpar, + [ --disable-cdpar do not compile with cdparanoia], + , enable_cdpar=yes) + +AC_ARG_ENABLE(id3, + [ --disable-id3 do not compile with id3lib], + , enable_id3=yes) + +AC_ARG_ENABLE(shared_id3, + [ --disable-shared-id3 use static id3lib], + , enable_shared_id3=yes) + +AC_PROG_CC +AC_PROG_CXX +AC_ISC_POSIX +AC_HEADER_STDC +AC_CHECK_HEADERS(sys/vfs.h sys/statvfs.h) +AC_CHECK_HEADERS(linux/cdrom.h linux/ucdrom.h sys/cdio.h io/cam/cdrom.h sys/mntent.h) +AC_CHECK_HEADERS(linux/soundcard.h machine/soundcard.h sys/soundcard.h sys/audioio.h sys/audio.io.h sun/audioio.h) + +AM_PROG_LIBTOOL + +PKG_CHECK_MODULES(GNOME, libgnomeui-2.0 >= 2.2.0, + [LIBS="$LIBS $GNOME_LIBS" + CFLAGS="$CFLAGS $GNOME_CFLAGS"]) + +PKG_CHECK_MODULES(TERMINAL_WIDGET, vte) +CFLAGS="$TERMINAL_WIDGET_CFLAGS $CFLAGS" + +dnl check for ghttp +AC_CHECK_HEADER(curl/curl.h, [], [AC_MSG_ERROR(libcurl headers are missing)]) +AC_CHECK_LIB(curl,curl_global_init, [LIBS="$LIBS `curl-config --libs`"], [AC_MSG_ERROR(curl libs are missing)]) + +GETTEXT_PACKAGE=grip-2.2 +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package]) +ALL_LINGUAS="fr de zh_CN zh_HK zh_TW ja pt_BR ru es ca it be fi bg nl hu pl_PL" +AM_GLIB_GNU_GETTEXT + +dnl do cdparanoia check +if test "$enable_cdpar" = "yes"; then + LIBS="$LIBS -lm" + + AC_CHECK_HEADERS(cdda_interface.h cdda_paranoia.h) + AC_CHECK_HEADERS(cdda/cdda_interface.h cdda/cdda_paranoia.h) + + AC_CHECK_LIB(cdda_interface,main, + if test "$enable_shared_cdpar" = "yes"; then + echo "using shared cdparanoia libraries" + CDPAR_LIBS="-lcdda_interface -lcdda_paranoia" + else + echo "using static cdparanoia libraries" + CDPAR_LIBS="$prefix/lib/libcdda_interface.a $prefix/lib/libcdda_paranoia.a" + fi) +fi +AC_SUBST(CDPAR_LIBS) + +id3_libs_bak=$LIBS +if test "$enable_id3" = "yes"; then + AC_SEARCH_LIBS(ID3Tag_Link,"id3 -lz -lstdc++", + id3lib=yes + AC_DEFINE(HAVE_ID3V2, [], [Description]) + if test "$enable_shared_id3" = "yes"; then + echo "using shared id3lib" + ID3_LIBS="-lid3 -lz -lstdc++" + else + echo "using static id3lib" + ID3_LIBS="$prefix/lib/libid3.a -lz -lstdc++" + fi, + id3lib=no + AC_MSG_WARN(id3lib not found - disabling id3v2 support)) +fi + +dnl expected version for cross compiling +ID3LIB_MAJOR=3 +ID3LIB_MINOR=7 +ID3LIB_PATCH=13 + +dnl This test will extract the version number from id3lib and define the macros +dnl ID3LIB_MAJOR, ID3LIB_MINOR, ID3LIB_PATCH +if test $id3lib = yes; then + AC_MSG_CHECKING(for id3lib version) + AC_TRY_RUN([ +#include +#include +int +main () +{ + FILE *output; + output=fopen("conftest.id3","w"); + fprintf(output,"ID3LIB_MAJOR=%d\nID3LIB_MINOR=%d\nID3LIB_PATCH=%d\n", + ID3LIB_MAJOR_VERSION,ID3LIB_MINOR_VERSION,ID3LIB_PATCH_VERSION); + fclose(output); + exit(0); +} +], . conftest.id3 + echo "${ID3LIB_MAJOR}.${ID3LIB_MINOR}.${ID3LIB_PATCH}", + AC_MSG_WARN(could not determine id3lib version),[echo $ac_n "cross compiling; assuming ${ID3LIB_MAJOR}.${ID3LIB_MINOR}.${ID3LIB_PATCH} $ac_c"]) + AC_DEFINE_UNQUOTED(ID3LIB_MAJOR, $ID3LIB_MAJOR, [Description]) + AC_DEFINE_UNQUOTED(ID3LIB_MINOR, $ID3LIB_MINOR, [Description]) + AC_DEFINE_UNQUOTED(ID3LIB_PATCH, $ID3LIB_PATCH, [Description]) +fi +AC_SUBST(ID3_LIBS) +LIBS=$id3_libs_bak + +AC_SUBST(CFLAGS) +AC_SUBST(CPPFLAGS) +AC_SUBST(LDFLAGS) + +AC_OUTPUT([ +Makefile +grip.spec +src/Makefile +po/Makefile.in +pixmaps/Makefile +doc/Makefile +doc/C/Makefile +contrib/Makefile +]) diff --git a/contrib/Makefile.am b/contrib/Makefile.am new file mode 100644 index 0000000..ab83b67 --- /dev/null +++ b/contrib/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST=write-gronk-discid + diff --git a/contrib/Makefile.in b/contrib/Makefile.in new file mode 100644 index 0000000..0c441eb --- /dev/null +++ b/contrib/Makefile.in @@ -0,0 +1,239 @@ +# Makefile.in generated by automake 1.6.3 from Makefile.am. +# @configure_input@ + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_HEADER = $(INSTALL_DATA) +transform = @program_transform_name@ +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ + +EXEEXT = @EXEEXT@ +OBJEXT = @OBJEXT@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +AMTAR = @AMTAR@ +AS = @AS@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CDPAR_LIBS = @CDPAR_LIBS@ +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +DATADIRNAME = @DATADIRNAME@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +ID3_LIBS = @ID3_LIBS@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +LDFLAGS = @LDFLAGS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +MAINT = @MAINT@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +OBJDUMP = @OBJDUMP@ +PACKAGE = @PACKAGE@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +am__include = @am__include@ +am__quote = @am__quote@ +install_sh = @install_sh@ +EXTRA_DIST = write-gronk-discid +subdir = contrib +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +DIST_SOURCES = +DIST_COMMON = Makefile.am Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu contrib/Makefile +Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +tags: TAGS +TAGS: + +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = .. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + +distdir: $(DISTFILES) + @list='$(DISTFILES)'; for file in $$list; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile + +installdirs: + +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + +distclean-am: clean-am distclean-generic distclean-libtool + +dvi: dvi-am + +dvi-am: + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +uninstall-am: uninstall-info-am + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am info info-am install install-am install-data \ + install-data-am install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool uninstall uninstall-am uninstall-info-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/contrib/write-gronk-discid b/contrib/write-gronk-discid new file mode 100644 index 0000000..58bc400 --- /dev/null +++ b/contrib/write-gronk-discid @@ -0,0 +1,23 @@ +#!/bin/sh +# +# write-gronk-discid +# +# When invoked as the "MP3 Filter" by Grip, writes +# a "discid" file for use by Jamie Zawinski's Gronk +# MP3 Jukebox (http://www.jwz.org/gronk/). +# +# Set as MP3 filter like: "write-gronk-discid %m %i". +# + +test $# -eq 2 -a -f "$1" || exit 1 + +DIR=`dirname "$1"` +DISCID=$2 +IDFILE=$DIR/discid + +rm -f $IDFILE* +echo $DISCID > $IDFILE.$DISCID +ln -s `basename $IDFILE.$DISCID` $IDFILE + +# +#EOF diff --git a/depcomp b/depcomp new file mode 100755 index 0000000..51606f8 --- /dev/null +++ b/depcomp @@ -0,0 +1,464 @@ +#! /bin/sh + +# depcomp - compile a program generating dependencies as side-effects +# Copyright 1999, 2000 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi +# `libtool' can also be set to `yes' or `no'. + +if test -z "$depfile"; then + base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` + dir=`echo "$object" | sed 's,/.*$,/,'` + if test "$dir" = "$object"; then + dir= + fi + # FIXME: should be _deps on DOS. + depfile="$dir.deps/$base" +fi + +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. + "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> $depfile + echo >> $depfile + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> $depfile + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. This file always lives in the current directory. + # Also, the AIX compiler puts `$object:' at the start of each line; + # $object doesn't have directory information. + stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` + tmpdepfile="$stripped.u" + outname="$stripped.o" + if test "$libtool" = yes; then + "$@" -Wc,-M + else + "$@" -M + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + + if test -f "$tmpdepfile"; then + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" + sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Must come before tru64. + + # Intel's C compiler understands `-MD -MF file'. However + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + sed -e "s,^[^:]*: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + tmpdepfile1="$dir.libs/$base.lo.d" + tmpdepfile2="$dir.libs/$base.d" + "$@" -Wc,-MD + else + tmpdepfile1="$dir$base.o.d" + tmpdepfile2="$dir$base.d" + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + if test -f "$tmpdepfile1"; then + tmpdepfile="$tmpdepfile1" + else + tmpdepfile="$tmpdepfile2" + fi + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a space and a tab in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the proprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no + for arg in "$@"; do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix="`echo $object | sed 's/^.*\././'`" + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the proprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the proprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. + "$@" || exit $? + IFS=" " + for arg + do + case "$arg" in + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 diff --git a/doc/C/Makefile.am b/doc/C/Makefile.am new file mode 100644 index 0000000..0398b5e --- /dev/null +++ b/doc/C/Makefile.am @@ -0,0 +1,9 @@ +grip_helpdir = $(datadir)/gnome/help/grip/C + +grip_help_DATA = \ + grip.xml \ + *.png + +EXTRA_DIST = \ + grip.xml \ + *.png diff --git a/doc/C/Makefile.in b/doc/C/Makefile.in new file mode 100644 index 0000000..a23c6e0 --- /dev/null +++ b/doc/C/Makefile.in @@ -0,0 +1,271 @@ +# Makefile.in generated by automake 1.6.3 from Makefile.am. +# @configure_input@ + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = ../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_HEADER = $(INSTALL_DATA) +transform = @program_transform_name@ +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ + +EXEEXT = @EXEEXT@ +OBJEXT = @OBJEXT@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +AMTAR = @AMTAR@ +AS = @AS@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CDPAR_LIBS = @CDPAR_LIBS@ +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +DATADIRNAME = @DATADIRNAME@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +ID3_LIBS = @ID3_LIBS@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +LDFLAGS = @LDFLAGS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +MAINT = @MAINT@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +OBJDUMP = @OBJDUMP@ +PACKAGE = @PACKAGE@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +am__include = @am__include@ +am__quote = @am__quote@ +install_sh = @install_sh@ +grip_helpdir = $(datadir)/gnome/help/grip/C + +grip_help_DATA = \ + grip.xml \ + *.png + + +EXTRA_DIST = \ + grip.xml \ + *.png + +subdir = doc/C +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +DIST_SOURCES = +DATA = $(grip_help_DATA) + +DIST_COMMON = Makefile.am Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/C/Makefile +Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +grip_helpDATA_INSTALL = $(INSTALL_DATA) +install-grip_helpDATA: $(grip_help_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(grip_helpdir) + @list='$(grip_help_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(grip_helpDATA_INSTALL) $$d$$p $(DESTDIR)$(grip_helpdir)/$$f"; \ + $(grip_helpDATA_INSTALL) $$d$$p $(DESTDIR)$(grip_helpdir)/$$f; \ + done + +uninstall-grip_helpDATA: + @$(NORMAL_UNINSTALL) + @list='$(grip_help_DATA)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f $(DESTDIR)$(grip_helpdir)/$$f"; \ + rm -f $(DESTDIR)$(grip_helpdir)/$$f; \ + done +tags: TAGS +TAGS: + +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = ../.. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + +distdir: $(DISTFILES) + @list='$(DISTFILES)'; for file in $$list; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) + +installdirs: + $(mkinstalldirs) $(DESTDIR)$(grip_helpdir) + +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + +distclean-am: clean-am distclean-generic distclean-libtool + +dvi: dvi-am + +dvi-am: + +info: info-am + +info-am: + +install-data-am: install-grip_helpDATA + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +uninstall-am: uninstall-grip_helpDATA uninstall-info-am + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am info info-am install install-am install-data \ + install-data-am install-exec install-exec-am \ + install-grip_helpDATA install-info install-info-am install-man \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool uninstall uninstall-am \ + uninstall-grip_helpDATA uninstall-info-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/doc/C/cdconfig.png b/doc/C/cdconfig.png new file mode 100644 index 0000000..863dd3d Binary files /dev/null and b/doc/C/cdconfig.png differ diff --git a/doc/C/cdplayer.png b/doc/C/cdplayer.png new file mode 100644 index 0000000..16fdd10 Binary files /dev/null and b/doc/C/cdplayer.png differ diff --git a/doc/C/cdplayersmall.png b/doc/C/cdplayersmall.png new file mode 100644 index 0000000..dd76033 Binary files /dev/null and b/doc/C/cdplayersmall.png differ diff --git a/doc/C/cdscan.png b/doc/C/cdscan.png new file mode 100644 index 0000000..54c9f4c Binary files /dev/null and b/doc/C/cdscan.png differ diff --git a/doc/C/discdb.png b/doc/C/discdb.png new file mode 100644 index 0000000..d2c1a8a Binary files /dev/null and b/doc/C/discdb.png differ diff --git a/doc/C/discdbconfig.png b/doc/C/discdbconfig.png new file mode 100644 index 0000000..e424c1a Binary files /dev/null and b/doc/C/discdbconfig.png differ diff --git a/doc/C/editing.png b/doc/C/editing.png new file mode 100644 index 0000000..a650264 Binary files /dev/null and b/doc/C/editing.png differ diff --git a/doc/C/eject.png b/doc/C/eject.png new file mode 100644 index 0000000..73613cb Binary files /dev/null and b/doc/C/eject.png differ diff --git a/doc/C/encprog.png b/doc/C/encprog.png new file mode 100644 index 0000000..cf6f418 Binary files /dev/null and b/doc/C/encprog.png differ diff --git a/doc/C/ffwd.png b/doc/C/ffwd.png new file mode 100644 index 0000000..53dfd36 Binary files /dev/null and b/doc/C/ffwd.png differ diff --git a/doc/C/grip-logo.png b/doc/C/grip-logo.png new file mode 100644 index 0000000..3299db6 Binary files /dev/null and b/doc/C/grip-logo.png differ diff --git a/doc/C/grip.xml b/doc/C/grip.xml new file mode 100644 index 0000000..acaaceb --- /dev/null +++ b/doc/C/grip.xml @@ -0,0 +1,1361 @@ + + +
+ + Grip User's Guide + + + Mike Oliphant + +
+ grip@nostatic.org +
+
+
+
+ + 2004 Mike Oliphant + + + This documentation 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 + + For more details see the file COPYING in the source + distribution of GNOME. + +
+ + + Introduction + + + + + + + Grip is a cd-player and cd-ripper for the Gnome desktop. It has + the ripping capabilities of cdparanoia builtin, but can also use + external rippers (such as cdda2wav). It also provides an automated + frontend for MP3 (and other audio format) encoders, letting you take a + disc and transform it easily straight into MP3s. Internet disc lookups + are supported for retrieving track information from disc database + servers. Grip works with DigitalDJ to provide a unified "computerized" + version of your music collection. + + + + Playing CDs with Grip + Grip functions as a full-featured CD player, as can be seen in + . Tracks can be selected by clicking on + them with the left mouse button. Double-clicking will select the track, + and begin playing it. + +
+ Grip as a CD Player + + + + +
+ + + CD Player Controls + + Underneath the "LCD" display is a panel of buttons that allow + you to control CD playing in Grip. These buttons function as + follows: + + + + + + Play/Pause — Causes the selected track + to play if it is stopped or paused. If a track is currently + playing, it will go into pause mode. + + + + + + Rewind — While this button is held + down, Grip will move backward in the currently playing track. + + + + + + + FastForward — While this button is + held down, Grip will more forward in the currently playing + track. + + + + + + Previous track — If a track is + currently playing near the beginning of a track, this will + rewind to the beginning. Otherwise, it will skip to the previous + track. + + + + + + + Next track — This will skip to the next + track. + + + + + + Track Mode — This brings up the track + mode interface, described in . + + + + + + + Stop — Stops track playback. + + + + + + Eject — Opens or closes the cdrom + tray. + + + + + + Scan disc contents — Causes Grip to + force a scan of the current CD as if it were just inserted (useful + if you have polling for a new disc turned off). + + + + + + Volume — Toggles display of the + volume control slider interface. + + + + + + Track Edit — This brings up the track + editing interface described in ... + + + + + + DiscDB — This initiates lookup of the + CD over the network, or aborts a disc lookup currently in + progress. + + + + + + Min/Max — Toggles between the "full" + and "cd-only" (shown in ) display + modes. + + +
+ Grip in "cd-only" mode. + + + + +
+
+ +
+ + + + + Quit — Exits Grip. + + +
+
+ + + Track Mode Selector + +
+ The Play Mode Interface + + + + +
+
+ + The track mode selection interface (shown in ) allows you to control how Grip plays the + tracks on a CD. The following options are available: + + + + + Normal Mode — In this mode, + tracks will be played in normal, numbered order. + + + + + + Random Mode — In this mode, + tracks will be played in a random order. + + + + + + Playlist Mode — In this mode, + track will be played in an order you specify. In the text + entry box, entry a list of comma separated list of the + tracks you wish to play. + + + + + + Loop Mode — In loop mode, when + playback finishes it will then resume at the beginning + again. + + + + + + Single Play Mode — In this mode, + when playback finishes it will not begin again. + + +
+ +
+ + + Ripping CDs with Grip + + Playing CDs is great, but what Grip is really designed for is + ripping CDs and creating encoded versions of the tracks. + + + Selecting Tracks To Rip + Before ripping, you need to select the tracks that you would + like to rip. This can be done by right-clicking on tracks in the + "Tracks" tab, or left clicking on a track when your mouse is under the + "Rip" column. In addtion, you can quickly select/deselect all tracks + for ripping by clicking on the "Rip" column label. + + + + Ripping CDs +
+ The ripping interface + + + + +
+ + There are number of buttons in the interface under the "Rip" + tab. They function as follows: + + + + Rip+Encode — This will cause Grip + to rip and then encode all selected tracks. + + + + Rip Only — This will cause Grip + to rip all selected tracks, but not encode them. + + + + Abort Rip and Encode — Clicking + this button will abort all active rip and encode + processes. + + + + Abort Ripping Only — Clicking + this button will abort ripping, but will leave encoding + running. + + + + DDJ Scan — Clicking this button + will insert all track information for the current disc into + DigitalDJ's database (if it is installed) + + + + Rip partial track — If selected, + Grip will configured to rip a portion of a single track (as + specified by the "Start sector" and "End sector" values). The + "Play" button can be used preview the selected portion. + + + + + In the bottom portion of the interface, Grip displays progress + bars for the rip and encode processes. It also computes the speed of + the processes as a function of normal playback speed (so 2.0x, for + example, means that processing is running twice as fast as normal + playback, on average). In addition, if Grip is using builtin + cdparanoia to rip, there will be a "smilie" indicator next to the + progress bar that reflects how much trouble Grip is having ripping + the CD. The meaning of the different smiles are as follows: + + + + + + Normal operation, low/no jitter + + + + + Normal operation, considerable jitter + + + + + Read drift + + + + + Unreported + loss of streaming in atomic read operation + + + + + Finding + read problems at same point during reread; hard to correct + + + + + SCSI/ATAPI transport error + + + + + Scratch detected + + + + + Gave up trying to perform a correction + + + + + In addition to the individual track rip/encode progress bars, + Grip displays overall progress bars that indicate the overall progress + of a multi-track rip. + + Grip also places an indicator for both ripping and encoding the + the LCD display. They show progress in %25 intervals, as can be seen + in this example of Grip in "small" mode. In this case, we are almost + finished ripping a track, and have encoded about a quarter of a + track. + + +
+ Ripping in "small" mode + + + + +
+
+ + + Increasing Ripping Performance + + If you are using an IDE CDrom drive, using SCSI emulation can + give a significant performance increase. Apparently, dma is not used + by the IDE driver (at least in 2.4 kernels). To enable SCSI + emulation, add "hdx=ide-scsi" (where the "x" in "hdx" is is replaced + with the appropriate letter for your CDRom device) to end of the + "kernel" line in /etc/grub.conf (if you are using grub), or as a + line after "root=/dev/something" in /etc/lilo.conf (if you are using + lilo) + + You can also disable paranoia to get approximately a 2x + speedup. This is not recommended, however, unless you are very + confident in the ability of your drive to do rock-solid CDDA + extraction (or unles you enjoy having pops in your audio) + + + + Using a SCSI drive + + If you are using a SCSI drive, or an IDE drive under SCSI + emulation, Grip needs to access the generic scsi device in + addition to the cdrom device. On most systems, the generic scsi + device will be /dev/sgx, where 'x' is a number. Unless you have + multiple scsi devices, the device would be /dev/sg0. Ensure that + your user account has access to this device, and that this device + is specified in your rip configuration (see ). + + +
+ + + Configuring Grip + + The "Config" tab gives you access to a series of sub-tabs that + allow you to configure the various functions of Grip. Each of these + sub-tabs is described in detail in the following sections. + + + The "CD" config tab +
+ The "CD" config tab + + + + +
+ + This tab allows to you configure options associated with your + cdrom device and CD playback. The options are: + + + + + CDRom device — Specifies the + CDRom device to be used for CD playback. + + + + Don't interrupt playback on + exit/startup — If this option is checked, Grip + will not stop a playing track when it is shut down. Also, if a CD + is already playing when Grip starts, it will keep playing. + + + + Rewind when stopped — If this + option is checked, Grip will rewind to the beginning of the disc + whenever playback is stopped. + + + + Startup with first track if not playing + — If this option is checked, Grip will always make the first + track on the CD the current track if the CD is not currently + playing. Otherwise, Grip will start with whatever track is + currently set with the CDRom device. + + + + Reshuffle before each playback — + If this option is checked, randomized playback will be + re-randomized each time playback is restarted. Otherwise, the same + random sequence will be reused. + + + + Work around faulty eject — If + this option is set, Grip will not rely on querying the open/closed + status of the CDRom tray. + + + + Poll disc drive for new disc — If + this option is set, Grip will poll the disc drive to check if a + new disc has been inserted. + + + + Poll interval — This specifies + the number of seconds Grip waits between checks for a new + disc. + + + + +
+ + + The "Rip" config tab + + This tab allows to you configure Grip's ripping + capabilities. + +
+ The "Rip" config tab + + + + +
+ + + + Ripper — This allows you to + select from various presets configured for various Rippers. By + default, "grip (cdparanoia)" is used, which rips with Grip's + builtin version of cdparanoia. + + + + Disable paranoia — If this option + is checked, Grip will disable cdparanoia's verification + system. This will make ripping approximately twice as fast, but + can result in errors. Unless you are very confident that your + drive is rock solid, it is recommended that you do not select this + option. + + + + Disable extra paranoia — If this + option is selected, Grip will only do overlap checking to ensure + proper alignment of reads. It will not verify reads for + errors. + + + + Disable scratch detection / repair + — These options allow you to determine whether Grip attempts + to detect scratches on the CD, and whether or not it attempts to + repair the scratches it detects. + + + + Calculate gain adjustment + — If this option is checked, Grip will calculate a suggested + gain adjustment for tracks as it rips. Computed values can then be + passed to external programs via the '%r' and '%R' switches. + + + + Rip file format — This allows to + you configure the filename and path that Grip rips files to. The + list of available switches can be found in . + + + + Generic SCSI device — If you are + using a SCSI drive, or an IDE drive under SCSI emulation, you need + to specify the generic SCSI device to be used. Form more + information on using a SCSI drive, see + + + + + + If you select a ripper other than Grip's builtin cdparanoia, the + configuration dialog will look slightly different: + +
+ Configuring an external ripper + + + + +
+ + + + Ripping executable — This is the + full path to the executable to be used for ripping + + + + Rip command-line — This is the + command-line to be passed to the ripping program. The list of + available switches can be found in . + + + + + The second sub-tab contains addition options that you can + specify to configure the ripping process. + +
+ Additional ripping options + + + + +
+ + + + Rip 'nice' value — This allows + you to set the 'nice' level to run the ripping process at. This + changes the scheduling priorty of the process. The range goes from + -20 (highest priority) to 19 (lowest). + + + + Max non-encoded .wav's — This + allows you to specify the maximum number of ripped wave files that + can accumulate if ripping is proceding faster than encoding can + keep up. It is useful to keep unencoded .wav files from taking up + too much disk space. + + + + Auto-rip on insert — If this + option is checked, Grip will automatically begin ripping all + tracks on a disc when it is inserted. + + + + Beep after rip — If this option + is checked, Grip will emit a beep when ripping is finished. + + + + Auto-eject after rip — If this + option is checked, Grip will eject the disc after ripping is + finished. + + + + Auto-eject delay — This allows + you to specify a delay (in seconds) before auto-ejection will + happen. This is useful on some drives that need time to spin down + before ejection can occur. + + + + Delay before ripping — If this is + selected, grip will delay 5 seconds before starting to rip. This + can help with some drives (particularly some dvd drives) that take + a while to spin up. + + + + Stop cdrom drive between tracks — + If this is selected, grip will spin down the cdrom drive between + ripping tracks. + + + + Wav filter command — This allows + you to specify a program (full path to executable, followed by + the command-line) to run after a file has been ripped, but + before it is encoded. This is useful for such tasks as + normalization. The list of available switches can be found in + . + + + + Disc filter command — This + operates much like the Wav filter command, except that it is run + once after an entire disc has finished ripping. + + + + +
+ + + The "Encode" config tab + + This tab allows to you configure Grip's encoding + capabilities. + +
+ The "Encode" config tab + + + + +
+ + + + Encoder — This allows + you to select an encoder preset. + + + + Encoder executable — This specifies + the full path to the executable program you wish to use for + encoding. + + + + Encoder command-line — This is the + command-line to be passed to the encoding program. The list of + available switches can be found in . + + + + Encode file format — This allows to + you configure the filename and path that Grip encodes to. The + list of available switches can be found in . + + + + The second sub-tab contains addition options that you can + specify to configure the encoding process. + +
+ Additional encoding options + + + + +
+ + + + Delete .wav after encoding — If + this option is checked, Grip will delete wav files after it has + finished encoding them. + + + + Insert info into SQL database — If + this option is checked, Grip will insert track meta-data into the + DigitalDJ database (if it is installed). + + + + Create .m3u files — If + this option is checked, Grip will create .m3u playlist listing the + tracks on a CD when it is ripped. + + + + Use relative paths in .m3u files + — If this option is checked, filename is .m3u files will be + relative to the directory the .m3u file is in (otherwise, full + paths will be used). + + + + M3U file format — This specifies + the filename format to be used when writing .m3u files. The list + of available switches can be found in . + + + + Encoding bitrate — This is the + encoding bitrate (kilobits per second) to be used. This value is + passed to the encoder using the '%b' switch. + + + + Number of CPUs to use — On + SMP systems, Grip can encode using multiple processors. This value + specifies the number of simultaneous encode processes to run. Grip + needs to be restarted for a change to take effect. + + + + Encode 'nice' value — This allows + you to set the 'nice' level to run encoding at. This changes the + scheduling priorty of the process. The range goes from -20 + (highest priority) to 19 (lowest). + + + + Encode filter command — This allows + you to specify a program (full path to executable, followed by + the command-line) to run after a file has been encoded. The list + of available switches can be found in . + + +
+ + + The "ID3" config tab + + This tab allows to you customize Grip's use of ID3 tags. + +
+ The "ID3" config tab + + + + +
+ + + + Add ID3 tags to encoded files — + If this option is checked, Grip will add ID3v1 tags to the files + it encodes. ID3 tags are used to put song meta-data into an + encoded file. You will want to disable this if you are encoding + with a format other than MP3. + + + + Add ID3v2 tags to encoded files — + This option is only displayed if Grip has been compiled with ID3v2 + support. If it is checked, Grip will add ID3v2 tags to the files + it encodes. ID3v2 tags remove the 20-character field length + limitation imposed by ID3v1. + + + + ID3 comment field — This allows + you to specify the format of the ID3 comment field. The list of + available switches can be found in . + + + + ID3v1 Character set encoding — + The character encoding to be used for ID3v1 tags. ISO_8859_1 is + recommended. + + + + ID3v2 Character set encoding — + The character encoding to be used for ID3v1 tags. ISO_8859_1 or UTF-8 + are the most likely options. + + + +
+ + + The "DiscDB" config tab + + This tab allows to you customize how Grip talks to disc + information servers (such as freedb) to obtain disc meta-data. + +
+ The "DiscDB" config tab + + + + +
+ + + + Primary/Secondary Server — Grip + allows you to configure a primary and secondary disc database + server. If information cannot be found using the primary server, + Grip will then try using the secondary server. + + + + DB server — This is the http + address of the disc database server. + + + + DB server — This is the path to + the CGI to be used on the disc database server. It is generally + "~cddb/cddb.cgi". + + + + DB Character set encoding — The + character encoding to use when tranferring data to/from the + server. This should generally be set to UTF-8. + + + + DB Submit email — This allows you + to specify the email address to send disc database submissions + to. + + + + Use freedb extensions — If + checked, Grip will make use of extensions to the disc database + format used by freedb. Otherwise, it will use an older + format. + + + + Perform disc lookups automatically + — If this option is checked, Grip will automatically query + the disc database server when a disc is inserted that does not + already have meta-data stored. + + +
+ + + The "Proxy" config tab + + This tab allows to you configure Grip to communicate through a + proxy server. + +
+ The "Proxy" config tab + + + + +
+ + + + Use proxy server — Indicates + whether or not Grip should do disc lookups via a proxy server. + + + + + Get server from 'http_proxy' env. var + — If this option is checked, Grip will check the + 'http_proxy' environment variable, and use its value as the name + of the proxy server. + + + + + Proxy server — The name of the + proxy server to use. + + + + + Proxy port — The port to use on + the proxy server (usually 8000). + + + + + Proxy username — Some proxies + require user authentication. This field is the username you wish + to authenticte with. + + + + + Proxy password — This is the + password that goes along with the username for proxy + authentication. + + + + +
+ + + The "Misc" config tab + + This tab allows contains various additional configuration + options. + +
+ The "Misc" config tab + + + + +
+ + + + Email address — A valid email + addres where you can be reached. This is used with disc database + submissions to allow the disc database server to contact you if + there are problems with a submission. + + + + + CD update program — This allows + you to specify a program (full path to executable, followed by + the command-line) to run when a new disc is inserted. This is + useful for such tasks as normalization. The list of available + switches can be found in . + + + + + Do not lowercase filenames — By + default, Grip lowercases the strings used when translating the '%' + switches. If this option is checked, it will not do this. + + + + + Allow high bits in filename — By + default, Grip strips high-bit characters in the strings used when + translating the '%' switches. If this option is checked, it will + not do this. + + + + + Do not change spaces to underscores + — By default, Grip replaces spaces with underscores in the + strings used when translating the '%' switches. If this option is + checked, it will not do this. + + + + + Characters to not strip in filenames + — Grip strips all non-alphanumeric characters in the + strings used when translating the '%' switches. Any characters + entered here will explicity not be stripped. + + + + + +
+ + + Configuration (%) switches + + Here is a list of the '%' switches used in command-lines. + + + b — The bitrate that files + are being encoded at. + + c — The CDrom device + being used. + + C — The generic scsi + device being used (note that this will be substituted with the + CDrom device if no generic scsi device has been + specified). + + w — The filename of the + wave file being ripped. + + m — The filename of the + file being encoded. + + t — The track + number,beginning at 1, and zero-filled (ie: '03' for the third + track). + + s — The start sector of + the track. + + e — The end sector of the + track. + + n — The name of the + track. + + a — The artist name for + the track. + + A — The artist name for + the disc. + + + d — The name of the disc. + + + i — The disc database id + (in hex) for the disc. + + y — The year of the disc. + + + g — The ID3 genre id of + the disc. + + G — The ID3 genre string + of the disc. + + r — The recommended + replay gain for the track (in dB). Note that this is only applicable + if you have enabled gain calculation. You can find more information + on this gain adjustment at www.replaygain.org + + + R — The recommended + replay gain for the entire album (in dB). This value is only valide + after an entire disc has been ripped (it is designed to be used with + the disc filter command). + + + x — The encoded file + extension (ie "mp3") + + + + Any of the '%' switches can optionally be preceded by a '*' or + '!' modifier (for example, '%*a'). '*' prevents Grip from doing any + stripping of characters from the string. '!' forces Grip to strip + characters from the string. If neither modifier is used, Grip will + do what it thinks is best (generally, it will only munge strings if + it knows they are part of a filename). + +
+ + + FAQ + + + Q: When I try to rip a track, I get X I/O errors. What + gives? + + A: This seems to be a problem with non-thread-safe + systems. Make sure your system is safe for threads. This often + seems to be associated with libc5. + + + Q: I just get a message saying that the program can't + access my drive. This makes it hard to do much. Help! + + A: Your user account must have access to the cdrom device. + + + + Q: I can play cd's fine, but my ripper can't access + the drive. Why not? + + A: On scsi systems, rippers (cdparanoia, at least) need access + to the generic scsi device as well. + + + Q: The progress bar doesn't seem to be completely + accurate when encoding. Why can't it get it right? + + A: The progress bar is done based on the size of the output + file. If you have the kbits/sec set properly, Grip should estimate + the size properly. Note that if you use variable bitrate encoding + (supported by encoders like LAME and xing) Grip has no way to + accurately guess the file size. + + Q: When I try to rip, Grip skips some of the tracks I + have selected. That's not nice -- how can I make it stop? + + A: Some drives (particularly some dvd drives) take a while to + spin up, and get confused if ripping starts before they are + ready. Try enabling the "Delay before ripping" setting in . + + Q: When I encode tracks, the progress bar never + does anything. What happened to progress? + + A: If your encoder doesn't accept an output filename (like + BladeEnc), or you haven't passed it one on the command-line, then + it might not be outputting to the file Grip expects. Make sure + that your encoded file format is set to what your encoder is + actually producing. + + + Q: When Grip looks up disc information, it works, but + says "Error saving disc data". Why? + + A: Grip saves local copies of disc track information in the + directory "~/.cddb". It must be able to create or access this + directory. + + + Q: How come I don't get any scrollbars in the track + display? + + A: You are using a version of Grip compiled for gtk+ v1.0.x on + a system that has gtk+ v1.2.x installed. You need to either get a + binary compiled for the development series of gtk+, or compile + Grip yourself. + + + Q: When my buddy runs Grip, he gets those nifty LCD + icons showing rip/encode/DiscDB status, but I don't. What makes him + so special? + + A: He's using a more recent version of gtk+ than you are. Due + to bugs in gtk+ v1.0.x, I don't support the icons under + it. Upgrade your gtk+! + + + Q: I can't get Grip to rip any tracks! This makes it + less than useful... + + A: Grip won't rip tracks unless you tell it what to rip. Use + the right mouse button to select tracks for + ripping. + + + Q: I was listening to a CD in Grip and it sounded + horrible! What's up? + + A: Perhaps you are listening to country + music... + + + + + + Getting More Help If you need more help with Grip, + your best resource is the Grip mailing list. You will find it + here. Be sure to check the mailing list archives for answers to + any questions you may have. + + + + Reporting Bugs / Sumitting Patches + + To report a bug with Grip, or to submit a patch. Please do so at + the Grip + section on sourceforge.net. + + + + CDDB notes I have declined to sign a license + agreement with Escient, the company who owns "www.cddb.com" and runs + the CDDB server "us.cddb.com". Their license would (among other + things) have required me to place advertisements in Grip and restrict + you, the user, to use only their databases. I am against this + commercial use of the track information submitted by users such as + yourself. For this reason, I encourage you to use free servers, such + as freedb.org. + + + + License and Disclaimer Grip is Copyright + &copy 2002 by Mike Oliphant. Grip may be used and distributed + under the terms of the GNU General Public License. All other brand and + product names are trademarks, registered trademarks or service marks of + their respective holders. + + These programs are 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 distribution; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, + USA. + + + + Acknowledgments + + Thanks go to: + + + + Everyone involved in GTK development for a wonderful + GUI + + Tony Arcieri, for libcdaudio, which formed the basis + of Grip's low-level cd control and disc database access + routines + + Monty, for cdparanoia and the paranoia + library + + Heiko Eissfeldt for cdda2wav + + Mike Cheng, Mark Taylor and all the others who have + worked on LAME + + Tord Jansson for BladeEnc + + Michael Kaiser and everyone else who has helped out + with freedb + + Ti Kan, for the xmcd button bitmaps, many of which I + use in modified form (shame on you for the cddb fiasco, + however) + + mp3.com for hosting nostatic.org + + David Robinson and Glen Sawyer for + ReplayGain + + Everyone else who has given me feedback, contributed + code, and helped test Grip (see the ChangeLog and CREDITS for + specific contributions) + + + + + +
+ + + + + diff --git a/doc/C/id3config.png b/doc/C/id3config.png new file mode 100644 index 0000000..58c47df Binary files /dev/null and b/doc/C/id3config.png differ diff --git a/doc/C/minmax.png b/doc/C/minmax.png new file mode 100644 index 0000000..ec9aef9 Binary files /dev/null and b/doc/C/minmax.png differ diff --git a/doc/C/miscconfig.png b/doc/C/miscconfig.png new file mode 100644 index 0000000..66d72b6 Binary files /dev/null and b/doc/C/miscconfig.png differ diff --git a/doc/C/modeinterface.png b/doc/C/modeinterface.png new file mode 100644 index 0000000..4e90395 Binary files /dev/null and b/doc/C/modeinterface.png differ diff --git a/doc/C/mp3config.png b/doc/C/mp3config.png new file mode 100644 index 0000000..2b9e073 Binary files /dev/null and b/doc/C/mp3config.png differ diff --git a/doc/C/mp3config2.png b/doc/C/mp3config2.png new file mode 100644 index 0000000..a8bf19f Binary files /dev/null and b/doc/C/mp3config2.png differ diff --git a/doc/C/multiartist.png b/doc/C/multiartist.png new file mode 100644 index 0000000..83cf860 Binary files /dev/null and b/doc/C/multiartist.png differ diff --git a/doc/C/nexttrk.png b/doc/C/nexttrk.png new file mode 100644 index 0000000..8429ed0 Binary files /dev/null and b/doc/C/nexttrk.png differ diff --git a/doc/C/playloop.png b/doc/C/playloop.png new file mode 100644 index 0000000..159321c Binary files /dev/null and b/doc/C/playloop.png differ diff --git a/doc/C/playnormal.png b/doc/C/playnormal.png new file mode 100644 index 0000000..c9c794b Binary files /dev/null and b/doc/C/playnormal.png differ diff --git a/doc/C/playonce.png b/doc/C/playonce.png new file mode 100644 index 0000000..73fe360 Binary files /dev/null and b/doc/C/playonce.png differ diff --git a/doc/C/playpause.png b/doc/C/playpause.png new file mode 100644 index 0000000..cb9d78d Binary files /dev/null and b/doc/C/playpause.png differ diff --git a/doc/C/playplaylist.png b/doc/C/playplaylist.png new file mode 100644 index 0000000..a672994 Binary files /dev/null and b/doc/C/playplaylist.png differ diff --git a/doc/C/playrandom.png b/doc/C/playrandom.png new file mode 100644 index 0000000..b322916 Binary files /dev/null and b/doc/C/playrandom.png differ diff --git a/doc/C/prevtrk.png b/doc/C/prevtrk.png new file mode 100644 index 0000000..103513b Binary files /dev/null and b/doc/C/prevtrk.png differ diff --git a/doc/C/progtrack.png b/doc/C/progtrack.png new file mode 100644 index 0000000..fe0ec61 Binary files /dev/null and b/doc/C/progtrack.png differ diff --git a/doc/C/proxyconfig.png b/doc/C/proxyconfig.png new file mode 100644 index 0000000..bd14c4e Binary files /dev/null and b/doc/C/proxyconfig.png differ diff --git a/doc/C/quit.png b/doc/C/quit.png new file mode 100644 index 0000000..af45885 Binary files /dev/null and b/doc/C/quit.png differ diff --git a/doc/C/rewind.png b/doc/C/rewind.png new file mode 100644 index 0000000..bc832bf Binary files /dev/null and b/doc/C/rewind.png differ diff --git a/doc/C/ripconfig.png b/doc/C/ripconfig.png new file mode 100644 index 0000000..c0d5b07 Binary files /dev/null and b/doc/C/ripconfig.png differ diff --git a/doc/C/ripconfig2.png b/doc/C/ripconfig2.png new file mode 100644 index 0000000..501a0ca Binary files /dev/null and b/doc/C/ripconfig2.png differ diff --git a/doc/C/ripconfig3.png b/doc/C/ripconfig3.png new file mode 100644 index 0000000..f479f2a Binary files /dev/null and b/doc/C/ripconfig3.png differ diff --git a/doc/C/ripping.png b/doc/C/ripping.png new file mode 100644 index 0000000..51421aa Binary files /dev/null and b/doc/C/ripping.png differ diff --git a/doc/C/ripprog.png b/doc/C/ripprog.png new file mode 100644 index 0000000..730d12c Binary files /dev/null and b/doc/C/ripprog.png differ diff --git a/doc/C/ripsmall.png b/doc/C/ripsmall.png new file mode 100644 index 0000000..c2007d2 Binary files /dev/null and b/doc/C/ripsmall.png differ diff --git a/doc/C/smile1.png b/doc/C/smile1.png new file mode 100644 index 0000000..8c19a04 Binary files /dev/null and b/doc/C/smile1.png differ diff --git a/doc/C/smile2.png b/doc/C/smile2.png new file mode 100644 index 0000000..f627d46 Binary files /dev/null and b/doc/C/smile2.png differ diff --git a/doc/C/smile3.png b/doc/C/smile3.png new file mode 100644 index 0000000..da57fd9 Binary files /dev/null and b/doc/C/smile3.png differ diff --git a/doc/C/smile4.png b/doc/C/smile4.png new file mode 100644 index 0000000..7060529 Binary files /dev/null and b/doc/C/smile4.png differ diff --git a/doc/C/smile5.png b/doc/C/smile5.png new file mode 100644 index 0000000..7c648c7 Binary files /dev/null and b/doc/C/smile5.png differ diff --git a/doc/C/smile6.png b/doc/C/smile6.png new file mode 100644 index 0000000..57e58a5 Binary files /dev/null and b/doc/C/smile6.png differ diff --git a/doc/C/smile7.png b/doc/C/smile7.png new file mode 100644 index 0000000..02c3833 Binary files /dev/null and b/doc/C/smile7.png differ diff --git a/doc/C/smile8.png b/doc/C/smile8.png new file mode 100644 index 0000000..aff7f0c Binary files /dev/null and b/doc/C/smile8.png differ diff --git a/doc/C/stop.png b/doc/C/stop.png new file mode 100644 index 0000000..6282771 Binary files /dev/null and b/doc/C/stop.png differ diff --git a/doc/C/trkedit.png b/doc/C/trkedit.png new file mode 100644 index 0000000..5df1be5 Binary files /dev/null and b/doc/C/trkedit.png differ diff --git a/doc/C/volume.png b/doc/C/volume.png new file mode 100644 index 0000000..0979aa5 Binary files /dev/null and b/doc/C/volume.png differ diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..4ac2223 --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,2 @@ + +SUBDIRS = C diff --git a/doc/Makefile.in b/doc/Makefile.in new file mode 100644 index 0000000..4522147 --- /dev/null +++ b/doc/Makefile.in @@ -0,0 +1,361 @@ +# Makefile.in generated by automake 1.6.3 from Makefile.am. +# @configure_input@ + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_HEADER = $(INSTALL_DATA) +transform = @program_transform_name@ +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ + +EXEEXT = @EXEEXT@ +OBJEXT = @OBJEXT@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +AMTAR = @AMTAR@ +AS = @AS@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CDPAR_LIBS = @CDPAR_LIBS@ +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +DATADIRNAME = @DATADIRNAME@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +ID3_LIBS = @ID3_LIBS@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +LDFLAGS = @LDFLAGS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +MAINT = @MAINT@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +OBJDUMP = @OBJDUMP@ +PACKAGE = @PACKAGE@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +am__include = @am__include@ +am__quote = @am__quote@ +install_sh = @install_sh@ + +SUBDIRS = C +subdir = doc +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +DIST_SOURCES = + +RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \ + uninstall-info-recursive all-recursive install-data-recursive \ + install-exec-recursive installdirs-recursive install-recursive \ + uninstall-recursive check-recursive installcheck-recursive +DIST_COMMON = Makefile.am Makefile.in +DIST_SUBDIRS = $(SUBDIRS) +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/Makefile +Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +ETAGS = etags +ETAGSFLAGS = + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$tags$$unique" \ + || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = .. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + +distdir: $(DISTFILES) + @list='$(DISTFILES)'; for file in $$list; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" \ + distdir=../$(distdir)/$$subdir \ + distdir) \ + || exit 1; \ + fi; \ + done +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: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + +distclean-am: clean-am distclean-generic distclean-libtool \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-recursive + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +uninstall-am: uninstall-info-am + +uninstall-info: uninstall-info-recursive + +.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \ + clean-generic clean-libtool clean-recursive distclean \ + distclean-generic distclean-libtool distclean-recursive \ + distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ + info-recursive install install-am install-data install-data-am \ + install-data-recursive install-exec install-exec-am \ + install-exec-recursive install-info install-info-am \ + install-info-recursive install-man install-recursive \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am installdirs-recursive maintainer-clean \ + maintainer-clean-generic maintainer-clean-recursive mostlyclean \ + mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ + tags tags-recursive uninstall uninstall-am uninstall-info-am \ + uninstall-info-recursive uninstall-recursive + +# 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/grip.desktop b/grip.desktop new file mode 100644 index 0000000..f600c92 --- /dev/null +++ b/grip.desktop @@ -0,0 +1,24 @@ +[Desktop Entry] +Name=Grip +Name[ca]=Grip +Name[es]=Grip +Name[de]=Grip +Name[fi]=Grip +Name[zh_CN]=Grip MP3 å<88>¶ä½<9C>ç¨<8B>åº<8F> +Name[zh_CN.GB2312]=Grip MP3 å<88>¶ä½<9C>ç¨<8B>åº<8F> +Name[zh_TW]=Grip MP3 製ä½<9C>ç¨<8B>å¼<8F> +Name[zh_TW.Big5]=Grip MP3 製ä½<9C>ç¨<8B>å¼<8F> +Comment=CD player/ripper +Comment[ca]=Reproductor/extractor de CD d'audio +Comment[es]=Reproductor/extractor de CDs de audio +Comment[de]=Audio-CDs rippen und MP3s/OGGs kodieren +Comment[fr]=Lecteur/extracteur de CD audio +Comment[fi]=CD-audion soitto- ja kopiointiohjelma +Comment[zh_CN]=Grip 让æ<82>¨è½»æ<9D>¾å<88>¶ä½<9C> MP3 æ<96><87>件 +Comment[zh_CN.GB2312]=Grip 让æ<82>¨è½»æ<9D>¾å<88>¶ä½<9C> MP3 æ<96><87>件 +Comment[zh_TW]=Grip è®<93>æ<82>¨è¼<95>é¬<86>製ä½<9C> MP3 æª<94> +Comment[zh_TW.Big5]=Grip è®<93>æ<82>¨è¼<95>é¬<86>製ä½<9C> MP3 æª<94> +Exec=grip +Icon=gripicon.png +Type=Application +Categories=Application;AudioVideo; diff --git a/grip.spec.in b/grip.spec.in new file mode 100644 index 0000000..7c0be29 --- /dev/null +++ b/grip.spec.in @@ -0,0 +1,123 @@ +%define name grip +%define version @VERSION@ +%define release 1 +%define prefix /usr + +Summary: Grip, a CD player, ripper, and MP3-encoder front-end +Summary(zh_CN): Grip ÊÇÒ»¸ö CD ²¥·ÅÆ÷¡¢×¥¹ìÆ÷ºÍ MP3 ±àÂëÆ÷Ç°¶Ë³ÌÐò¡£ +Summary(zh_HK): Grip ¬O¤@­Ó CD ¼½©ñ¾¹¡B§ì­y¾¹©M MP3 ½s½X¾¹«eºÝµ{¦¡¡C +Summary(zh_TW): Grip ¬O¤@­Ó CD ¼½©ñ¾¹¡B§ì­y¾¹©M MP3 ½s½X¾¹«eºÝµ{¦¡¡C +Summary(fr): Grip, un lecteur de CD, extracteur, et IHM pour encodeur MP3 +Summary(de): Grip, ein CD-Spieler, Ripper und MP3/OGG Kodierer +Name: %{name} +Version: %{version} +Release: %{release} +Copyright: GPL +Group: Applications/Multimedia +Source: http://www.nostatic/grip/grip-%{version}.tar.gz +URL: http://www.nostatic.org/grip +Packager: Mike Oliphant +Icon: gripicon.gif +Buildroot: /var/tmp/%{name}-%{version}-root +Requires: gnome-libs +Requires: libghttp +BuildRequires: gnome-libs-devel +BuildRequires: gcc-c++ +BuildRequires: libghttp-devel +BuildRequires: libgnomeui-devel +BuildRequires: vte-devel +BuildRequires: cdparanoia-devel +Epoch: 1 + +%description +Grip is a cd-player and cd-ripper for the Gnome desktop. It has the ripping +capabilities of cdparanoia built in, but can also use external rippers (such +as cdda2wav). It also provides an automated frontend for MP3 (and other +audio format) encoders, letting you take a disc and transform it easily +straight into MP3s. Internet disc lookups are supported for retrieving track +information from disc database servers. Grip works with DigitalDJ to provide +a unified "computerized" version of your music collection. + +%description -l zh_CN +Grip ÊÇÒ»¸ö¿ÉÒÔÔÚ GNOME ×ÀÃæ»·¾³ÏÂÔËÐÐµÄ CD ÒôÀÖ²¥·ÅÆ÷ºÍ×¥¹ìÆ÷¡£Ëü¿ÉÒÔʹÓà +ÄÚÖÃµÄ cdparanoia ³ÌÐò×¥¹ìÆ÷ (½«Òô¹ì´æ´¢ÎªÎļþ)£¬Ò²¿ÉÒÔʹÓÃÍⲿµÄ×¥¹ìÆ÷ +(ÀýÈç: cdda2wav)¡£Í¬Ê±Ìṩ×Ô¶¯µÄ MP3 ±àÂëÇ°¶Ë£¬»¹¿ÉÒÔ×Ô¶¯µØ´Ó Internet É쵀 +¹âÅÌÊý¾Ý¿âÖвéѯ¹âÅÌÇúÄ¿¡£Èç¹ûЭͬ DigitalDJ ³ÌÐòÒ»Æð¹¤×÷£¬Äú¿ÉÒÔ´´½¨×Ô¼ºµÄ +¡°¼ÆËã»ú»¯¡±µÄÒôÀÖ¿â¡£ + +%description -l zh_HK +Grip ¬O¤@­Ó¥i¥H¦b GNOME ®à­±Àô¹Ò¤U°õ¦æªº CD ­µ¼Ö¼½©ñ¾¹©M§ì­y¾¹¡C¥¦¥i¥H¨Ï +¥Î¤º¸mªº cdparanoia µ{¦¡§ì­y¾¹ (±N­µ­y¦s¬°ÀÉ®×)¡A¤]¥i¥H¨Ï¥Î¥~³¡ªº§ì­y¾¹ +(¨Ò¦p cdda2wav)¡C¦P®É´£¨Ñ¦Û°Êªº MP3 ½s½X«eºÝ¡AÁÙ¥i¥H¦Û°Ê¦a±q Internet ¤W +ªº¥úºÐ¸ê®Æ®w¤¤¬d¸ß¥úºÐ¦±¥Ø¡C¦pªG¨ó¦P DigitalDJ µ{¦¡¤@°_¤u§@¡A±z¥i¥H«Ø¥ß +¦Û¤vªº¡u¹q¸£¤Æ¡vªº­µ¼Ö®w¡C + +%description -l zh_TW +Grip ¬O¤@­Ó¥i¥H¦b GNOME ®à­±Àô¹Ò¤U°õ¦æªº CD ­µ¼Ö¼½©ñ¾¹©M§ì­y¾¹¡C¥¦¥i¥H¨Ï +¥Î¤º¸mªº cdparanoia µ{¦¡§ì­y¾¹ (±N­µ­y¦s¬°ÀÉ®×)¡A¤]¥i¥H¨Ï¥Î¥~³¡ªº§ì­y¾¹ +(¨Ò¦p cdda2wav)¡C¦P®É´£¨Ñ¦Û°Êªº MP3 ½s½X«eºÝ¡AÁÙ¥i¥H¦Û°Ê¦a±q Internet ¤W +ªº¥úºÐ¸ê®Æ®w¤¤¬d¸ß¥úºÐ¦±¥Ø¡C¦pªG¨ó¦P DigitalDJ µ{¦¡¤@°_¤u§@¡A±z¥i¥H«Ø¥ß +¦Û¤vªº¡u¹q¸£¤Æ¡vªº­µ¼Ö®w¡C + +%description -l fr +Grip est un lecteur-extracteur de CD pour le Bureau GNome. Il a des +capacités d'extraction du type cdparanoia incluses, mais il peut utiliser +un extracteur externe (comme cdda2wav). Il fournis également une IHM +pour les encodeurs MP3 (ou d'autres format audio), permettant simplement +de prendre un disque et de le transformer en MP3. La récupération des noms +sur Internet permet également d'avoir les informations sur les pistes +auprès des serveurs CDDB. +Grip fonctionne également avec DigitalDJ pour fournir une version unifiée +informatique de votre discothèque. + +%description -l de +Grip ist ein CD-Spieler und CD-Ripper für den Gnome Desktop. Die Fähigkeiten +von cdparanoia sind statisch mit eingebunden, es können aber auch externe +Ripper (wie cdda2wav) verwendet werden. Grip dient auch als automatisiertes +Front-End für MP3/OGG/... Kodierer und ermöglicht somit eine Audio-CD einfach +in MP3s zu verwandeln. Aus dem Internet können Titelinformationen von CDDB +Datenbank-Servern abgerufen werden. Grip arbeitet zusammen mit DigitalDJ um +eine einheitliche "computerisierte" Musikkollektion anbieten zu können. + + +%prep +rm -rf $RPM_BUILD_ROOT +%setup + +%build +./configure --prefix=%{_prefix} --disable-shared-cdpar --disable-shared-id3 +make + +%install +rm -rf $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT + +make prefix=$RPM_BUILD_ROOT%{prefix} install + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-, root, root) +%doc README ChangeLog CREDITS COPYING INSTALL NEWS AUTHORS TODO ABOUT-NLS +%{_bindir}/grip +%{_datadir}/gnome/help/grip +%{_datadir}/applications/grip.desktop +%{_datadir}/pixmaps/gripicon.png +%{_datadir}/pixmaps/griptray.png +%{_datadir}/locale/*/LC_MESSAGES/@GETTEXT_PACKAGE@.mo + +%changelog +* Fri May 24 2002 Thomas Vander Stichele +- added Requires: and BuildRequires: + +* Thu Apr 25 2002 Anthony Fok +- Added Traditional Chinese translations (based on Merlin's translations) + +* Thu Apr 04 2002 Merlin Ma +- Added Simplified Chinese translations. +- Added locale dir and files in %files +- Modified spec file. + +* Mon Jan 28 2002 Eric Lassauge +- Added french translations diff --git a/install-sh b/install-sh new file mode 100755 index 0000000..e9de238 --- /dev/null +++ b/install-sh @@ -0,0 +1,251 @@ +#!/bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5 (mit/util/scripts/install.sh). +# +# Copyright 1991 by the Massachusetts Institute of Technology +# +# Permission to use, copy, modify, distribute, and sell this software and its +# documentation for any purpose is hereby granted without fee, provided that +# the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in advertising or +# publicity pertaining to distribution of the software without specific, +# written prior permission. M.I.T. makes no representations about the +# suitability of this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. It can only install one file at a time, a restriction +# shared with many OS's install programs. + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + chmodcmd="" + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff --git a/ltconfig b/ltconfig new file mode 100755 index 0000000..c14d83c --- /dev/null +++ b/ltconfig @@ -0,0 +1,3114 @@ +#! /bin/sh + +# ltconfig - Create a system-specific libtool. +# Copyright (C) 1996-1999 Free Software Foundation, Inc. +# Originally by Gordon Matzigkeit , 1996 +# +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A lot of this script is taken from autoconf-2.10. + +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} +echo=echo +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec "$SHELL" "$0" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null`} + case X$UNAME in + *-DOS) PATH_SEPARATOR=';' ;; + *) PATH_SEPARATOR=':' ;; + esac +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi + +if test "X${echo_test_string+set}" != Xset; then + # find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if (echo_test_string="`eval $cmd`") 2>/dev/null && + echo_test_string="`eval $cmd`" && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" != 'X\t' || + test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" + for dir in $PATH /usr/ucb; do + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running ltconfig again with it. + ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}" + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"} + else + # Try using printf. + echo='printf "%s\n"' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then + # Cool, printf works + : + elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && + test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then + CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL" + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL $0 --fallback-echo" + elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && + test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then + echo="$CONFIG_SHELL $0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "$0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e s/^X//' +sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# The name of this program. +progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'` + +# Constants: +PROGRAM=ltconfig +PACKAGE=libtool +VERSION=1.3.5 +TIMESTAMP=" (1.385.2.206 2000/05/27 11:12:27)" +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +rm="rm -f" + +help="Try \`$progname --help' for more information." + +# Global variables: +default_ofile=libtool +can_build_shared=yes +enable_shared=yes +# All known linkers require a `.a' archive for static linking (except M$VC, +# which needs '.lib'). +enable_static=yes +enable_fast_install=yes +enable_dlopen=unknown +enable_win32_dll=no +ltmain= +silent= +srcdir= +ac_config_guess= +ac_config_sub= +host= +nonopt= +ofile="$default_ofile" +verify_host=yes +with_gcc=no +with_gnu_ld=no +need_locks=yes +ac_ext=c +objext=o +libext=a +exeext= +cache_file= + +old_AR="$AR" +old_CC="$CC" +old_CFLAGS="$CFLAGS" +old_CPPFLAGS="$CPPFLAGS" +old_LDFLAGS="$LDFLAGS" +old_LD="$LD" +old_LN_S="$LN_S" +old_LIBS="$LIBS" +old_NM="$NM" +old_RANLIB="$RANLIB" +old_DLLTOOL="$DLLTOOL" +old_OBJDUMP="$OBJDUMP" +old_AS="$AS" + +# Parse the command line options. +args= +prev= +for option +do + case "$option" in + -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + eval "$prev=\$option" + prev= + continue + fi + + case "$option" in + --help) cat <&2 + echo "$help" 1>&2 + exit 1 + ;; + + *) + if test -z "$ltmain"; then + ltmain="$option" + elif test -z "$host"; then +# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1 +# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then +# echo "$progname: warning \`$option' is not a valid host type" 1>&2 +# fi + host="$option" + else + echo "$progname: too many arguments" 1>&2 + echo "$help" 1>&2 + exit 1 + fi ;; + esac +done + +if test -z "$ltmain"; then + echo "$progname: you must specify a LTMAIN file" 1>&2 + echo "$help" 1>&2 + exit 1 +fi + +if test ! -f "$ltmain"; then + echo "$progname: \`$ltmain' does not exist" 1>&2 + echo "$help" 1>&2 + exit 1 +fi + +# Quote any args containing shell metacharacters. +ltconfig_args= +for arg +do + case "$arg" in + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ltconfig_args="$ltconfig_args '$arg'" ;; + *) ltconfig_args="$ltconfig_args $arg" ;; + esac +done + +# A relevant subset of AC_INIT. + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 5 compiler messages saved in config.log +# 6 checking for... messages and results +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>>./config.log + +# NLS nuisances. +# Only set LANG and LC_ALL to C if already set. +# These must not be set unconditionally because not all systems understand +# e.g. LANG=C (notably SCO). +if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi +if test "X${LANG+set}" = Xset; then LANG=C; export LANG; fi + +if test -n "$cache_file" && test -r "$cache_file"; then + echo "loading cache $cache_file within ltconfig" + . $cache_file +fi + +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + +if test -z "$srcdir"; then + # Assume the source directory is the same one as the path to LTMAIN. + srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'` + test "$srcdir" = "$ltmain" && srcdir=. +fi + +trap "$rm conftest*; exit 1" 1 2 15 +if test "$verify_host" = yes; then + # Check for config.guess and config.sub. + ac_aux_dir= + for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/config.guess; then + ac_aux_dir=$ac_dir + break + fi + done + if test -z "$ac_aux_dir"; then + echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2 + echo "$help" 1>&2 + exit 1 + fi + ac_config_guess=$ac_aux_dir/config.guess + ac_config_sub=$ac_aux_dir/config.sub + + # Make sure we can run config.sub. + if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then : + else + echo "$progname: cannot run $ac_config_sub" 1>&2 + echo "$help" 1>&2 + exit 1 + fi + + echo $ac_n "checking host system type""... $ac_c" 1>&6 + + host_alias=$host + case "$host_alias" in + "") + if host_alias=`$SHELL $ac_config_guess`; then : + else + echo "$progname: cannot guess host type; you must specify one" 1>&2 + echo "$help" 1>&2 + exit 1 + fi ;; + esac + host=`$SHELL $ac_config_sub $host_alias` + echo "$ac_t$host" 1>&6 + + # Make sure the host verified. + test -z "$host" && exit 1 + +elif test -z "$host"; then + echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2 + echo "$help" 1>&2 + exit 1 +else + host_alias=$host +fi + +# Transform linux* to *-*-linux-gnu*, to support old configure scripts. +case "$host_os" in +linux-gnu*) ;; +linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` +esac + +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + +case "$host_os" in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR cru $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +# Set a sane default for `AR'. +test -z "$AR" && AR=ar + +# Set a sane default for `OBJDUMP'. +test -z "$OBJDUMP" && OBJDUMP=objdump + +# If RANLIB is not set, then run the test. +if test "${RANLIB+set}" != "set"; then + result=no + + echo $ac_n "checking for ranlib... $ac_c" 1>&6 + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" + for dir in $PATH; do + test -z "$dir" && dir=. + if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then + RANLIB="ranlib" + result="ranlib" + break + fi + done + IFS="$save_ifs" + + echo "$ac_t$result" 1>&6 +fi + +if test -n "$RANLIB"; then + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" +fi + +# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin. +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$AS" && AS=as + +# Check to see if we are using GCC. +if test "$with_gcc" != yes || test -z "$CC"; then + # If CC is not set, then try to find GCC or a usable CC. + if test -z "$CC"; then + echo $ac_n "checking for gcc... $ac_c" 1>&6 + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" + for dir in $PATH; do + test -z "$dir" && dir=. + if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then + CC="gcc" + break + fi + done + IFS="$save_ifs" + + if test -n "$CC"; then + echo "$ac_t$CC" 1>&6 + else + echo "$ac_t"no 1>&6 + fi + fi + + # Not "gcc", so try "cc", rejecting "/usr/ucb/cc". + if test -z "$CC"; then + echo $ac_n "checking for cc... $ac_c" 1>&6 + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" + cc_rejected=no + for dir in $PATH; do + test -z "$dir" && dir=. + if test -f $dir/cc || test -f $dir/cc$ac_exeext; then + if test "$dir/cc" = "/usr/ucb/cc"; then + cc_rejected=yes + continue + fi + CC="cc" + break + fi + done + IFS="$save_ifs" + if test $cc_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same name, so the bogon will be chosen + # first if we set CC to just the name; use the full file name. + shift + set dummy "$dir/cc" "$@" + shift + CC="$@" + fi + fi + + if test -n "$CC"; then + echo "$ac_t$CC" 1>&6 + else + echo "$ac_t"no 1>&6 + fi + + if test -z "$CC"; then + echo "$progname: error: no acceptable cc found in \$PATH" 1>&2 + exit 1 + fi + fi + + # Now see if the compiler is really GCC. + with_gcc=no + echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 + echo "$progname:581: checking whether we are using GNU C" >&5 + + $rm conftest.c + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + with_gcc=yes + fi + $rm conftest.c + echo "$ac_t$with_gcc" 1>&6 +fi + +# Allow CC to be a program name with arguments. +set dummy $CC +compiler="$2" + +echo $ac_n "checking for object suffix... $ac_c" 1>&6 +$rm conftest* +echo 'int i = 1;' > conftest.c +echo "$progname:603: checking for object suffix" >& 5 +if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then + # Append any warnings to the config.log. + cat conftest.err 1>&5 + + for ac_file in conftest.*; do + case $ac_file in + *.c) ;; + *) objext=`echo $ac_file | sed -e s/conftest.//` ;; + esac + done +else + cat conftest.err 1>&5 + echo "$progname: failed program was:" >&5 + cat conftest.c >&5 +fi +$rm conftest* +echo "$ac_t$objext" 1>&6 + +echo $ac_n "checking for executable suffix... $ac_c" 1>&6 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_cv_exeext="no" + $rm conftest* + echo 'main () { return 0; }' > conftest.c + echo "$progname:629: checking for executable suffix" >& 5 + if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then + # Append any warnings to the config.log. + cat conftest.err 1>&5 + + for ac_file in conftest.*; do + case $ac_file in + *.c | *.err | *.$objext ) ;; + *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;; + esac + done + else + cat conftest.err 1>&5 + echo "$progname: failed program was:" >&5 + cat conftest.c >&5 + fi + $rm conftest* +fi +if test "X$ac_cv_exeext" = Xno; then + exeext="" +else + exeext="$ac_cv_exeext" +fi +echo "$ac_t$ac_cv_exeext" 1>&6 + +echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 +pic_flag= +special_shlib_compile_flags= +wl= +link_static_flag= +no_builtin_flag= + +if test "$with_gcc" = yes; then + wl='-Wl,' + link_static_flag='-static' + + case "$host_os" in + beos* | irix5* | irix6* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + aix*) + # Below there is a dirty hack to force normal static linking with -ldl + # The problem is because libdl dynamically linked with both libc and + # libC (AIX C++ library), which obviously doesn't included in libraries + # list by gcc. This cause undefined symbols with -static flags. + # This hack allows C programs to be linked with "-static -ldl", but + # we not sure about C++ programs. + link_static_flag="$link_static_flag ${wl}-lC" + ;; + cygwin* | mingw* | os2*) + # We can build DLLs from non-PIC. + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + pic_flag='-m68020 -resident32 -malways-restore-a4' + ;; + sysv4*MP*) + if test -d /usr/nec; then + pic_flag=-Kconform_pic + fi + ;; + *) + pic_flag='-fPIC' + ;; + esac +else + # PORTME Check for PIC flags for the system compiler. + case "$host_os" in + aix3* | aix4*) + # All AIX code is PIC. + link_static_flag='-bnso -bI:/lib/syscalls.exp' + ;; + + hpux9* | hpux10* | hpux11*) + # Is there a better link_static_flag that works with the bundled CC? + wl='-Wl,' + link_static_flag="${wl}-a ${wl}archive" + pic_flag='+Z' + ;; + + irix5* | irix6*) + wl='-Wl,' + link_static_flag='-non_shared' + # PIC (with -KPIC) is the default. + ;; + + cygwin* | mingw* | os2*) + # We can build DLLs from non-PIC. + ;; + + osf3* | osf4* | osf5*) + # All OSF/1 code is PIC. + wl='-Wl,' + link_static_flag='-non_shared' + ;; + + sco3.2v5*) + pic_flag='-Kpic' + link_static_flag='-dn' + special_shlib_compile_flags='-belf' + ;; + + solaris*) + pic_flag='-KPIC' + link_static_flag='-Bstatic' + wl='-Wl,' + ;; + + sunos4*) + pic_flag='-PIC' + link_static_flag='-Bstatic' + wl='-Qoption ld ' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + pic_flag='-KPIC' + link_static_flag='-Bstatic' + wl='-Wl,' + ;; + + uts4*) + pic_flag='-pic' + link_static_flag='-Bstatic' + ;; + sysv4*MP*) + if test -d /usr/nec ;then + pic_flag='-Kconform_pic' + link_static_flag='-Bstatic' + fi + ;; + *) + can_build_shared=no + ;; + esac +fi + +if test -n "$pic_flag"; then + echo "$ac_t$pic_flag" 1>&6 + + # Check to make sure the pic_flag actually works. + echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6 + $rm conftest* + echo "int some_variable = 0;" > conftest.c + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $pic_flag -DPIC" + echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5 + if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then + # Append any warnings to the config.log. + cat conftest.err 1>&5 + + case "$host_os" in + hpux9* | hpux10* | hpux11*) + # On HP-UX, both CC and GCC only warn that PIC is supported... then they + # create non-PIC objects. So, if there were any warnings, we assume that + # PIC is not supported. + if test -s conftest.err; then + echo "$ac_t"no 1>&6 + can_build_shared=no + pic_flag= + else + echo "$ac_t"yes 1>&6 + pic_flag=" $pic_flag" + fi + ;; + *) + echo "$ac_t"yes 1>&6 + pic_flag=" $pic_flag" + ;; + esac + else + # Append any errors to the config.log. + cat conftest.err 1>&5 + can_build_shared=no + pic_flag= + echo "$ac_t"no 1>&6 + fi + CFLAGS="$save_CFLAGS" + $rm conftest* +else + echo "$ac_t"none 1>&6 +fi + +# Check to see if options -o and -c are simultaneously supported by compiler +echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6 +$rm -r conftest 2>/dev/null +mkdir conftest +cd conftest +$rm conftest* +echo "int some_variable = 0;" > conftest.c +mkdir out +# According to Tom Tromey, Ian Lance Taylor reported there are C compilers +# that will create temporary files in the current directory regardless of +# the output directory. Thus, making CWD read-only will cause this test +# to fail, enabling locking or at least warning the user not to do parallel +# builds. +chmod -w . +save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -o out/conftest2.o" +echo "$progname:829: checking if $compiler supports -c -o file.o" >&5 +if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then + + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s out/conftest.err; then + echo "$ac_t"no 1>&6 + compiler_c_o=no + else + echo "$ac_t"yes 1>&6 + compiler_c_o=yes + fi +else + # Append any errors to the config.log. + cat out/conftest.err 1>&5 + compiler_c_o=no + echo "$ac_t"no 1>&6 +fi +CFLAGS="$save_CFLAGS" +chmod u+w . +$rm conftest* out/* +rmdir out +cd .. +rmdir conftest +$rm -r conftest 2>/dev/null + +if test x"$compiler_c_o" = x"yes"; then + # Check to see if we can write to a .lo + echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6 + $rm conftest* + echo "int some_variable = 0;" > conftest.c + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -c -o conftest.lo" + echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5 +if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then + + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + echo "$ac_t"no 1>&6 + compiler_o_lo=no + else + echo "$ac_t"yes 1>&6 + compiler_o_lo=yes + fi + else + # Append any errors to the config.log. + cat conftest.err 1>&5 + compiler_o_lo=no + echo "$ac_t"no 1>&6 + fi + CFLAGS="$save_CFLAGS" + $rm conftest* +else + compiler_o_lo=no +fi + +# Check to see if we can do hard links to lock some files if needed +hard_links="nottested" +if test "$compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6 + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + echo "$ac_t$hard_links" 1>&6 + $rm conftest* + if test "$hard_links" = no; then + echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2 + need_locks=warn + fi +else + need_locks=no +fi + +if test "$with_gcc" = yes; then + # Check to see if options -fno-rtti -fno-exceptions are supported by compiler + echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6 + $rm conftest* + echo "int some_variable = 0;" > conftest.c + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c" + echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 + if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then + + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + echo "$ac_t"no 1>&6 + compiler_rtti_exceptions=no + else + echo "$ac_t"yes 1>&6 + compiler_rtti_exceptions=yes + fi + else + # Append any errors to the config.log. + cat conftest.err 1>&5 + compiler_rtti_exceptions=no + echo "$ac_t"no 1>&6 + fi + CFLAGS="$save_CFLAGS" + $rm conftest* + + if test "$compiler_rtti_exceptions" = "yes"; then + no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' + else + no_builtin_flag=' -fno-builtin' + fi + +fi + +# Check for any special shared library compilation flags. +if test -n "$special_shlib_compile_flags"; then + echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2 + if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$special_shlib_compile_flags[ ]" >/dev/null; then : + else + echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2 + can_build_shared=no + fi +fi + +echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6 +$rm conftest* +echo 'main(){return(0);}' > conftest.c +save_LDFLAGS="$LDFLAGS" +LDFLAGS="$LDFLAGS $link_static_flag" +echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5 +if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + echo "$ac_t$link_static_flag" 1>&6 +else + echo "$ac_t"none 1>&6 + link_static_flag= +fi +LDFLAGS="$save_LDFLAGS" +$rm conftest* + +if test -z "$LN_S"; then + # Check to see if we can use ln -s, or we need hard links. + echo $ac_n "checking whether ln -s works... $ac_c" 1>&6 + $rm conftest.dat + if ln -s X conftest.dat 2>/dev/null; then + $rm conftest.dat + LN_S="ln -s" + else + LN_S=ln + fi + if test "$LN_S" = "ln -s"; then + echo "$ac_t"yes 1>&6 + else + echo "$ac_t"no 1>&6 + fi +fi + +# Make sure LD is an absolute path. +if test -z "$LD"; then + ac_prog=ld + if test "$with_gcc" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 + echo "$progname:991: checking for ld used by GCC" >&5 + ac_prog=`($CC -print-prog-name=ld) 2>&5` + case "$ac_prog" in + # Accept absolute paths. + [\\/]* | [A-Za-z]:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we are not using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac + elif test "$with_gnu_ld" = yes; then + echo $ac_n "checking for GNU ld... $ac_c" 1>&6 + echo "$progname:1015: checking for GNU ld" >&5 + else + echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 + echo "$progname:1018: checking for non-GNU ld" >&5 + fi + + if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break + fi + fi + done + IFS="$ac_save_ifs" + fi + + if test -n "$LD"; then + echo "$ac_t$LD" 1>&6 + else + echo "$ac_t"no 1>&6 + fi + + if test -z "$LD"; then + echo "$progname: error: no acceptable ld found in \$PATH" 1>&2 + exit 1 + fi +fi + +# Check to see if it really is or is not GNU ld. +echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6 +# I'd rather use --version here, but apparently some GNU ld's only accept -v. +if $LD -v 2>&1 &5; then + with_gnu_ld=yes +else + with_gnu_ld=no +fi +echo "$ac_t$with_gnu_ld" 1>&6 + +# See if the linker supports building shared libraries. +echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6 + +allow_undefined_flag= +no_undefined_flag= +need_lib_prefix=unknown +need_version=unknown +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +archive_cmds= +archive_expsym_cmds= +old_archive_from_new_cmds= +export_dynamic_flag_spec= +whole_archive_flag_spec= +thread_safe_flag_spec= +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no +hardcode_shlibpath_var=unsupported +runpath_var= +always_export_symbols=no +export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' +# include_expsyms should be a list of space-separated symbols to be *always* +# included in the symbol list +include_expsyms= +# exclude_expsyms can be an egrep regular expression of symbols to exclude +# it will be wrapped by ` (' and `)$', so one must not match beginning or +# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', +# as well as any symbol that contains `d'. +exclude_expsyms="_GLOBAL_OFFSET_TABLE_" +# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out +# platforms (ab)use it in PIC code, but their linkers get confused if +# the symbol is explicitly referenced. Since portable code cannot +# rely on this symbol name, it's probably fine to never include it in +# preloaded symbol tables. + +case "$host_os" in +cygwin* | mingw*) + # 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 "$with_gcc" != yes; then + with_gnu_ld=no + fi + ;; + +esac + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # See if GNU ld supports shared libraries. + case "$host_os" in + aix3* | aix4*) + # On AIX, the GNU linker is very broken + ld_shlibs=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + ;; + + amigaos*) + archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can use + # them. + ld_shlibs=no + ;; + + beos*) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw*) + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + allow_undefined_flag=unsupported + always_export_symbols=yes + + # Extract the symbol export list from an `--export-all' def file, + # then regenerate the def file from the symbol export list, so that + # the compiled dll only exports the symbol export list. + # Be careful not to strip the DATA tag left by newer dlltools. + export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ + test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ + $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs $convenience~ + sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $objdir/$soname-def > $export_symbols' + + # If DATA tags from a recent dlltool are present, honour them! + archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~ + _lt_hint=1; + cat $export_symbols | while read symbol; do + set dummy \$symbol; + case \$# in + 2) echo " \$2 @ \$_lt_hint ; " >> $objdir/$soname-def;; + *) echo " \$2 @ \$_lt_hint \$3 ; " >> $objdir/$soname-def;; + esac; + _lt_hint=`expr 1 + \$_lt_hint`; + done~ + test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ + test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ + $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ + $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ + $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ + $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ + $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts' + + old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a' + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib' + # can we support soname and/or expsyms with a.out? -oliva + fi + ;; + + solaris* | sysv5*) + if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linkopts' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = yes; then + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + case $host_os in + cygwin* | mingw*) + # dlltool doesn't understand --whole-archive et. al. + whole_archive_flag_spec= + ;; + *) + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + ;; + esac + fi +else + # PORTME fill in a description of your system's linker (not GNU ld) + case "$host_os" in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$with_gcc" = yes && test -z "$link_static_flag"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix4*) + hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib' + hardcode_libdir_separator=':' + if test "$with_gcc" = yes; then + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct=yes + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + shared_flag='-shared' + else + shared_flag='${wl}-bM:SRE' + hardcode_direct=yes + fi + allow_undefined_flag=' ${wl}-berok' + archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}' + archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}' + case "$host_os" in aix4.[01]|aix4.[01].*) + # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on + always_export_symbols=yes ;; + esac + ;; + + amigaos*) + archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + + cygwin* | mingw*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib /OUT:$oldlib$oldobjs' + fix_srcfile_path='`cygpath -w $srcfile`' + ;; + + freebsd1*) + ld_shlibs=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /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 $linkopts' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd*) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9* | hpux10* | hpux11*) + case "$host_os" in + hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;; + *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;; + esac + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_minus_L=yes # Not in the search PATH, but as the default + # location of the library. + export_dynamic_flag_spec='${wl}-E' + ;; + + irix5* | irix6*) + if test "$with_gcc" = yes; then + archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + else + archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts' # ELF + fi + hardcode_libdir_flag_spec='${wl}-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + openbsd*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' + ;; + + osf3*) + if test "$with_gcc" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # As osf3* with the addition of the -msym flag + if test "$with_gcc" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + rhapsody*) + archive_cmds='$CC -bundle -undefined suppress -o $lib $libobjs $deplibs $linkopts' + hardcode_libdir_flags_spec='-L$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + sco3.2v5*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ;; + + solaris*) + no_undefined_flag=' -z text' + # $CC -shared without GNU ld will not create a library from C++ + # object files and a static libstdc++, better avoid it by now + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts' + 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 $linkopts~$rm $lib.exp' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case "$host_os" in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $linkopts' + else + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' + fi + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv5*) + no_undefined_flag=' -z text' + # $CC -shared without GNU ld will not create a library from C++ + # object files and a static libstdc++, better avoid it by now + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts' + 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 $linkopts~$rm $lib.exp' + hardcode_libdir_flag_spec= + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4.2uw2*) + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts' + hardcode_direct=yes + hardcode_minus_L=no + hardcode_shlibpath_var=no + hardcode_runpath_var=yes + runpath_var=LD_RUN_PATH + ;; + + unixware7*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac +fi +echo "$ac_t$ld_shlibs" 1>&6 +test "$ld_shlibs" = no && can_build_shared=no + +if test -z "$NM"; then + echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6 + case "$NM" in + [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path. + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" + for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/nm || test -f $ac_dir/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 + if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then + NM="$ac_dir/nm -B" + break + elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then + NM="$ac_dir/nm -p" + break + else + NM=${NM="$ac_dir/nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + fi + fi + done + IFS="$ac_save_ifs" + test -z "$NM" && NM=nm + ;; + esac + echo "$ac_t$NM" 1>&6 +fi + +# Check for command to grab the raw symbol name followed by C symbol from nm. +echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6 + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Transform the above into a raw symbol and a C symbol. +symxfrm='\1 \2\3 \3' + +# Transform an extracted symbol line into a proper C declaration +global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" + +# Define system-specific variables. +case "$host_os" in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw*) + symcode='[ABCDGISTW]' + ;; +hpux*) # Its linker distinguishes data from code symbols + global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'" + ;; +irix*) + symcode='[BCDEGRST]' + ;; +solaris*) + symcode='[BDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then + symcode='[ABCDGISTW]' +fi + +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do + + # Write the raw and C identifiers. + global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode\)[ ][ ]*\($ac_symprfx\)$sympat$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + $rm conftest* + cat > conftest.c <&5 + if { (eval echo $progname:1654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then + # Now try to grab the symbols. + nlist=conftest.nm + if { echo "$progname:1657: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then + + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if egrep ' nm_test_var$' "$nlist" >/dev/null; then + if egrep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.c +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c' + + cat <> conftest.c +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[] = +{ +EOF + sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c + cat <<\EOF >> conftest.c + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$objext conftstm.$objext + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="conftstm.$objext" + CFLAGS="$CFLAGS$no_builtin_flag" + if { (eval echo $progname:1709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + pipe_works=yes + else + echo "$progname: failed program was:" >&5 + cat conftest.c >&5 + fi + LIBS="$save_LIBS" + 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 $global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.c >&5 + fi + $rm conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + global_symbol_pipe= + fi +done +if test "$pipe_works" = yes; then + echo "${ac_t}ok" 1>&6 +else + echo "${ac_t}failed" 1>&6 +fi + +if test -z "$global_symbol_pipe"; then + global_symbol_to_cdecl= +fi + +# Check hardcoding attributes. +echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6 +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || \ + test -n "$runpath_var"; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$hardcode_shlibpath_var" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +echo "$ac_t$hardcode_action" 1>&6 + + +reload_flag= +reload_cmds='$LD$reload_flag -o $output$reload_objs' +echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6 +# PORTME Some linkers may need a different reload flag. +reload_flag='-r' +echo "$ac_t$reload_flag" 1>&6 +test -n "$reload_flag" && reload_flag=" $reload_flag" + +# PORTME Fill in your ld.so characteristics +library_names_spec= +libname_spec='lib$name' +soname_spec= +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +file_magic_cmd= +file_magic_test_file= +deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [regex]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given egrep regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. +echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6 +case "$host_os" in +aix3*) + version_type=linux + library_names_spec='${libname}${release}.so$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}.so$major' + ;; + +aix4*) + version_type=linux + # AIX has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + # We preserve .a as extension for shared libraries though AIX4.2 + # and later linker supports .so + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a' + shlibpath_var=LIBPATH + deplibs_check_method=pass_all + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}.so' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + deplibs_check_method=pass_all + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + +bsdi4*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + file_magic_cmd=/usr/bin/file + file_magic_test_file=/shlib/libc.so + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + export_dynamic_flag_spec=-rdynamic + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw*) + version_type=windows + need_version=no + need_lib_prefix=no + if test "$with_gcc" = yes; then + library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a' + else + library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' + fi + dynamic_linker='Win32 ld.exe' + deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + file_magic_cmd='${OBJDUMP} -f' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd*) + objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + version_type=freebsd-$objformat + case "$version_type" in + freebsd-elf*) + deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' + file_magic_cmd=/usr/bin/file + file_magic_test_file=`echo /usr/lib/libc.so*` + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + deplibs_check_method=unknown + library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case "$host_os" in + freebsd2* | freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + ;; + *) # from 3.2 on + shlibpath_overrides_runpath=no + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + dynamic_linker="$host_os dld.sl" + version_type=sunos + need_lib_prefix=no + need_version=no + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' + soname_spec='${libname}${release}.sl$major' + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + case "$host_os" in + hpux10.20*) + # TODO: Does this work for hpux-11 too? + deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + file_magic_cmd=/usr/bin/file + file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +irix5* | irix6*) + version_type=irix + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}.so.$major' + library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so' + case "$host_os" in + irix5*) + libsuff= shlibsuff= + # this will be overridden with pass_all, but let us keep it just in case + deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" + ;; + *) + case "$LD" in # libtool.m4 will add one of these switches to LD + *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + file_magic_cmd=/usr/bin/file + file_magic_test_file=`echo /lib${libsuff}/libc.so*` + deplibs_check_method='pass_all' + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux-gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + deplibs_check_method=pass_all + + if test -f /lib/ld.so.1; then + dynamic_linker='GNU ld.so' + else + # Only the GNU ld.so supports shared libraries on MkLinux. + case "$host_cpu" in + powerpc*) dynamic_linker=no ;; + *) dynamic_linker='Linux ld.so' ;; + esac + fi + ;; + +netbsd*) + version_type=sunos + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' + soname_spec='${libname}${release}.so$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + ;; + +openbsd*) + version_type=sunos + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + need_version=no + fi + library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + ;; + +os2*) + libname_spec='$name' + need_lib_prefix=no + library_names_spec='$libname.dll $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_version=no + soname_spec='${libname}${release}.so' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' + shlibpath_var=LD_LIBRARY_PATH + # this will be overridden with pass_all, but let us keep it just in case + deplibs_check_method='file_magic COFF format alpha shared library' + file_magic_cmd=/usr/bin/file + file_magic_test_file=/shlib/libc.so + deplibs_check_method='pass_all' + 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" + ;; + +rhapsody*) + version_type=sunos + library_names_spec='${libname}.so' + soname_spec='${libname}.so' + shlibpath_var=DYLD_LIBRARY_PATH + deplibs_check_method=pass_all + ;; + +sco3.2v5*) + version_type=osf + soname_spec='${libname}${release}.so$major' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + shlibpath_var=LD_LIBRARY_PATH + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib" + file_magic_cmd=/usr/bin/file + file_magic_test_file=/lib/libc.so + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + version_type=linux + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + case "$host_vendor" in + sequent) + file_magic_cmd='/bin/file' + deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + ncr) + deplibs_check_method='pass_all' + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + 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]' + file_magic_cmd=/usr/bin/file + file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + esac + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' + soname_spec='$libname.so.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +*) + dynamic_linker=no + ;; +esac +echo "$ac_t$dynamic_linker" 1>&6 +test "$dynamic_linker" = no && can_build_shared=no + +# Report the final consequences. +echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 + +# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in +# configure.in, otherwise build static only libraries. +case "$host_os" in +cygwin* | mingw* | os2*) + if test x$can_build_shared = xyes; then + test x$enable_win32_dll = xno && can_build_shared=no + echo "checking if package supports dlls... $can_build_shared" 1>&6 + fi +;; +esac + +if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then + case "$deplibs_check_method" in + "file_magic "*) + file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + egrep "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac +fi + +echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6 +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case "$host_os" in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4*) + test "$enable_shared" = yes && enable_static=no + ;; +esac + +echo "$ac_t$enable_shared" 1>&6 + +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes + +echo "checking whether to build static libraries... $enable_static" 1>&6 + +if test "$hardcode_action" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + +echo $ac_n "checking for objdir... $ac_c" 1>&6 +rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + objdir=_libs +fi +rmdir .libs 2>/dev/null +echo "$ac_t$objdir" 1>&6 + +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else +if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then + lt_cv_dlopen=no lt_cv_dlopen_libs= +echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 +echo "$progname:2248: checking for dlopen in -ldl" >&5 +ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldl $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + echo "$ac_t""no" 1>&6 +echo $ac_n "checking for dlopen""... $ac_c" 1>&6 +echo "$progname:2288: checking for dlopen" >&5 +if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_dlopen) || defined (__stub___dlopen) +choke me +#else +dlopen(); +#endif + +; return 0; } +EOF +if { (eval echo $progname:2318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_dlopen=yes" +else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_dlopen=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then + echo "$ac_t""yes" 1>&6 + lt_cv_dlopen="dlopen" +else + echo "$ac_t""no" 1>&6 +echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 +echo "$progname:2335: checking for dld_link in -ldld" >&5 +ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldld $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +else + echo "$ac_t""no" 1>&6 +echo $ac_n "checking for shl_load""... $ac_c" 1>&6 +echo "$progname:2375: checking for shl_load" >&5 +if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_shl_load) || defined (__stub___shl_load) +choke me +#else +shl_load(); +#endif + +; return 0; } +EOF +if { (eval echo $progname:2405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_shl_load=yes" +else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_shl_load=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then + echo "$ac_t""yes" 1>&6 + lt_cv_dlopen="shl_load" +else + echo "$ac_t""no" 1>&6 +echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 +echo "$progname:2423: checking for shl_load in -ldld" >&5 +ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldld $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + echo "$ac_t""no" 1>&6 +fi + + +fi + + +fi + + +fi + + +fi + +fi + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + fi + + case "$lt_cv_dlopen" in + dlopen) +for ac_hdr in dlfcn.h; do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "$progname:2488: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +int fnord = 0; +EOF +ac_try="$ac_compile >/dev/null 2>conftest.out" +{ (eval echo $progname:2498: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi +done + + if test "x$ac_cv_header_dlfcn_h" = xyes; then + CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + fi + eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + LIBS="$lt_cv_dlopen_libs $LIBS" + + echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6 +echo "$progname:2526: checking whether a program can dlopen itself" >&5 +if test "${lt_cv_dlopen_self+set}" = set; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$cross_compiling" = yes; then + lt_cv_dlopen_self=cross + else + cat > conftest.c < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LTDL_GLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LTDL_GLOBAL DL_GLOBAL +# else +# define LTDL_GLOBAL 0 +# endif +#endif + +/* We may have to define LTDL_LAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LTDL_LAZY_OR_NOW +# ifdef RTLD_LAZY +# define LTDL_LAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LTDL_LAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LTDL_LAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LTDL_LAZY_OR_NOW DL_NOW +# else +# define LTDL_LAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +fnord() { int i=42;} +main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); + if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); + if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } + +EOF +if { (eval echo $progname:2580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +then + lt_cv_dlopen_self=yes +else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + lt_cv_dlopen_self=no +fi +rm -fr conftest* +fi + +fi + +echo "$ac_t""$lt_cv_dlopen_self" 1>&6 + + if test "$lt_cv_dlopen_self" = yes; then + LDFLAGS="$LDFLAGS $link_static_flag" + echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6 +echo "$progname:2599: checking whether a statically linked program can dlopen itself" >&5 +if test "${lt_cv_dlopen_self_static+set}" = set; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$cross_compiling" = yes; then + lt_cv_dlopen_self_static=cross + else + cat > conftest.c < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LTDL_GLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LTDL_GLOBAL DL_GLOBAL +# else +# define LTDL_GLOBAL 0 +# endif +#endif + +/* We may have to define LTDL_LAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LTDL_LAZY_OR_NOW +# ifdef RTLD_LAZY +# define LTDL_LAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LTDL_LAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LTDL_LAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LTDL_LAZY_OR_NOW DL_NOW +# else +# define LTDL_LAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +fnord() { int i=42;} +main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); + if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); + if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } + +EOF +if { (eval echo $progname:2653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +then + lt_cv_dlopen_self_static=yes +else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + lt_cv_dlopen_self_static=no +fi +rm -fr conftest* +fi + +fi + +echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6 +fi + ;; + 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 + +# Copy echo and quote the copy, instead of the original, because it is +# used later. +ltecho="$echo" +if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then + ltecho="$CONFIG_SHELL \$0 --fallback-echo" +fi +LTSHELL="$SHELL" + +LTCONFIG_VERSION="$VERSION" + +# Only quote variables if we're using ltmain.sh. +case "$ltmain" in +*.sh) + # Now quote all the things that may contain metacharacters. + for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \ + old_LD old_LDFLAGS old_LIBS \ + old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \ + AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \ + reload_flag reload_cmds wl \ + pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ + thread_safe_flag_spec whole_archive_flag_spec libname_spec \ + library_names_spec soname_spec \ + RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ + old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \ + file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \ + finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ + hardcode_libdir_flag_spec hardcode_libdir_separator \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do + + case "$var" in + reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case "$ltecho" in + *'\$0 --fallback-echo"') + ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + + trap "$rm \"$ofile\"; exit 1" 1 2 15 + echo "creating $ofile" + $rm "$ofile" + cat < "$ofile" +#! $SHELL + +# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh. +# +# Copyright (C) 1996-1999 Free Software Foundation, Inc. +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="sed -e s/^X//" + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi + +### BEGIN LIBTOOL CONFIG +EOF + cfgfile="$ofile" + ;; + +*) + # Double-quote the variables that need it (for aesthetics). + for var in old_CC old_CFLAGS old_CPPFLAGS \ + old_LD old_LDFLAGS old_LIBS \ + old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do + eval "$var=\\\"\$var\\\"" + done + + # Just create a config file. + cfgfile="$ofile.cfg" + trap "$rm \"$cfgfile\"; exit 1" 1 2 15 + echo "creating $cfgfile" + $rm "$cfgfile" + cat < "$cfgfile" +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +EOF + ;; +esac + +cat <> "$cfgfile" +# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\ +# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\ +# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\ +# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\ +# $0$ltconfig_args +# +# Compiler and other test output produced by $progname, useful for +# debugging $progname, is in ./config.log if it exists. + +# The version of $progname that generated this script. +LTCONFIG_VERSION=$LTCONFIG_VERSION + +# Shell to use when invoking shell scripts. +SHELL=$LTSHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host + +# An echo program that does not interpret backslashes. +echo=$ltecho + +# The archiver. +AR=$AR + +# The default C compiler. +CC=$CC + +# The linker used to build libraries. +LD=$LD + +# Whether we need hard or soft links. +LN_S=$LN_S + +# A BSD-compatible nm program. +NM=$NM + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$reload_flag +reload_cmds=$reload_cmds + +# How to pass a linker flag through the compiler. +wl=$wl + +# Object file suffix (normally "o"). +objext="$objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$pic_flag + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$compiler_c_o + +# Can we write directly to a .lo ? +compiler_o_lo=$compiler_o_lo + +# Must we lock files when doing compilation ? +need_locks=$need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$link_static_flag + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$no_builtin_flag + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$whole_archive_flag_spec + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$thread_safe_flag_spec + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$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=$library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$RANLIB +old_archive_cmds=$old_archive_cmds +old_postinstall_cmds=$old_postinstall_cmds +old_postuninstall_cmds=$old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$old_archive_from_new_cmds + +# Commands used to build and install a shared archive. +archive_cmds=$archive_cmds +archive_expsym_cmds=$archive_expsym_cmds +postinstall_cmds=$postinstall_cmds +postuninstall_cmds=$postuninstall_cmds + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$allow_undefined_flag + +# Flag that forces no undefined symbols. +no_undefined_flag=$no_undefined_flag + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$global_symbol_to_cdecl + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$hardcode_libdir_separator + +# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$include_expsyms + +EOF + +case "$ltmain" in +*.sh) + echo '### END LIBTOOL CONFIG' >> "$ofile" + echo >> "$ofile" + case "$host_os" in + aix3*) + cat <<\EOF >> "$ofile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # Append the ltmain.sh script. + sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1) + # 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? + + chmod +x "$ofile" + ;; + +*) + # Compile the libtool program. + echo "FIXME: would compile $ltmain" + ;; +esac + +test -n "$cache_file" || exit 0 + +# AC_CACHE_SAVE +trap '' 1 2 15 +cat > confcache <<\EOF +# 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. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +exit 0 + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/ltmain.sh b/ltmain.sh new file mode 100644 index 0000000..2393e14 --- /dev/null +++ b/ltmain.sh @@ -0,0 +1,4946 @@ +# ltmain.sh - Provide generalized library-building support services. +# NOTE: Changing this file will not affect anything until you rerun configure. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Check that we have a working $echo. +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then + # Yippee, $echo works! + : +else + # Restart under the correct shell, and then maybe $echo will work. + exec $SHELL "$0" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat <&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit 1 +fi + +# Global variables. +mode=$default_mode +nonopt= +prev= +prevopt= +run= +show="$echo" +show_help= +execute_dlfiles= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" + +# Parse our command line options once, thoroughly. +while test $# -gt 0 +do + arg="$1" + shift + + case $arg in + -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + execute_dlfiles) + execute_dlfiles="$execute_dlfiles $arg" + ;; + *) + eval "$prev=\$arg" + ;; + esac + + prev= + prevopt= + continue + fi + + # Have we seen a non-optional argument yet? + case $arg in + --help) + show_help=yes + ;; + + --version) + echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" + exit 0 + ;; + + --config) + sed -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 + exit 0 + ;; + + --debug) + echo "$progname: enabling shell trace mode" + set -x + ;; + + --dry-run | -n) + run=: + ;; + + --features) + echo "host: $host" + if test "$build_libtool_libs" = yes; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + exit 0 + ;; + + --finish) mode="finish" ;; + + --mode) prevopt="--mode" prev=mode ;; + --mode=*) mode="$optarg" ;; + + --quiet | --silent) + show=: + ;; + + -dlopen) + prevopt="-dlopen" + prev=execute_dlfiles + ;; + + -*) + $echo "$modename: unrecognized option \`$arg'" 1>&2 + $echo "$help" 1>&2 + exit 1 + ;; + + *) + nonopt="$arg" + break + ;; + esac +done + +if test -n "$prevopt"; then + $echo "$modename: option \`$prevopt' requires an argument" 1>&2 + $echo "$help" 1>&2 + exit 1 +fi + +if test -z "$show_help"; then + + # Infer the operation mode. + if test -z "$mode"; then + case $nonopt in + *cc | *++ | gcc* | *-gcc*) + mode=link + for arg + do + case $arg in + -c) + mode=compile + break + ;; + esac + done + ;; + *db | *dbx | *strace | *truss) + mode=execute + ;; + *install*|cp|mv) + mode=install + ;; + *rm) + mode=uninstall + ;; + *) + # If we have no mode, but dlfiles were specified, then do execute mode. + test -n "$execute_dlfiles" && mode=execute + + # Just use the default operation mode. + if test -z "$mode"; then + if test -n "$nonopt"; then + $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 + else + $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 + fi + fi + ;; + esac + fi + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$execute_dlfiles" && test "$mode" != execute; then + $echo "$modename: unrecognized option \`-dlopen'" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$modename --help --mode=$mode' for more information." + + # These modes are in order of execution frequency so that they run quickly. + case $mode in + # libtool compile mode + compile) + modename="$modename: compile" + # Get the compilation command and the source file. + base_compile= + prev= + lastarg= + srcfile="$nonopt" + suppress_output= + + user_target=no + for arg + do + case $prev in + "") ;; + xcompiler) + # Aesthetically quote the previous argument. + prev= + lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + + case $arg in + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + + # Add the previous argument to base_compile. + if test -z "$base_compile"; then + base_compile="$lastarg" + else + base_compile="$base_compile $lastarg" + fi + continue + ;; + esac + + # Accept any command-line options. + case $arg in + -o) + if test "$user_target" != "no"; then + $echo "$modename: you cannot specify \`-o' more than once" 1>&2 + exit 1 + fi + user_target=next + ;; + + -static) + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` + lastarg= + IFS="${IFS= }"; save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + lastarg="$lastarg $arg" + done + IFS="$save_ifs" + lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` + + # Add the arguments to base_compile. + if test -z "$base_compile"; then + base_compile="$lastarg" + else + base_compile="$base_compile $lastarg" + fi + continue + ;; + esac + + case $user_target in + next) + # The next one is the -o target name + user_target=yes + continue + ;; + yes) + # We got the output file + user_target=set + libobj="$arg" + continue + ;; + esac + + # Accept the current argument as the source file. + lastarg="$srcfile" + srcfile="$arg" + + # Aesthetically quote the previous argument. + + # Backslashify any backslashes, double quotes, and dollar signs. + # These are the only characters that are still specially + # interpreted inside of double-quoted scrings. + lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` + + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + case $lastarg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + lastarg="\"$lastarg\"" + ;; + esac + + # Add the previous argument to base_compile. + if test -z "$base_compile"; then + base_compile="$lastarg" + else + base_compile="$base_compile $lastarg" + fi + done + + case $user_target in + set) + ;; + no) + # Get the name of the library object. + libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` + ;; + *) + $echo "$modename: you must specify a target with \`-o'" 1>&2 + exit 1 + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + xform='[cCFSfmso]' + case $libobj in + *.ada) xform=ada ;; + *.adb) xform=adb ;; + *.ads) xform=ads ;; + *.asm) xform=asm ;; + *.c++) xform=c++ ;; + *.cc) xform=cc ;; + *.cpp) xform=cpp ;; + *.cxx) xform=cxx ;; + *.f90) xform=f90 ;; + *.for) xform=for ;; + esac + + libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` + + case $libobj in + *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; + *) + $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 + exit 1 + ;; + esac + + if test -z "$base_compile"; then + $echo "$modename: you must specify a compilation command" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $libobj" + else + removelist="$libobj" + fi + + $run $rm $removelist + trap "$run $rm $removelist; exit 1" 1 2 15 + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + removelist="$removelist $output_obj $lockfile" + trap "$run $rm $removelist; exit 1" 1 2 15 + else + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $run ln "$0" "$lockfile" 2>/dev/null; do + $show "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + echo "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit 1 + fi + echo $srcfile > "$lockfile" + fi + + if test -n "$fix_srcfile_path"; then + eval srcfile=\"$fix_srcfile_path\" + fi + + # Only build a PIC object if we are building libtool libraries. + if test "$build_libtool_libs" = yes; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test "$pic_mode" != no; then + # All platforms use -DPIC, to notify preprocessed assembler code. + command="$base_compile $srcfile $pic_flag -DPIC" + else + # Don't build PIC code + command="$base_compile $srcfile" + fi + if test "$build_old_libs" = yes; then + lo_libobj="$libobj" + dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` + if test "X$dir" = "X$libobj"; then + dir="$objdir" + else + dir="$dir/$objdir" + fi + libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` + + if test -d "$dir"; then + $show "$rm $libobj" + $run $rm $libobj + else + $show "$mkdir $dir" + $run $mkdir $dir + status=$? + if test $status -ne 0 && test ! -d $dir; then + exit $status + fi + fi + fi + if test "$compiler_o_lo" = yes; then + output_obj="$libobj" + command="$command -o $output_obj" + elif test "$compiler_c_o" = yes; then + output_obj="$obj" + command="$command -o $output_obj" + fi + + $run $rm "$output_obj" + $show "$command" + if $run eval "$command"; then : + else + test -n "$output_obj" && $run $rm $removelist + exit 1 + fi + + if test "$need_locks" = warn && + test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then + echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit 1 + fi + + # Just move the object if needed, then go on to compile the next one + if test x"$output_obj" != x"$libobj"; then + $show "$mv $output_obj $libobj" + if $run $mv $output_obj $libobj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # If we have no pic_flag, then copy the object into place and finish. + if (test -z "$pic_flag" || test "$pic_mode" != default) && + test "$build_old_libs" = yes; then + # Rename the .lo from within objdir to obj + if test -f $obj; then + $show $rm $obj + $run $rm $obj + fi + + $show "$mv $libobj $obj" + if $run $mv $libobj $obj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + + xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$obj"; then + xdir="." + else + xdir="$xdir" + fi + baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"` + libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` + # Now arrange that obj and lo_libobj become the same file + $show "(cd $xdir && $LN_S $baseobj $libobj)" + if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then + exit 0 + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Allow error messages only from the first compilation. + suppress_output=' >/dev/null 2>&1' + fi + + # Only build a position-dependent object if we build old libraries. + if test "$build_old_libs" = yes; then + if test "$pic_mode" != yes; then + # Don't build PIC code + command="$base_compile $srcfile" + else + # All platforms use -DPIC, to notify preprocessed assembler code. + command="$base_compile $srcfile $pic_flag -DPIC" + fi + if test "$compiler_c_o" = yes; then + command="$command -o $obj" + output_obj="$obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + command="$command$suppress_output" + $run $rm "$output_obj" + $show "$command" + if $run eval "$command"; then : + else + $run $rm $removelist + exit 1 + fi + + if test "$need_locks" = warn && + test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then + echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit 1 + fi + + # Just move the object if needed + if test x"$output_obj" != x"$obj"; then + $show "$mv $output_obj $obj" + if $run $mv $output_obj $obj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Create an invalid libtool object if no PIC, so that we do not + # accidentally link it into a program. + if test "$build_libtool_libs" != yes; then + $show "echo timestamp > $libobj" + $run eval "echo timestamp > \$libobj" || exit $? + else + # Move the .lo from within objdir + $show "$mv $libobj $lo_libobj" + if $run $mv $libobj $lo_libobj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + fi + + # Unlock the critical section if it was locked + if test "$need_locks" != no; then + $run $rm "$lockfile" + fi + + exit 0 + ;; + + # libtool link mode + link | relink) + modename="$modename: link" + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # which system we are compiling for in order to pass an extra + # flag for every libtool invokation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll which has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args="$nonopt" + compile_command="$nonopt" + finalize_command="$nonopt" + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + + avoid_version=no + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + prefer_static_libs=no + preload=no + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -all-static | -static) + if test "X$arg" = "X-all-static"; then + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + else + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + fi + build_libtool_libs=no + build_old_libs=yes + prefer_static_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test $# -gt 0; do + arg="$1" + shift + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test + ;; + *) qarg=$arg ;; + esac + libtool_args="$libtool_args $qarg" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + compile_command="$compile_command @OUTPUT@" + finalize_command="$finalize_command @OUTPUT@" + ;; + esac + + case $prev in + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + compile_command="$compile_command @SYMFILE@" + finalize_command="$finalize_command @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + dlfiles="$dlfiles $arg" + else + dlprefiles="$dlprefiles $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + if test ! -f "$arg"; then + $echo "$modename: symbol file \`$arg' does not exist" + exit 1 + fi + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit 1 + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) rpath="$rpath $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) xrpath="$xrpath $arg" ;; + esac + fi + prev= + continue + ;; + xcompiler) + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + xlinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $wl$qarg" + prev= + compile_command="$compile_command $wl$qarg" + finalize_command="$finalize_command $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n $prev + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" + finalize_command="$finalize_command $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 + continue + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + $echo "$modename: more than one -exported-symbols argument is not allowed" + exit 1 + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + # 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*) + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + ;; + esac + continue + ;; + + -L*) + dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 + exit 1 + fi + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "*) ;; + *) + deplibs="$deplibs -L$dir" + lib_search_path="$lib_search_path $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + case :$dllsearchpath: in + *":$dir:"*) ;; + *) dllsearchpath="$dllsearchpath:$dir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-pw32* | *-*-beos*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-mingw* | *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + esac + fi + deplibs="$deplibs $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + # The PATH hackery in wrapper scripts is required on Windows + # in order for the loader to find any dlls it needs. + $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 + $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -o) prev=output ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit 1 + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + continue + ;; + + -static) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` + arg= + IFS="${IFS= }"; save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Wl,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` + arg= + IFS="${IFS= }"; save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $wl$flag" + linker_flags="$linker_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + # Some other compiler flag. + -* | +*) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + + *.lo | *.$objext) + # A library or standard object. + if test "$prev" = dlfiles; then + # This file was specified with -dlopen. + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $arg" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` + prev= + else + case $arg in + *.lo) libobjs="$libobjs $arg" ;; + *) objs="$objs $arg" ;; + esac + fi + ;; + + *.$libext) + # An archive. + deplibs="$deplibs $arg" + old_deplibs="$old_deplibs $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + dlfiles="$dlfiles $arg" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + dlprefiles="$dlprefiles $arg" + prev= + else + deplibs="$deplibs $arg" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + done # argument parsing loop + + if test -n "$prev"; then + $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + + # calculate the name of the file, without its directory + outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` + if test "X$output_objdir" = "X$output"; then + output_objdir="$objdir" + else + output_objdir="$output_objdir/$objdir" + fi + # Create the object directory. + if test ! -d $output_objdir; then + $show "$mkdir $output_objdir" + $run $mkdir $output_objdir + status=$? + if test $status -ne 0 && test ! -d $output_objdir; then + exit $status + fi + fi + + # Determine the type of output + case $output in + "") + $echo "$modename: you must specify an output file" 1>&2 + $echo "$help" 1>&2 + exit 1 + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + case "$libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + libs="$libs $deplib" + done + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + case $linkmode in + lib) + passes="conv link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 + exit 1 + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + for pass in $passes; do + if test "$linkmode" = prog; then + # Determine which files to process + case $pass in + dlopen) + libs="$dlfiles" + save_deplibs="$deplibs" # Collect dlpreopened libraries + deplibs= + ;; + dlpreopen) libs="$dlprefiles" ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + for deplib in $libs; do + lib= + found=no + case $deplib in + -l*) + if test "$linkmode" = oldlib && test "$linkmode" = obj; then + $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2 + continue + fi + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` + for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do + # Search the libtool library + lib="$searchdir/lib${name}.la" + if test -f "$lib"; then + found=yes + break + fi + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + ;; + *) + $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2 + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) lib="$deplib" ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + if test "$deplibs_check_method" != pass_all; then + echo + echo "*** Warning: This library needs some functionality provided by $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." + else + echo + echo "*** Warning: Linking the shared library $output against the" + echo "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + newdlprefiles="$newdlprefiles $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + newdlfiles="$newdlfiles $deplib" + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + if test $found = yes || test -f "$lib"; then : + else + $echo "$modename: cannot find the library \`$lib'" 1>&2 + exit 1 + fi + + # Check to see that this really is a libtool archive. + if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit 1 + fi + + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + # If the library was installed with an old release of libtool, + # it will not redefine variable installed. + installed=yes + + # Read the .la file + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" = oldlib && test "$linkmode" = obj; }; then + # Add dl[pre]opened files of deplib + test -n "$dlopen" && dlfiles="$dlfiles $dlopen" + test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit 1 + fi + # It is a libtool convenience library, so add in its objects. + convenience="$convenience $ladir/$objdir/$old_library" + old_convenience="$old_convenience $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + tmp_libs="$tmp_libs $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + $echo "$modename: \`$lib' is not a convenience library" 1>&2 + exit 1 + fi + continue + fi # $pass = conv + + # Get the name of the library we link against. + linklib= + for l in $old_library $library_names; do + linklib="$l" + done + if test -z "$linklib"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit 1 + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 + exit 1 + fi + if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. + dlprefiles="$dlprefiles $lib" + else + newdlfiles="$newdlfiles $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 + $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 + abs_ladir="$ladir" + fi + ;; + esac + laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + $echo "$modename: warning: library \`$lib' was moved." 1>&2 + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$libdir" + absdir="$libdir" + fi + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + fi # $installed = yes + name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 + exit 1 + fi + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + newdlprefiles="$newdlprefiles $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + newdlprefiles="$newdlprefiles $dir/$dlname" + else + newdlprefiles="$newdlprefiles $dir/$linklib" + fi + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" + fi + continue + fi + + if test "$linkmode" = prog && test "$pass" != link; then + newlib_search_path="$newlib_search_path $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test + esac + # Need to link against all dependency_libs? + if test $linkalldeplibs = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + tmp_libs="$tmp_libs $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + link_static=no # Whether the deplib will be linked statically + if test -n "$library_names" && + { test "$prefer_static_libs" = no || test -z "$old_library"; }; then + # Link against this shared library + + if test "$linkmode,$pass" = "prog,link" || + { test "$linkmode" = lib && test "$hardcode_into_libs" = yes; }; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + if test "$linkmode" = prog; then + # We need to hardcode the library path + if test -n "$shlibpath_var"; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath " in + *" $dir "*) ;; + *" $absdir "*) ;; + *) temp_rpath="$temp_rpath $dir" ;; + esac + fi + fi + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + + if test "$installed" = no; then + notinst_deplibs="$notinst_deplibs $lib" + need_relink=yes + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + realname="$2" + shift; shift + libname=`eval \\$echo \"$libname_spec\"` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin*) + major=`expr $current - $age` + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + soname=`echo $soroot | sed -e 's/^.*\///'` + newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a" + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + $show "extracting exported symbol list from \`$soname'" + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' + eval cmds=\"$extract_expsyms_cmds\" + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + $show "generating import library for \`$soname'" + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' + eval cmds=\"$old_archive_from_expsyms_cmds\" + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n $old_archive_from_expsyms_cmds + + if test "$linkmode" = prog || test "$mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + $echo "$modename: configuration error: unsupported hardcode properties" + exit 1 + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && \ + test "$hardcode_minus_L" != yes && \ + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + add="-l$name" + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + + # Try to link the static library + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + echo "*** Warning: This library needs some functionality provided by $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + echo "*** Therefore, libtool will create a static module, that should work " + echo "*** as long as the dlopening application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + convenience="$convenience $dir/$old_library" + old_convenience="$old_convenience $dir/$old_library" + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + if test -n "$dependency_libs" && + { test "$hardcode_into_libs" != yes || test $build_old_libs = yes || + test $link_static = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) xrpath="$xrpath $temp_xrpath";; + esac;; + *) temp_deplibs="$temp_deplibs $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + + newlib_search_path="$newlib_search_path $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + tmp_libs="$tmp_libs $deplib" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + case $deplib in + -L*) path="$deplib" ;; + *.la) + dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$deplib" && dir="." + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 + absdir="$dir" + fi + ;; + esac + if grep "^installed=no" $deplib > /dev/null; then + path="-L$absdir/$objdir" + else + eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + if test -z "$libdir"; then + $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 + exit 1 + fi + if test "$absdir" != "$libdir"; then + $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 + fi + path="-L$absdir" + fi + ;; + *) continue ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$deplibs $path" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + test "$pass" != scan && dependency_libs="$newdependency_libs" + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) lib_search_path="$lib_search_path $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + *) + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + if test "$pass" = "conv" && + { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then + libs="$deplibs" # reset libs + deplibs= + fi + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 + fi + + if test -n "$rpath"; then + $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 + fi + + if test -n "$xrpath"; then + $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 + fi + + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 + fi + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + objs="$objs$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + eval libname=\"$libname_spec\" + ;; + *) + if test "$module" = no; then + $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` + eval libname=\"$libname_spec\" + else + libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 + exit 1 + else + echo + echo "*** Warning: Linking the shared library $output against the non-libtool" + echo "*** objects $objs is not portable!" + libobjs="$libobjs $objs" + fi + fi + + if test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 + fi + + set dummy $rpath + if test $# -gt 2; then + $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 + fi + install_libdir="$2" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + libext=al + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 + fi + else + + # Parse the version information argument. + IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + IFS="$save_ifs" + + if test -n "$8"; then + $echo "$modename: too many parameters to \`-version-info'" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + current="$2" + revision="$3" + age="$4" + + # Check that each of the things are valid numbers. + case $current in + 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + *) + $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + ;; + esac + + case $revision in + 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + *) + $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + ;; + esac + + case $age in + 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + *) + $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + ;; + esac + + if test $age -gt $current; then + $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + major=.`expr $current - $age` + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + minor_current=`expr $current + 1` + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current"; + ;; + + irix) + major=`expr $current - $age + 1` + verstring="sgi$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test $loop != 0; do + iface=`expr $revision - $loop` + loop=`expr $loop - 1` + verstring="sgi$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) + major=.`expr $current - $age` + versuffix="$major.$age.$revision" + ;; + + osf) + major=`expr $current - $age` + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test $loop != 0; do + iface=`expr $current - $loop` + loop=`expr $loop - 1` + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + verstring="$verstring:${current}.0" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + major=`expr $current - $age` + versuffix="-$major" + ;; + + *) + $echo "$modename: unknown library version type \`$version_type'" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit 1 + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + verstring="0.0" + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + fi + + if test "$mode" != relink; then + # Remove our outputs. + $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*" + $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.* + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + oldlibs="$oldlibs $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + for path in $notinst_path; do + lib_search_path=`echo "$lib_search_path " | sed -e 's% $path % %g'` + deplibs=`echo "$deplibs " | sed -e 's% -L$path % %g'` + dependency_libs=`echo "$dependency_libs " | sed -e 's% -L$path % %g'` + done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + temp_xrpath="$temp_xrpath -R$libdir" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + if test $hardcode_into_libs != yes || test $build_old_libs = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) dlfiles="$dlfiles $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) dlprefiles="$dlprefiles $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + deplibs="$deplibs -framework System" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + deplibs="$deplibs -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behaviour. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $rm conftest.c + cat > conftest.c </dev/null` + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null \ + | grep " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | sed 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ + | sed 10q \ + | egrep "$file_magic_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + echo "*** Warning: This library needs some functionality provided by $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." + fi + else + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + fi + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method + match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + for a_deplib in $deplibs; do + name="`expr $a_deplib : '-l\(.*\)'`" + # If $name is empty we are operating on a -L argument. + if test -n "$name" && test "$name" != "0"; then + libname=`eval \\$echo \"$libname_spec\"` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + if eval echo \"$potent_lib\" 2>/dev/null \ + | sed 10q \ + | egrep "$match_pattern_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + echo "*** Warning: This library needs some functionality provided by $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." + fi + else + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + fi + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ + -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' | + grep . >/dev/null; then + echo + if test "X$deplibs_check_method" = "Xnone"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + fi + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + echo "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test $allow_undefined = no; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + dep_rpath="$dep_rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval dep_rpath=\"$hardcode_libdir_flag_spec\" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval library_names=\"$library_names_spec\" + set dummy $library_names + realname="$2" + shift; shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + test -z "$dlname" && dlname=$soname + + lib="$output_objdir/$realname" + for link + do + linknames="$linknames $link" + done + + # Ensure that we have .o objects for linkers which dislike .lo + # (e.g. aix) in case we are running --disable-static + for obj in $libobjs; do + xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$obj"; then + xdir="." + else + xdir="$xdir" + fi + baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` + if test ! -f $xdir/$oldobj; then + $show "(cd $xdir && ${LN_S} $baseobj $oldobj)" + $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $? + fi + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + $show "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $run $rm $export_symbols + eval cmds=\"$export_symbols_cmds\" + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + if test -n "$export_symbols_regex"; then + $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" + $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + $show "$mv \"${export_symbols}T\" \"$export_symbols\"" + $run eval '$mv "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' + fi + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + else + gentop="$output_objdir/${outputname}x" + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + $show "mkdir $gentop" + $run mkdir "$gentop" + status=$? + if test $status -ne 0 && test ! -d "$gentop"; then + exit $status + fi + generated="$generated $gentop" + + for xlib in $convenience; do + # Extract the objects. + case $xlib in + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; + *) xabs=`pwd`"/$xlib" ;; + esac + xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` + xdir="$gentop/$xlib" + + $show "${rm}r $xdir" + $run ${rm}r "$xdir" + $show "mkdir $xdir" + $run mkdir "$xdir" + status=$? + if test $status -ne 0 && test ! -d "$xdir"; then + exit $status + fi + $show "(cd $xdir && $AR x $xabs)" + $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? + + libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` + done + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + linker_flags="$linker_flags $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval cmds=\"$archive_expsym_cmds\" + else + eval cmds=\"$archive_cmds\" + fi + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? + exit 0 + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" + $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 + fi + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 + fi + + if test -n "$rpath"; then + $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 + fi + + if test -n "$xrpath"; then + $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 + fi + + case $output in + *.lo) + if test -n "$objs$old_deplibs"; then + $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 + exit 1 + fi + libobj="$output" + obj=`$echo "X$output" | $Xsed -e "$lo2o"` + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $run $rm $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" + else + gentop="$output_objdir/${obj}x" + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + $show "mkdir $gentop" + $run mkdir "$gentop" + status=$? + if test $status -ne 0 && test ! -d "$gentop"; then + exit $status + fi + generated="$generated $gentop" + + for xlib in $convenience; do + # Extract the objects. + case $xlib in + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; + *) xabs=`pwd`"/$xlib" ;; + esac + xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` + xdir="$gentop/$xlib" + + $show "${rm}r $xdir" + $run ${rm}r "$xdir" + $show "mkdir $xdir" + $run mkdir "$xdir" + status=$? + if test $status -ne 0 && test ! -d "$xdir"; then + exit $status + fi + $show "(cd $xdir && $AR x $xabs)" + $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? + + reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` + done + fi + fi + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + eval cmds=\"$reload_cmds\" + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + exit 0 + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + $show "echo timestamp > $libobj" + $run eval "echo timestamp > $libobj" || exit $? + exit 0 + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + eval cmds=\"$reload_cmds\" + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + else + # Just create a symlink. + $show $rm $libobj + $run $rm $libobj + xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$libobj"; then + xdir="." + else + xdir="$xdir" + fi + baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` + oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` + $show "(cd $xdir && $LN_S $oldobj $baseobj)" + $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $? + fi + + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + exit 0 + ;; + + prog) + case $host in + *cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;; + esac + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 + fi + + if test "$preload" = yes; then + if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && + test "$dlopen_self_static" = unknown; then + $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." + fi + fi + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` + finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` + ;; + esac + + compile_command="$compile_command $compile_deplibs" + finalize_command="$finalize_command $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + case :$dllsearchpath: in + *":$libdir:"*) ;; + *) dllsearchpath="$dllsearchpath:$libdir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + fi + + dlsyms= + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + dlsyms="${outputname}S.c" + else + $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 + fi + fi + + if test -n "$dlsyms"; then + case $dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${outputname}.nm" + + $show "$rm $nlist ${nlist}S ${nlist}T" + $run $rm "$nlist" "${nlist}S" "${nlist}T" + + # Parse the name list into a source file. + $show "creating $output_objdir/$dlsyms" + + test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ +/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ +/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +/* Prevent the only kind of declaration conflicts we can make. */ +#define lt_preloaded_symbols some_other_symbol + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + $show "generating symbol list for \`$output'" + + test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + for arg in $progfiles; do + $show "extracting global C symbols from \`$arg'" + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi + + if test -n "$export_symbols_regex"; then + $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$output.exp" + $run $rm $export_symbols + $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + else + $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' + $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' + $run eval 'mv "$nlist"T "$nlist"' + fi + fi + + for arg in $dlprefiles; do + $show "extracting global C symbols from \`$arg'" + name=`echo "$arg" | sed -e 's%^.*/%%'` + $run eval 'echo ": $name " >> "$nlist"' + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done + + if test -z "$run"; then + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $mv "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then + : + else + grep -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$dlsyms" + fi + + $echo >> "$output_objdir/$dlsyms" "\ + +#undef lt_preloaded_symbols + +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[] = +{\ +" + + sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \ + -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \ + < "$nlist" >> "$output_objdir/$dlsyms" + + $echo >> "$output_objdir/$dlsyms" "\ + {0, (lt_ptr_t) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + fi + + pic_flag_for_symtable= + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; + esac;; + *-*-hpux*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag -DPIC";; + esac + esac + + # Now compile the dynamic symbol file. + $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" + $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? + + # Clean up the generated files. + $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" + $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" + + # Transform the symbol file into the correct name. + compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` + ;; + *) + $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 + exit 1 + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + fi + + if test $need_relink = no || test "$build_libtool_libs" != yes; then + # Replace the output file specification. + compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + $show "$link_command" + $run eval "$link_command" + status=$? + + # Delete the generated files. + if test -n "$dlsyms"; then + $show "$rm $output_objdir/${outputname}S.${objext}" + $run $rm "$output_objdir/${outputname}S.${objext}" + fi + + exit $status + fi + + if test -n "$shlibpath_var"; then + # We should set the shlibpath_var + rpath= + for dir in $temp_rpath; do + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) + # Absolute path. + rpath="$rpath$dir:" + ;; + *) + # Relative path: add a thisdir entry. + rpath="$rpath\$thisdir/$dir:" + ;; + esac + done + temp_rpath="$rpath" + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + rpath="$rpath$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $run $rm $output + # Link the executable and exit + $show "$link_command" + $run eval "$link_command" || exit $? + exit 0 + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 + $echo "$modename: \`$output' will be relinked during installation" 1>&2 + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname + + $show "$link_command" + $run eval "$link_command" || exit $? + + # Now create the wrapper script. + $show "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` + relink_command="$var=\"$var_value\"; export $var; $relink_command" + fi + done + relink_command="cd `pwd`; $relink_command" + relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + fi + + # Quote $echo for shipping. + if test "X$echo" = "X$SHELL $0 --fallback-echo"; then + case $0 in + [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; + *) qecho="$SHELL `pwd`/$0 --fallback-echo";; + esac + qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` + else + qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` + fi + + # Only actually do things if our run command is non-null. + if test -z "$run"; then + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) output=`echo $output|sed 's,.exe$,,'` ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) exeext=.exe ;; + *) exeext= ;; + esac + $rm $output + trap "$rm $output; exit 1" 1 2 15 + + $echo > $output "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e 1s/^X//' +sed_quote_subst='$sed_quote_subst' + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variable: + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$echo are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + echo=\"$qecho\" + file=\"\$0\" + # Make sure echo works. + if test \"X\$1\" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift + elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then + # Yippee, \$echo works! + : + else + # Restart under the correct shell, and then maybe \$echo will work. + exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} + fi + fi\ +" + $echo >> $output "\ + + # Find the directory that this script lives in. + thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\` + done + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + echo >> $output "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || \\ + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $mkdir \"\$progdir\" + else + $rm \"\$progdir/\$file\" + fi" + + echo >> $output "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if (eval \$relink_command); then : + else + $rm \"\$progdir/\$file\" + exit 1 + fi + fi + + $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $rm \"\$progdir/\$program\"; + $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $rm \"\$progdir/\$file\" + fi" + else + echo >> $output "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + echo >> $output "\ + + if test -f \"\$progdir/\$program\"; then" + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $echo >> $output "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + + export $shlibpath_var +" + fi + + # fixup the dll searchpath if we need to. + if test -n "$dllsearchpath"; then + $echo >> $output "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + $echo >> $output "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. +" + case $host in + # win32 systems need to use the prog path for dll + # lookup to work + *-*-cygwin* | *-*-pw32*) + $echo >> $output "\ + exec \$progdir/\$program \${1+\"\$@\"} +" + ;; + + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2*) + $echo >> $output "\ + exec \$progdir\\\\\$program \${1+\"\$@\"} +" + ;; + + *) + $echo >> $output "\ + # Export the path to the program. + PATH=\"\$progdir:\$PATH\" + export PATH + + exec \$program \${1+\"\$@\"} +" + ;; + esac + $echo >> $output "\ + \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" + exit 1 + fi + else + # The program doesn't exist. + \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 + \$echo \"This script is just a wrapper for \$program.\" 1>&2 + echo \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" + chmod +x $output + fi + exit 0 + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + $show "mkdir $gentop" + $run mkdir "$gentop" + status=$? + if test $status -ne 0 && test ! -d "$gentop"; then + exit $status + fi + generated="$generated $gentop" + + # Add in members from convenience archives. + for xlib in $addlibs; do + # Extract the objects. + case $xlib in + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; + *) xabs=`pwd`"/$xlib" ;; + esac + xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` + xdir="$gentop/$xlib" + + $show "${rm}r $xdir" + $run ${rm}r "$xdir" + $show "mkdir $xdir" + $run mkdir "$xdir" + status=$? + if test $status -ne 0 && test ! -d "$xdir"; then + exit $status + fi + $show "(cd $xdir && $AR x $xabs)" + $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? + + oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` + done + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + eval cmds=\"$old_archive_from_new_cmds\" + else + # Ensure that we have .o objects in place in case we decided + # not to build a shared library, and have fallen back to building + # static libs even though --disable-static was passed! + for oldobj in $oldobjs; do + if test ! -f $oldobj; then + xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$oldobj"; then + xdir="." + else + xdir="$xdir" + fi + baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'` + obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` + $show "(cd $xdir && ${LN_S} $obj $baseobj)" + $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $? + fi + done + + eval cmds=\"$old_archive_cmds\" + fi + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + done + + if test -n "$generated"; then + $show "${rm}r$generated" + $run ${rm}r$generated + fi + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + $show "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` + relink_command="$var=\"$var_value\"; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="cd `pwd`; $SHELL $0 --mode=relink $libtool_args" + relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + + # Only create the output if not a dry run. + if test -z "$run"; then + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` + eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + if test -z "$libdir"; then + $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 + exit 1 + fi + newdependency_libs="$newdependency_libs $libdir/$name" + ;; + *) newdependency_libs="$newdependency_libs $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + for lib in $dlfiles; do + name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + if test -z "$libdir"; then + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit 1 + fi + newdlfiles="$newdlfiles $libdir/$name" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + if test -z "$libdir"; then + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit 1 + fi + newdlprefiles="$newdlprefiles $libdir/$name" + done + dlprefiles="$newdlprefiles" + fi + $rm $output + # place dlname in correct position for cygwin + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + esac + $echo > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test $need_relink = yes; then + $echo >> $output "\ +relink_command=\"$relink_command\"" + fi + done + fi + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" + $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? + ;; + esac + exit 0 + ;; + + # libtool install mode + install) + modename="$modename: install" + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then + # Aesthetically quote it. + arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; + esac + install_prog="$arg " + arg="$1" + shift + else + install_prog= + arg="$nonopt" + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; + esac + install_prog="$install_prog$arg" + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + for arg + do + if test -n "$dest"; then + files="$files $dest" + dest="$arg" + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) prev="-f" ;; + -g) prev="-g" ;; + -m) prev="-m" ;; + -o) prev="-o" ;; + -s) + stripme=" -s" + continue + ;; + -*) ;; + + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + prev= + else + dest="$arg" + continue + fi + ;; + esac + + # Aesthetically quote the argument. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; + esac + install_prog="$install_prog $arg" + done + + if test -z "$install_prog"; then + $echo "$modename: you must specify an install program" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + if test -n "$prev"; then + $echo "$modename: the \`$prev' option requires an argument" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + if test -z "$files"; then + if test -z "$dest"; then + $echo "$modename: no file or destination specified" 1>&2 + else + $echo "$modename: you must specify a destination" 1>&2 + fi + $echo "$help" 1>&2 + exit 1 + fi + + # Strip any trailing slash from the destination. + dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` + test "X$destdir" = "X$dest" && destdir=. + destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` + + # Not a directory, so check to see that there is only one file specified. + set dummy $files + if test $# -gt 2; then + $echo "$modename: \`$dest' is not a directory" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 + $echo "$help" 1>&2 + exit 1 + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + staticlibs="$staticlibs $file" + ;; + + *.la) + # Check to see that this really is a libtool archive. + if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + library_names= + old_library= + relink_command= + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) current_libdirs="$current_libdirs $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) future_libdirs="$future_libdirs $libdir" ;; + esac + fi + + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ + test "X$dir" = "X$file/" && dir= + dir="$dir$objdir" + + if test -n "$relink_command"; then + $echo "$modename: warning: relinking \`$file'" 1>&2 + $show "$relink_command" + if $run eval "$relink_command"; then : + else + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 + continue + fi + fi + + # See the names of the shared library. + set dummy $library_names + if test -n "$2"; then + realname="$2" + shift + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + $show "$install_prog $dir/$srcname $destdir/$realname" + $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? + if test -n "$stripme" && test -n "$striplib"; then + $show "$striplib $destdir/$realname" + $run eval "$striplib $destdir/$realname" || exit $? + fi + + if test $# -gt 0; then + # Delete the old symlinks, and create new ones. + for linkname + do + if test "$linkname" != "$realname"; then + $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" + $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" + fi + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + eval cmds=\"$postinstall_cmds\" + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + # Install the pseudo-library for information purposes. + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + instname="$dir/$name"i + $show "$install_prog $instname $destdir/$name" + $run eval "$install_prog $instname $destdir/$name" || exit $? + + # Maybe install the static library, too. + test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 + $echo "$help" 1>&2 + exit 1 + ;; + esac + + # Install the libtool object if requested. + if test -n "$destfile"; then + $show "$install_prog $file $destfile" + $run eval "$install_prog $file $destfile" || exit $? + fi + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` + + $show "$install_prog $staticobj $staticdest" + $run eval "$install_prog \$staticobj \$staticdest" || exit $? + fi + exit 0 + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + destfile="$destdir/$destfile" + fi + + # Do a test to see if this is really a libtool program. + if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + notinst_deplibs= + relink_command= + + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Check the variables that should have been set. + if test -z "$notinst_deplibs"; then + $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 + exit 1 + fi + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + # If there is no directory component, then add one. + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + fi + libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 + finalize=no + fi + done + + relink_command= + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + if test "$finalize" = yes && test -z "$run"; then + tmpdir="/tmp" + test -n "$TMPDIR" && tmpdir="$TMPDIR" + tmpdir="$tmpdir/libtool-$$" + if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : + else + $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 + continue + fi + file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` + + $show "$relink_command" + if $run eval "$relink_command"; then : + else + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 + ${rm}r "$tmpdir" + continue + fi + file="$outputname" + else + $echo "$modename: warning: cannot relink \`$file'" 1>&2 + fi + else + # Install the binary that we compiled earlier. + file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyways + case $install_prog,$host in + /usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + destfile=`echo $destfile | sed -e 's,.exe$,,'` + ;; + esac + ;; + esac + $show "$install_prog$stripme $file $destfile" + $run eval "$install_prog\$stripme \$file \$destfile" || exit $? + test -n "$outputname" && ${rm}r "$tmpdir" + ;; + esac + done + + for file in $staticlibs; do + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + + $show "$install_prog $file $oldlib" + $run eval "$install_prog \$file \$oldlib" || exit $? + + if test -n "$stripme" && test -n "$striplib"; then + $show "$old_striplib $oldlib" + $run eval "$old_striplib $oldlib" || exit $? + fi + + # Do each command in the postinstall commands. + eval cmds=\"$old_postinstall_cmds\" + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + done + + if test -n "$future_libdirs"; then + $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 + fi + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + test -n "$run" && current_libdirs=" -n$current_libdirs" + exec $SHELL $0 --finish$current_libdirs + exit 1 + fi + + exit 0 + ;; + + # libtool finish mode + finish) + modename="$modename: finish" + libdirs="$nonopt" + admincmds= + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for dir + do + libdirs="$libdirs $dir" + done + + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + eval cmds=\"$finish_cmds\" + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || admincmds="$admincmds + $cmd" + done + IFS="$save_ifs" + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $run eval "$cmds" || admincmds="$admincmds + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + test "$show" = ":" && exit 0 + + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + echo " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + echo " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + echo " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + echo + echo "See any operating system documentation about shared libraries for" + echo "more information, such as the ld(1) and ld.so(8) manual pages." + echo "----------------------------------------------------------------------" + exit 0 + ;; + + # libtool execute mode + execute) + modename="$modename: execute" + + # The first argument is the command name. + cmd="$nonopt" + if test -z "$cmd"; then + $echo "$modename: you must specify a COMMAND" 1>&2 + $echo "$help" + exit 1 + fi + + # Handle -dlopen flags immediately. + for file in $execute_dlfiles; do + if test ! -f "$file"; then + $echo "$modename: \`$file' is not a file" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + dir= + case $file in + *.la) + # Check to see that this really is a libtool archive. + if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + # Read the libtool library. + dlname= + library_names= + + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" + continue + fi + + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$file" && dir=. + + if test -f "$dir/$objdir/$dlname"; then + dir="$dir/$objdir" + else + $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 + exit 1 + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$file" && dir=. + ;; + + *) + $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -*) ;; + *) + # Do a test to see if this is really a libtool program. + if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` + args="$args \"$file\"" + done + + if test -z "$run"; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved enviroment variables + if test "${save_LC_ALL+set}" = set; then + LC_ALL="$save_LC_ALL"; export LC_ALL + fi + if test "${save_LANG+set}" = set; then + LANG="$save_LANG"; export LANG + fi + + # Now actually exec the command. + eval "exec \$cmd$args" + + $echo "$modename: cannot exec \$cmd$args" + exit 1 + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" + $echo "export $shlibpath_var" + fi + $echo "$cmd$args" + exit 0 + fi + ;; + + # libtool clean and uninstall mode + clean | uninstall) + modename="$modename: $mode" + rm="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) rm="$rm $arg"; rmforce=yes ;; + -*) rm="$rm $arg" ;; + *) files="$files $arg" ;; + esac + done + + if test -z "$rm"; then + $echo "$modename: you must specify an RM program" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + rmdirs= + + for file in $files; do + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + if test "X$dir" = "X$file"; then + dir=. + objdir="$objdir" + else + objdir="$dir/$objdir" + fi + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + test $mode = uninstall && objdir="$dir" + + # Remember objdir for removal later, being careful to avoid duplicates + if test $mode = clean; then + case " $rmdirs " in + *" $objdir "*) ;; + *) rmdirs="$rmdirs $objdir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if (test -L "$file") >/dev/null 2>&1 \ + || (test -h "$file") >/dev/null 2>&1 \ + || test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + . $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + rmfiles="$rmfiles $objdir/$n" + done + test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" + test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + + if test $mode = uninstall; then + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + eval cmds=\"$postuninstall_cmds\" + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + if test $? != 0 && test "$rmforce" != yes; then + exit_status=1 + fi + done + IFS="$save_ifs" + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + eval cmds=\"$old_postuninstall_cmds\" + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + if test $? != 0 && test "$rmforce" != yes; then + exit_status=1 + fi + done + IFS="$save_ifs" + fi + # FIXME: should reinstall the best remaining shared library. + fi + fi + ;; + + *.lo) + if test "$build_old_libs" = yes; then + oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` + rmfiles="$rmfiles $dir/$oldobj" + fi + ;; + + *) + # Do a test to see if this is a libtool program. + if test $mode = clean && + (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + relink_command= + . $dir/$file + + rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + rmfiles="$rmfiles $objdir/lt-$name" + fi + fi + ;; + esac + $show "$rm $rmfiles" + $run $rm $rmfiles || exit_status=1 + done + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + $show "rmdir $dir" + $run rmdir $dir >/dev/null 2>&1 + fi + done + + exit $exit_status + ;; + + "") + $echo "$modename: you must specify a MODE" 1>&2 + $echo "$generic_help" 1>&2 + exit 1 + ;; + esac + + $echo "$modename: invalid operation mode \`$mode'" 1>&2 + $echo "$generic_help" 1>&2 + exit 1 +fi # test -z "$show_help" + +# We need to display help for each of the modes. +case $mode in +"") $echo \ +"Usage: $modename [OPTION]... [MODE-ARG]... + +Provide generalized library-building support services. + + --config show all configuration variables + --debug enable verbose shell tracing +-n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --finish same as \`--mode=finish' + --help display this help message and exit + --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] + --quiet same as \`--silent' + --silent don't print informational messages + --version print version information + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for +a more detailed description of MODE." + exit 0 + ;; + +clean) + $echo \ +"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + +compile) + $echo \ +"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -prefer-pic try to building PIC objects only + -prefer-non-pic try to building non-PIC objects only + -static always build a \`.o' file suitable for static linking + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + +execute) + $echo \ +"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + +finish) + $echo \ +"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + +install) + $echo \ +"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + +link) + $echo \ +"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -static do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + +uninstall) + $echo \ +"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + +*) + $echo "$modename: invalid operation mode \`$mode'" 1>&2 + $echo "$help" 1>&2 + exit 1 + ;; +esac + +echo +$echo "Try \`$modename --help' for more information about other modes." + +exit 0 + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/missing b/missing new file mode 100755 index 0000000..7789652 --- /dev/null +++ b/missing @@ -0,0 +1,190 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. +# Copyright (C) 1996, 1997 Free Software Foundation, Inc. +# Franc,ois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +case "$1" in + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + yacc create \`y.tab.[ch]', if possible, from existing .[ch]" + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing - GNU libit 0.0" + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + + aclocal) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`acinclude.m4' or \`configure.in'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`configure.in'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`acconfig.h' or \`configure.in'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case "$f" in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if [ ! -f y.tab.h ]; then + echo >y.tab.h + fi + if [ ! -f y.tab.c ]; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if [ ! -f lex.yy.c ]; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + makeinfo) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` + fi + touch $file + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and you do not seem to have it handy on your + system. You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequirements for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 diff --git a/mkinstalldirs b/mkinstalldirs new file mode 100755 index 0000000..c6aba93 --- /dev/null +++ b/mkinstalldirs @@ -0,0 +1,40 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy +# Author: Noah Friedman +# Created: 1993-05-16 +# Public domain + +# $Id: mkinstalldirs,v 1.1.1.1 2004/04/15 17:51:47 oliphant Exp $ + +errstatus=0 + +for file +do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift + + pathcomp= + for d + do + pathcomp="$pathcomp$d" + case "$pathcomp" in + -* ) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + fi + fi + + pathcomp="$pathcomp/" + done +done + +exit $errstatus + +# mkinstalldirs ends here diff --git a/pixmaps/Makefile.am b/pixmaps/Makefile.am new file mode 100644 index 0000000..6d8b25d --- /dev/null +++ b/pixmaps/Makefile.am @@ -0,0 +1,5 @@ +EXTRA_DIST = gripicon.png gripicon.gif griptray.png *.xpm + +pixmapdir = $(datadir)/pixmaps + +pixmap_DATA = gripicon.png griptray.png diff --git a/pixmaps/Makefile.in b/pixmaps/Makefile.in new file mode 100644 index 0000000..491e7f3 --- /dev/null +++ b/pixmaps/Makefile.in @@ -0,0 +1,265 @@ +# Makefile.in generated by automake 1.6.3 from Makefile.am. +# @configure_input@ + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_HEADER = $(INSTALL_DATA) +transform = @program_transform_name@ +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ + +EXEEXT = @EXEEXT@ +OBJEXT = @OBJEXT@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +AMTAR = @AMTAR@ +AS = @AS@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CDPAR_LIBS = @CDPAR_LIBS@ +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +DATADIRNAME = @DATADIRNAME@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +ID3_LIBS = @ID3_LIBS@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +LDFLAGS = @LDFLAGS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +MAINT = @MAINT@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +OBJDUMP = @OBJDUMP@ +PACKAGE = @PACKAGE@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +am__include = @am__include@ +am__quote = @am__quote@ +install_sh = @install_sh@ +EXTRA_DIST = gripicon.png gripicon.gif griptray.png *.xpm + +pixmapdir = $(datadir)/pixmaps + +pixmap_DATA = gripicon.png griptray.png +subdir = pixmaps +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +DIST_SOURCES = +DATA = $(pixmap_DATA) + +DIST_COMMON = Makefile.am Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu pixmaps/Makefile +Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +pixmapDATA_INSTALL = $(INSTALL_DATA) +install-pixmapDATA: $(pixmap_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(pixmapdir) + @list='$(pixmap_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(pixmapDATA_INSTALL) $$d$$p $(DESTDIR)$(pixmapdir)/$$f"; \ + $(pixmapDATA_INSTALL) $$d$$p $(DESTDIR)$(pixmapdir)/$$f; \ + done + +uninstall-pixmapDATA: + @$(NORMAL_UNINSTALL) + @list='$(pixmap_DATA)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f $(DESTDIR)$(pixmapdir)/$$f"; \ + rm -f $(DESTDIR)$(pixmapdir)/$$f; \ + done +tags: TAGS +TAGS: + +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = .. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + +distdir: $(DISTFILES) + @list='$(DISTFILES)'; for file in $$list; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) + +installdirs: + $(mkinstalldirs) $(DESTDIR)$(pixmapdir) + +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + +distclean-am: clean-am distclean-generic distclean-libtool + +dvi: dvi-am + +dvi-am: + +info: info-am + +info-am: + +install-data-am: install-pixmapDATA + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +uninstall-am: uninstall-info-am uninstall-pixmapDATA + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am info info-am install install-am install-data \ + install-data-am install-exec install-exec-am install-info \ + install-info-am install-man install-pixmapDATA install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool uninstall uninstall-am uninstall-info-am \ + uninstall-pixmapDATA + +# 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/pixmaps/cdscan.xpm b/pixmaps/cdscan.xpm new file mode 100644 index 0000000..6afe357 --- /dev/null +++ b/pixmaps/cdscan.xpm @@ -0,0 +1,18 @@ +/* XPM */ +static char * cdscan_xpm[] = { +"13 13 2 1", +" c None", +". c #FFFFFF", +" ", +" ....... ", +" .. .. ", +" .. .. ", +" . . ", +" . ... . ", +" . . . . ", +" . ... . ", +" . . ", +" .. .. ", +" .. .. ", +" ....... ", +" "}; diff --git a/pixmaps/check.xpm b/pixmaps/check.xpm new file mode 100644 index 0000000..05a3c7f --- /dev/null +++ b/pixmaps/check.xpm @@ -0,0 +1,16 @@ +/* XPM */ +static char * check_xpm[] = { +"13 10 3 1", +" c None", +". c #FFFFFF", +"+ c #000000", +" .. ", +" .++.", +" .++. ", +" . .++. ", +" .+. .++. ", +".+++..++. ", +" .+++++. ", +" .+++. ", +" .+. ", +" . "}; diff --git a/pixmaps/discdb0.xpm b/pixmaps/discdb0.xpm new file mode 100644 index 0000000..4de0dfd --- /dev/null +++ b/pixmaps/discdb0.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * discdb0_xpm[] = { +"15 15 2 1", +" c None", +". c #000000", +" ", +" ..... ", +" . . ", +" . ... ", +" . . . ", +" ..... . ", +" ... . ", +" ..... . ..... ", +" . . . ", +" ... . ", +" . . ", +" ..... ", +" ... ", +" ..... ", +" "}; diff --git a/pixmaps/discdb1.xpm b/pixmaps/discdb1.xpm new file mode 100644 index 0000000..3f96c81 --- /dev/null +++ b/pixmaps/discdb1.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * discdb1_xpm[] = { +"15 15 2 1", +" c None", +". c #000000", +" ", +" ..... ", +" . . ", +" . . ", +" . . ", +" ..... ", +" ... ", +" ..... ..... ", +" . . ", +" . . ", +" . . ", +" ..... ", +" ... ", +" ..... ", +" "}; diff --git a/pixmaps/discdbwht.xpm b/pixmaps/discdbwht.xpm new file mode 100644 index 0000000..df9db76 --- /dev/null +++ b/pixmaps/discdbwht.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * discdbwht_xpm[] = { +"15 15 2 1", +" c None", +". c #FFFFFF", +" ", +" ..... ", +" . . ", +" . ... ", +" . . . ", +" ..... . ", +" ... . ", +" ..... . ..... ", +" . . . ", +" ... . ", +" . . ", +" ..... ", +" ... ", +" ..... ", +" "}; diff --git a/pixmaps/edit.xpm b/pixmaps/edit.xpm new file mode 100644 index 0000000..b36d0af --- /dev/null +++ b/pixmaps/edit.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * edit_xpm[] = { +"15 15 2 1", +" c None", +". c #FFFFFF", +" ... ", +" . .. ", +" . . ", +" .. . ", +" . ... ", +" . . ", +" . . ", +" . . ", +" . . ", +" . . ", +" .. . ", +" .... ", +" ... ", +" .. ", +" . "}; diff --git a/pixmaps/eject.xpm b/pixmaps/eject.xpm new file mode 100644 index 0000000..3aa500b --- /dev/null +++ b/pixmaps/eject.xpm @@ -0,0 +1,16 @@ +/* XPM */ +static char * eject_xpm[] = { +"11 11 2 1", +" c None", +". c #FFFFFF", +" ", +" . ", +" ... ", +" ..... ", +" ....... ", +" ......... ", +" ", +" ", +" ......... ", +" ......... ", +" "}; diff --git a/pixmaps/enc0.xpm b/pixmaps/enc0.xpm new file mode 100644 index 0000000..7d86c14 --- /dev/null +++ b/pixmaps/enc0.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * enc0_xpm[] = { +"15 15 2 1", +" c None", +". c #000000", +" ", +" .... .... ", +" .. . ..... ", +" .. . ...... ", +" . . ...... ", +" . .. ...... ", +" ..... ..... ", +" ", +" ..... ..... ", +" . .. .. . ", +" . . . . ", +" .. . . .. ", +" .. . . .. ", +" .... .... ", +" "}; diff --git a/pixmaps/enc1.xpm b/pixmaps/enc1.xpm new file mode 100644 index 0000000..adf2894 --- /dev/null +++ b/pixmaps/enc1.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * enc1_xpm[] = { +"15 15 2 1", +" c None", +". c #000000", +" ", +" .... .... ", +" .. . ..... ", +" .. . ...... ", +" . . ...... ", +" . .. ...... ", +" ..... ..... ", +" ", +" ..... ..... ", +" . .. ...... ", +" . . ...... ", +" .. . ...... ", +" .. . ..... ", +" .... .... ", +" "}; diff --git a/pixmaps/enc2.xpm b/pixmaps/enc2.xpm new file mode 100644 index 0000000..4fb87a0 --- /dev/null +++ b/pixmaps/enc2.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * enc2_xpm[] = { +"15 15 2 1", +" c None", +". c #000000", +" ", +" .... .... ", +" .. . ..... ", +" .. . ...... ", +" . . ...... ", +" . .. ...... ", +" ..... ..... ", +" ", +" ..... ..... ", +" ...... ...... ", +" ...... ...... ", +" ...... ...... ", +" ..... ..... ", +" .... .... ", +" "}; diff --git a/pixmaps/enc3.xpm b/pixmaps/enc3.xpm new file mode 100644 index 0000000..2eec25c --- /dev/null +++ b/pixmaps/enc3.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * enc3_xpm[] = { +"15 15 2 1", +" c None", +". c #000000", +" ", +" .... .... ", +" ..... ..... ", +" ...... ...... ", +" ...... ...... ", +" ...... ...... ", +" ..... ..... ", +" ", +" ..... ..... ", +" ...... ...... ", +" ...... ...... ", +" ...... ...... ", +" ..... ..... ", +" .... .... ", +" "}; diff --git a/pixmaps/ff.xpm b/pixmaps/ff.xpm new file mode 100644 index 0000000..eb8ae9e --- /dev/null +++ b/pixmaps/ff.xpm @@ -0,0 +1,12 @@ +/* XPM */ +static char * ff_xpm[] = { +"14 7 2 1", +" c None", +". c #FFFFFF", +" ", +" .. .. ", +" .... .... ", +" ............ ", +" .... .... ", +" .. .. ", +" "}; diff --git a/pixmaps/gcd.xpm b/pixmaps/gcd.xpm new file mode 100644 index 0000000..f472744 --- /dev/null +++ b/pixmaps/gcd.xpm @@ -0,0 +1,339 @@ +/* XPM */ +static char * gcd_xpm[] = { +"75 79 257 2", +" c None", +". c #020204", +"+ c #237ED8", +"@ c #820B1C", +"# c #11447C", +"$ c #88C0F4", +"% c #48060F", +"& c #864A84", +"* c #1864B6", +"= c #0B2440", +"- c #AF84B5", +"; c #4A457E", +"> c #8C305C", +", c #240205", +"' c #11549C", +") c #499FEC", +"! c #C9C1DF", +"~ c #422A4C", +"{ c #B31225", +"] c #95A9E1", +"^ c #0F345E", +"/ c #051425", +"( c #D04E6C", +"_ c #670A15", +": c #C6E0FC", +"< c #31437A", +"[ c #538FD5", +"} c #5265B1", +"| c #C9638A", +"1 c #2E5398", +"2 c #729EEC", +"3 c #821B34", +"4 c #2B8FE4", +"5 c #3666AC", +"6 c #BC2C44", +"7 c #2B1527", +"8 c #C8A8CC", +"9 c #F9C0CB", +"0 c #9A0E1D", +"a c #A9D3F4", +"b c #B52039", +"c c #1E74CC", +"d c #170204", +"e c #215498", +"f c #2D2442", +"g c #2A345E", +"h c #20447C", +"i c #4A192F", +"j c #191426", +"k c #661C34", +"l c #DB2C44", +"m c #D884A0", +"n c #CBB3D4", +"o c #3A7FD0", +"p c #37060C", +"q c #D25A74", +"r c #2567BC", +"s c #68264C", +"t c #3E457D", +"u c #475AA7", +"v c #760B1A", +"w c #1D2340", +"x c #56A2EC", +"y c #E2627C", +"z c #67B0F3", +"A c #154C8B", +"B c #570914", +"C c #165CA8", +"D c #E9D1DC", +"E c #103C6E", +"F c #040B17", +"G c #81142C", +"H c #081C33", +"I c #CD2038", +"J c #E53C54", +"K c #FADEE4", +"L c #B5D6F4", +"M c #F490A1", +"N c #B2BEE8", +"O c #3F91E3", +"P c #72427C", +"Q c #981524", +"R c #290B18", +"S c #C2DAF4", +"T c #C2182E", +"U c #391427", +"V c #77B6F4", +"W c #2C80D9", +"X c #1B6BC1", +"Y c #0D2C51", +"Z c #304C8A", +"` c #E89EB0", +" . c #5BABEE", +".. c #906AA8", +"+. c #484E92", +"@. c #D7C2D8", +"#. c #483869", +"$. c #160B16", +"%. c #F7B0BD", +"&. c #EE586D", +"*. c #F37386", +"=. c #8E0C1D", +"-. c #18447D", +";. c #96C6F4", +">. c #9C2E54", +",. c #175499", +"'. c #9DB7E9", +"). c #EEC7D4", +"!. c #215CA7", +"~. c #761227", +"{. c #BADBF8", +"]. c #EC5E74", +"^. c #0C0204", +"/. c #47111F", +"(. c #2C020B", +"_. c #E8485F", +":. c #671325", +"<. c #DBEBFC", +"[. c #3F549A", +"}. c #283D72", +"|. c #F57F91", +"1. c #3A88DE", +"2. c #B594C2", +"3. c #1F335E", +"4. c #0B1426", +"5. c #CE3E5C", +"6. c #C31E34", +"7. c #2776CC", +"8. c #3B2447", +"9. c #151E38", +"0. c #A44A7C", +"a. c #4E76C4", +"b. c #6E86D4", +"c. c #967AB4", +"d. c #B0A0CC", +"e. c #CA729C", +"f. c #E6F0FC", +"g. c #663767", +"h. c #625AA4", +"i. c #6E66B4", +"j. c #A11B37", +"k. c #A04274", +"l. c #B06494", +"m. c #3272C8", +"n. c #7E427C", +"o. c #B2B0D8", +"p. c #AA5284", +"q. c #A3CDF4", +"r. c #581831", +"s. c #DECEE4", +"t. c #6E7AC8", +"u. c #CC96B8", +"v. c #7E96DC", +"w. c #A69ECC", +"x. c #DA6C8C", +"y. c #F6A0AE", +"z. c #DBB6CF", +"A. c #B676A4", +"B. c #463058", +"C. c #62325C", +"D. c #FAD7DC", +"E. c #882448", +"F. c #573869", +"G. c #B03C64", +"H. c #E1344C", +"I. c #F26C80", +"J. c #4398EC", +"K. c #65A9EE", +"L. c #3498E4", +"M. c #46AAEC", +"N. c #271B33", +"O. c #262C50", +"P. c #370D1A", +"Q. c #3D4B8D", +"R. c #1D2D54", +"S. c #4A6EBC", +"T. c #CE6E94", +"U. c #4A223C", +"V. c #560F1E", +"W. c #6A4C88", +"X. c #F9B8C3", +"Y. c #EE5066", +"Z. c #3D69B4", +"`. c #CA2C40", +" + c #CAC7E4", +".+ c #B9172C", +"++ c #4E9AEC", +"@+ c #214C89", +"#+ c #D9A5BF", +"$+ c #58569C", +"%+ c #B64A7C", +"&+ c #72396C", +"*+ c #F698A6", +"=+ c #2F88DF", +"-+ c #F68899", +";+ c #362E54", +">+ c #F6A8B4", +",+ c #D1E5FC", +"'+ c #1E3C6C", +")+ c #901326", +"!+ c #544C8C", +"~+ c #D7263D", +"{+ c #3E76D4", +"]+ c #70B4F4", +"^+ c #7E8ED4", +"/+ c #BCA2C8", +"(+ c #D87694", +"_+ c #A41429", +":+ c #468AD8", +"<+ c #8D4074", +"[+ c #564684", +"}+ c #A60E21", +"|+ c #36335E", +"1+ c #FAD1D6", +"2+ c #533159", +"3+ c #305AA8", +"4+ c #BA5684", +"5+ c #692241", +"6+ c #E74259", +"7+ c #3C1A34", +"8+ c #EAA6BC", +"9+ c #DACADF", +"0+ c #5A1E3C", +"a+ c #745AA0", +"b+ c #2386D9", +"c+ c #B68ABC", +"d+ c #DC8AA4", +"e+ c #B26A9C", +"f+ c #BAB6DC", +"g+ c #76325C", +"h+ c #8DC6F4", +"i+ c #58A6EC", +"j+ c #7CBAF4", +"k+ c #EEF6FC", +"l+ c #336EC4", +"m+ c #B82644", +"n+ c #7E5290", +"o+ c #1E7AD0", +"p+ c #236EC2", +"q+ c #A23664", +"r+ c #425AA4", +"s+ c #C02644", +"t+ c #683E74", +"u+ c #543E74", +"v+ c #C8324C", +"w+ c #BE3244", +"x+ c #522949", +"y+ c #3490E5", +"z+ c #E25E7C", +"A+ c #F26478", +"B+ c #FAC8D1", +"C+ c #343C70", +"D+ c #72A6EC", +"E+ c #CF263C", +"F+ c #F67A8C", +"G+ c #768ECC", +"H+ c #367ACC", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^.. ^.^.^.^.^.d ^.^.d ^.^.^.^.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . ^.^.^.d d d d , , , , , , , d , d d d d d ^.^.. . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . ^.^.d , , , (.(.p p p p % p % p p p (.(.(., d d d ^.^.. . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . ^.^.d , , (.(.p % % B B B _ _ _ _ _ _ _ B B B % % p (., , d d ^.. . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . ^.^.d , , (.p % B _ _ v =.=.}+.+6 6 6 6 6 .+0 =.v _ _ _ B % p (., , d . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . ^.d d (.(.% B _ _ =.}+T H.&.*.-+>+%.X.X.X.%.>+|.A+J l { 0 @ _ B B p (., , d ^.. . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . ^.d d (.p % B _ v }+I Y.-+>+B+D.D.D.1+B+B+B+B+1+1+1+D.B+9 y.*.6+T 0 v _ % % (., d ^.. . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . ^.d , p p B _ @ { J |.%.1+D.B+%.*+|.A+_.J J J J 6+&.*.-+>+9 D.K 1+>+A+l }+v _ % p (., d ^.. . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . ^.d d , p % _ v { _.*+B+K B+*+I.J I { }+=.@ @ v v v @ =.0 }+T l Y.-+X.D.D.X.F+l }+v B % (., d ^.. . . . . . . . . . . . . . ", +". . . . . . . . . . . . ^.^., (.% B v }+J M 1+D.B+|._..+0 v v _ _ B B B B B B B B B _ v v =.}+~+&.M 1+D.9 *.I =._ B p (.d d . . . . . . . . . . . . . ", +". . . . . . . . . . . ^.d , (.% B @ I *.B+K 9 F+H.}+@ _ _ B % % p p p (.(.(.p p p p % % B B _ v =.{ J -+1+K %.Y.{ v B p (., ^.. . . . . . . . . . . . ", +". . . . . . . . . . ^.^., p % _ 0 H.>+K 1+-+l }+v _ B % p (.(., , , d , d d d d d , , , (.p % % B _ @ { _.>+K D.|.I v B % (.d d ^.. . . . . . . . . . ", +". . . . . . . . . ^.d , (.B _ { ].B+K X._.{ v _ B % p (., , d ^.^.^.^.^.^.^.^.^.^.^.d d d , , (.% % B _ =.I *.B+K >+H.=.B % (.d ^.. . . . . . . . . . ", +". . . . . . . . ^.^., (.B _ }+I.1+D.M l =._ B % p , , d ^.^.^.^.. . . . . . . . . . . . ^.^.d d , (.p % B _ }+_.X.K X.6+=.B % (.d d . . . . . . . . . ", +". . . . . . . ^.d d p % _ .+*.D.D.I..+@ _ % p , , ^.^.^.. . . . . . . . . . . . . . . . . . . ^.^.d , (.% % _ =.l y.K 9 6+=._ % (.d ^.. . . . . . . . ", +". . . . . . . ^., (.% _ { F+D.1+I.{ _ B % (., d ^.^.. . . . . . . . . . . . . . . . . . . . . . . ^.^.d , p % B @ I *+D.9 _.=.B p (.d ^.. . . . . . . ", +". . . . . . ^.d (.% _ }+A+D.1+&._+_ B p , d ^.^.. . . . . . . . . . . . . . . . . . . . . . . . . . ^.^.d , (.% B v I M K 9 H.@ B p , d . . . . . . . ", +". . . . . ^.d , p B =._.1+1+]._+_ B p , d ^.^.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^., , % B v I *+K %.I v B (., d . . . . . . ", +". . . . . ^., p B v l X.K |.{ _ % p , d ^.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^.d (.p B @ ~+%.K -+{ _ % (.d ^.. . . . . ", +". . . . ^.d (.% _ { *+K y.T v B p , d ^.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^.^.d (.% B =.J B+1+Y.=.B p , d ^.. . . . ", +". . . ^.d , p _ =.&.D.9 H.v B p , d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^.d (.% _ 0 I.K X.l v B (.d ^.. . . . ", +". . . ^.d (.% _ ~+X.D.A+0 _ % (.d ^.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^.^., p % v I y.K |.{ _ % (.d ^.. . . ", +". . . d , % _ 0 I.D.*+{ v % (., ^.^.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^.^., p B @ 6+1+B+6+@ B (., ^.. . . ", +". . ^.d (.% v l 9 1+_.=.B p , d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^.d (.% _ }+F+K M { _ % , d ^.. . ", +". ^.d , p _ 0 I.D.M { _ % (.d ^.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^.d , p B v l X.B+J v B (.d ^.. . ", +". . d (.% _ I %.B+6+@ B p , d . . . . . . . . . . . . . . . . . . . . . . ^.. . . . . . . . . . . . . . . . . . . . . . d , % _ }+|.D.|.}+B % , d . . ", +". ^., p B =._.1+y.T v % (.d ^.. . . . . . . . . . . . . . . . . ^.^.d d d d d d d . ^.. . . . . . . . . . . . . . . . . d d p B v J B+X.~+_ % (.d . . ", +". d , p _ }+-+D.A+0 _ p , ^.. . . . . . . . . . . . . . . . . ^.d d , , (.(.(., , d d d . . . . . . . . . . . . . . . . ^.d (.% v .+y.1+Y.=.B (., ^.. ", +"^.d (.% v l 9 B+J v B p , ^.. . . . . . . . . . . . . . . ^.d d (.(.% % % % % % % (., , d . . . . . . . . . . . . . . . . ^., p _ =.].1+-+}+_ p , d . ", +"^.d p B @ &.1+>+T _ % , d ^.. . . . . . . . . . . . . . ^.d , (.% B _ _ @ @ @ _ _ B % (., d d . . . . . . . . . . . . . . ^.d (.B v H.B+X.~+_ % (.d ^.", +"^., p _ }+|.D.F+}+_ % , ^.^.. . . . . . . . . . . . . d d , p B B =.{ l _.Y._.l { =._ B p , d ^.. . . . . . . . . . . . . ^.d (.% v .+y.B+6+@ B (.d ^.", +"^., % _ { *+D.Y.@ B p d ^.. . . . . . . . . . . . . ^.d , p B v T &.y.9 1+1+D.B+y.&.T v B p , d ^.. . . . . . . . . . . . . ^., % _ }+|.D.I.=.B p d ^.", +"d , % _ E+%.9 H.v B (.d ^.. . . . . . . . . . . . . ^., p B @ ~+*+D.D.X.M -+*+X.1+D.*+l @ B p , d . . . . . . . . . . . . . ^.d p B =.A+D.M { _ p , ^.", +"d (.% v J B+%.T _ % (.d . . . . . . . . . . . . . ^.d (.% _ ~+>+K B+I.l { }+{ I A+9 K %.~+v % (.d ^.. . . . . . . . . . . . ^., p B @ _.1+>+b _ % , d ", +"d (.B @ &.1+y.{ v % , d . . . . . . . . . . . . . d , p B }+F+K %.H.}+@ @ v @ @ }+J X.K -+{ _ p , d . . . . . . . . . . . . . d (.B v H.B+X.`._ % , d ", +"d p B )+|.D.-+}+_ p , ^.^.. . . . . . . . . . . ^.d (.% _ l 9 B+6+0 v _ B % B _ v 0 _.B+B+H.v % (.d ^.. . . . . . . . . . . ^.d (.% v I %.B+_.v % , d ", +"d (.B Q M D.*.0 _ p , ^.. . . . . . . . . . . . . d (.B =.].D.-+{ @ B % p p p % B @ { M D.I.0 B (.d ^.. . . . . . . . . . . . d (.% _ T >+1+&._ % (.d ", +", p B Q M D.I.0 _ p , ^.. . . . . . . . . . . . ^., p B }+|.1+A+0 v B p (., , p B v 0 A+D.|.}+B p , ^.. . . . . . . . . . . ^.^.(.% v T >+1+].v B (.d ", +"d p B Q M D.I.0 _ p , ^.. . . . . . . . . . . . ^.d p B { -+1+&.=._ B (., , , (.% _ =.&.1+-+}+B p d ^.. . . . . . . . . . . ^.^., % _ .+>+1+z+v % (.d ", +", p B Q M D.I.=._ p d d . . . . . . . . . . . . ^., p B 0 |.D.I.0 v B p (., (.% B v }+I.D.*.0 B (., ^.. . . . . . . . . . . . d , % v T >+1+]._ B (.d ", +"d p B Q -+D.*.0 _ % , ^.. . . . . . . . . . . . ^.d (.B @ &.D.>+T =._ B p p % B _ @ T >+1+_.@ B (.d ^.. . . . . . . . . . F . d R % _ T %.1+&._ % , d ", +", (.B @ I.D.M }+_ p , d . . . . . . . . . . . . . d (.% _ ~+X.D.*.{ @ v _ _ B v @ { I.D.>+T _ % , d . . . . . . . F F F F F $.$., V.v ~+9 ).6+_ % (.d ", +"d (.B v _.B+y.T _ % , d . . . . . . . . . . . . . ^., p B 0 A+D.1+*.T 0 @ @ @ 0 I *.1+D.&.=.B p d d . . . . . . F / / H / / 4.j R /.v J B+%.`._ % , d ", +"d (.% v H.B+%.I v % (.d ^.. . . . . . . . . . . . ^.d (.% _ { |.D.D.y.&.H.~+H.].>+D.D.F+}+_ % , d ^.. . . . F F / / H H = = 9.7 U r.G &.1+y..+_ p , ^.", +"d , % _ I >+B+H.v B (.d ^.. . . . . . . . . . . . . ^.d (.% _ { ].%.D.1+).X.9 1+D.X.&.{ _ % (.d ^.. . . . . F F H = Y E E ^ Y w 7+r.)+*.D |._+B p , ^.", +"^., p _ }+M 1+&.=.B p d ^.. . . . . . . . . . . . . . d , p % _ =.I z+*+8+X.8+M y I =._ % (., d . . . . . F / H = Y * y+x ) p+O.8.r.j.M 1+&.@ B p d ^.", +"^., p B 0 A+1+-+}+_ % , d . . F F F F F F F F F . F . ^.d , R % /._ G j.b 6 b _+G _ V.p p d ^.^.. . F F / F H H Y E c h+: ;.o O.~ k 6 8+).l v % (.d ^.", +". d (.B v J B+%.T v % (.$.F / F / / / / / / / / / F F F F $.$.R U U i i 0+0+0+0+i U P.R d $.^.. F F F / / H = Y ^ E b+a <.L :+C+2+s ( ).` T _ % (.d . ", +". d , % _ .+y.1+_.@ V.P.j j H H H = = = = H H H H H / F F F j $.N.N.f 8.f 8.f 8.f N.j j $.F F F / / / = = = ^ E # A + a f.L :+C+2+E.m D *.0 B p , ^.. ", +". ^., p B 0 I.1+-+_+r.U 7 9.= Y Y ^ ^ Y ^ ^ ^ ^ Y = = H H 4./ 9.9.w R.3.g 3.g 3.R.w w 4./ F / / / = = Y ^ E E # ' ,.=+L f.S [ t 2+G.z.).J v B (.d ^.. ", +". ^., (.B v J ).X.6 k U.f R.^ # ' ' ' A E # E A A E Y = = = = = Y ^ E A C C ,.A E ^ Y = = H H = = Y ^ # ' C C ' ' C O L f.L [ ; g+| @.8+T _ % (.d ^.. ", +". . d , % _ .+` D x.E.x+|+}.* 4 i+z .4 X A c 4 4 o+A ^ Y Y Y ^ # * =+i+z z z i+=+C E ^ Y = = Y ^ # * =+i+z .) =+p+x S f.S [ ; <+u.9+q )+B p , ^.. . ", +". . ^., (.B =.y D #+q+F.< 7.]+{.,+,+{.a j+O .a {.M.C E E E E # b+]+L : : : {.,+a ]+c E E ^ ^ E # c ]+{.,+,+{.{.q.]+;.,+k+L [ [+l.! #+s+v % (.d ^.. . ", +". . ^.d (.% _ s+#+ +A.t+X j+<.f.: h+V j+a q.L f.<.z C A # # A o+h+<.<.a ]+z j+a <.<.V X E # E # X j+<.f.,+;.j+V q.S ,+f.f.S [ n+d. +(+)+V.p , d . . . ", +". . . d d P.V.G | ! o.} ) : f.: K.o+X p+J.q.<.f.f.j+* A A A C .<.<.;.O * C X O q.<.: L.' A A C ) : f.: .7.X c O q.<.f.f.L [ c.N 8 w+:.% (.d ^.. . . ", +". . . ^.d R /.:.>.2.'.7.;.f.,+z r e ,.C C ++S f.<.j+* C ,.' + a f.{.O ,.,.,.A ' L.a a M.C A ' c h+f.,+z r C e !.!.O L f.f.S [ ] N | 3 V.P., d . . . . ", +". . . . d d P.i s p.G+) : f.;.7.!.e @+A ,.X j+<.<.j+* C ,.C J.: <.j+p+A A # -.# C b+4 o+' ' ' y+{.f.;.+ ,.A A ,.e r ]+<.f.{.[ '.c+> k /.R d ^.. . . . ", +". . . . . d 7 7+x+&+} V ,+<.V r Z Z h A A ,.++: <.j+X C C * z <.,+ .C A E E E E E A ' ' A ' C .,+<.V * A A -.h e e ++: k+S ++] p.s i P., ^.. . . . . ", +". . . . . ^.$.N.~ u+5 ;.<.,+x 3+Q.< }.h A A 1.{.<.j+X * C * V <.,+J.' A E ^ ^ ^ ^ E E # A ' C z <.,+i+C A -.-.h Z 1 1.L f.S [ ..g.x+U R d . . . . . . ", +". . . . . F $.7 f #.Z.;.<.,+x u +.Q.< < h e =+a <.j+X * * * j+f.: J.' # ^ ^ Y ^ E E # A ' ' * z <.: x ,.@+-.}.< Z [.1.L f.L [ W.2+8.7 $.^.. . . . . . ", +". . . . . . F 9.f |+5 ;.<.,+i+a.a+!+t t @+e 1.L <.j+X * * * ]+<.,+++' A E ^ ^ ^ E E # # ' ,.* .<.,+i+C @+h < t +.r+y+S f.{.[ ; B.f j $.^.. . . . . . ", +". . . . . F F 4.w g 1 j+<.<.V :+^+a+!++.[.e ++: <.V * !.C * K.,+,+i+C A # E E E E A ' ' # ' C i+,+<.j+* 1 Z Q.+.$+} x : k+S [ t g N.j ^.. . . . . . . ", +". . . . . . F 4.= 3.h x ,+f.q.1.2 v.i.$+r+r j+<.f.j+X !.!.C J.,+f.$ p+' A # # A * L.L.b+' ,.,.1.{.f.q.o 3+[.[.h.t.H+j+<.k+L [ < O.9.4.F . . . . . . . ", +". . . . . . F F 9.Y '+W q.f.,+]+:+K.2 t.Z.x : f.<.j+* !.e ,.+ q.f.: x C ,.' ' C ) a : L.C @+e c $ f.<.j+m.r+i.b.:+x : <.f.L [ }.R.H / . . . . . . . . ", +". . . . . . . F 4.Y 3.' .,+f.: ]+1.o =+x L f.f.f.j+r 1 1 e C .,+f.{.x m.X p+x {.<.a b+A @+Z !.J.: f.,+j+1.H+1.x S <.<.f.L :+'+w H F F . . . . . . . ", +". . . . . . F F / = ^ -.c $ <.f.,+q.$ ;.{.L : f.<.j+* [.Z < Z c $ <.f.{.h+j+;.{.<.: .!.< C+t Q.p+V <.f.,+q.;.;.{.L S <.<.q.1.^ = 4./ . . . . . . . . ", +". . . . . . . F / H Y E ,.+ j+{.,+,+{.a j+x $ ,+f.j+r !+!+; t Z c .a : : : : {.h+) * t u+#.F.t+W.7. .a ,+: : L $ x K.j+$ K.c ^ = / F . . . . . . . . ", +". . . . . . . F / 9.Y E A ,.X y+) i+) 4 7.S.x S <.V l+..& &+g.F.; !.o+O ) i+) y+c 1 F.C.g+> k.e+2.] o + J.i+) =+p+e ,.* * C # = H F F . . . . . . . . ", +". . . . . . . F / H Y E A C !.* * r * r m.l+J.S <.]+H+] d.c+l.p.k.<+P +.+.[.[.[+n.<+0.4+T.u.n + +o.- n+Z e e < }.h }.E ^ Y = H / F F . . . . . . . . ", +". . . . . . . F F H Y E ,.C * C r r r l+l+l+K.: ,+x S.w.f+@. +n f+8 2.- - - - c+/+8 n @.s.s.@.u.T.G.> C.2+B.|+g g R.R.= = H / / F F . . . . . . . . . ", +". . . . . . . F / H Y C 4 M. .y+* r * r * 1.a <.a b+[+<+%+| d+#+z. +9+ + +! + + +@.z.` d+y 5.b 3 k 0+U.8.f N.9.9.H H H H / F F F . . . . . . . . . . ", +". . . . . . . . F / Y ' L.a ,+a x + c 7.J.;.,+: .!.#.x+5+3 j.m+5.q (+m m m m m x.( w+b _+)+~._ V./.U 7 7 j j j F 4.F F F F F F . . . . . . . . . . . ", +". . . . . . . F F / = ^ * L.h+L q.$ ]+j+q.a $ J.* }.;+8.U.i V.:._ ~.G 3 3 3 G 3 ~.v :._ B B % % p (.R $.$.$.F F F F F . F . . . . . . . . . . . . . . ", +". . . . . . . . F / H = ^ ' c J. .z z .i+y+c A ^ R.N.7 R P.P.P.% /.% B V.B V.B B % % % p p (., , d ^.^.. . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . F / H = ^ ^ # A C * C ,.# ^ Y = 9.H j d $., , (.(.(.(.(.(.(.(.(.(., , , d d d ^.^.^.. . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . F F / H = = Y ^ ^ Y Y Y Y Y = H 4.F F ^.^.d ^.d d d d d d d d d d d ^.^.^.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . F F F / H H H = = = H H / / / F F . . . . . . ^.^.^.^.^.^.^.. . ^.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . F F F F F / / / / / F / F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . F F F F F F F F F F F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; diff --git a/pixmaps/grip.xpm b/pixmaps/grip.xpm new file mode 100644 index 0000000..2956205 --- /dev/null +++ b/pixmaps/grip.xpm @@ -0,0 +1,338 @@ +/* XPM */ +static char * grip_xpm[] = { +"75 78 257 2", +" c None", +". c #040204", +"+ c #1182DF", +"@ c #870919", +"# c #0B447B", +"$ c #8B83C3", +"% c #48060C", +"& c #8E427C", +"* c #88C5F7", +"= c #4D447D", +"- c #072441", +"; c #C40C22", +"> c #0F64B3", +", c #39ADF4", +"' c #482546", +") c #8BA0D8", +"! c #C84773", +"~ c #280205", +"{ c #2B457C", +"] c #CDC3DD", +"^ c #C42B55", +"/ c #4E82D0", +"( c #292342", +"_ c #852854", +": c #680714", +"< c #2098EF", +"[ c #C6A9CA", +"} c #682549", +"| c #3362AF", +"1 c #C9648C", +"2 c #0D5498", +"3 c #CA82A7", +"4 c #031425", +"5 c #DD0E27", +"6 c #A70B1D", +"7 c #5DB1F4", +"8 c #0F76D2", +"9 c #4C66B0", +"0 c #A6D7FC", +"a c #CAE4FC", +"b c #8464A8", +"c c #09345F", +"d c #271428", +"e c #283560", +"f c #2B5498", +"g c #E72841", +"h c #471428", +"i c #2D84DA", +"j c #483461", +"k c #C85C86", +"l c #671933", +"m c #6ABFF4", +"n c #EA849C", +"o c #ADC0E9", +"p c #ADA2D0", +"q c #6E4480", +"r c #178DE9", +"s c #891833", +"t c #E2CEDE", +"u c #E8A7B9", +"v c #1F63B0", +"w c #1B447A", +"x c #A9284F", +"y c #F43A55", +"z c #569ADC", +"A c #170204", +"B c #359DF4", +"C c #1B5396", +"D c #171428", +"E c #A6447B", +"F c #D31C37", +"G c #38020C", +"H c #3D447C", +"I c #E21C35", +"J c #770914", +"K c #1A3865", +"L c #582547", +"M c #580611", +"N c #383460", +"O c #E7C4D5", +"P c #68376A", +"Q c #970A1C", +"R c #3A2547", +"S c #F56479", +"T c #1F75CD", +"U c #EB93A9", +"V c #B57FAF", +"W c #172443", +"X c #4A549C", +"Y c #D20E26", +"Z c #A71A3B", +"` c #8DCBFB", +" . c #B16295", +".. c #381427", +"+. c #F5546C", +"@. c #F9B0BC", +"#. c #E64866", +"$. c #7CADEE", +"%. c #0E6CC1", +"&. c #8BB4EC", +"*. c #1C82DF", +"=. c #4DADF4", +"-. c #3A5397", +";. c #F22C47", +">. c #581429", +",. c #041C33", +"'. c #0B3C6C", +"). c #7BC1F5", +"!. c #26A5F3", +"~. c #0C4C89", +"{. c #B60B1E", +"]. c #6C6BB3", +"^. c #FAE4E8", +"/. c #AAB5E0", +"(. c #208FEC", +"_. c #573665", +":. c #A5396F", +"<. c #0E5CA7", +"[. c #B7DCFC", +"}. c #7798D1", +"|. c #3C4C8B", +"1. c #EE1E39", +"2. c #280C18", +"3. c #C13C69", +"4. c #7084C7", +"5. c #863C74", +"6. c #A7D1FA", +"7. c #180C18", +"8. c #AB5890", +"9. c #9CD0FC", +"0. c #89589B", +"a. c #8D97D3", +"b. c #C695B8", +"c. c #70559A", +"d. c #B591BE", +"e. c #3379C9", +"f. c #8B75B7", +"g. c #A675AA", +"h. c #C777A0", +"i. c #4878AC", +"j. c #C7B7D6", +"k. c #F67689", +"l. c #E9F3FC", +"m. c #2B8FEA", +"n. c #7C8ECA", +"o. c #DAEDFC", +"p. c #7674BB", +"q. c #50BBF4", +"r. c #76A5EA", +"s. c #FAD4DA", +"t. c #668EDC", +"u. c #9DA7D9", +"v. c #951B3A", +"w. c #773363", +"x. c #9C8FC2", +"y. c #9C84BB", +"z. c #D42C51", +"A. c #992B56", +"B. c #7B2952", +"C. c #BA4778", +"D. c #5B58A1", +"E. c #DB90A8", +"F. c #66B8F4", +"G. c #3EA4F4", +"H. c #C0E2FC", +"I. c #D886A3", +"J. c #9868A5", +"K. c #9DB6E7", +"L. c #73BAF4", +"M. c #9B4780", +"N. c #955997", +"O. c #7DCCFC", +"P. c #4182CC", +"Q. c #D6476A", +"R. c #D7A8C2", +"S. c #DA5979", +"T. c #F68395", +"U. c #7A4A8A", +"V. c #FAA4B1", +"W. c #B62D55", +"X. c #5F9FE9", +"Y. c #FAC4CD", +"Z. c #F893A3", +"`. c #F64760", +" + c #D9C2D7", +".+ c #B9A3C9", +"++ c #B61C40", +"@+ c #BCB6DA", +"#+ c #D23960", +"$+ c #C1CAE9", +"%+ c #6072C4", +"&+ c #4E4C8B", +"*+ c #2F6BB1", +"=+ c #771831", +"-+ c #B85989", +";+ c #B878A6", +">+ c #DB7697", +",+ c #5B67B2", +"'+ c #BAC2E5", +")+ c #F66C81", +"!+ c #F55C73", +"~+ c #F9B8C2", +"{+ c #735CA6", +"]+ c #BB89B4", +"^+ c #B097C7", +"/+ c #68C8F8", +"(+ c #B06B9C", +"_+ c #8182BC", +":+ c #B63969", +"<+ c #983C73", +"[+ c #E2142E", +"}+ c #9EBEEC", +"|+ c #9E78B4", +"1+ c #D4B8D2", +"2+ c #482D53", +"3+ c #90AAE2", +"4+ c #2D4C8A", +"5+ c #292C52", +"6+ c #273C6E", +"7+ c #1A4C88", +"8+ c #171C36", +"9+ c #390B1B", +"0+ c #582C54", +"a+ c #362B52", +"b+ c #763C74", +"c+ c #2B9AF3", +"d+ c #7969B2", +"e+ c #CB6D94", +"f+ c #030C17", +"g+ c #890F24", +"h+ c #470B1A", +"i+ c #8E4D8E", +"j+ c #072C50", +"k+ c #C51328", +"l+ c #8C2F5E", +"m+ c #670F23", +"n+ c #672C56", +"o+ c #271B35", +"p+ c #2C5DA9", +"q+ c #E93049", +"r+ c #481C37", +"s+ c #483C70", +"t+ c #6D4C8F", +"u+ c #882041", +"v+ c #1E6CC1", +"w+ c #A93161", +"x+ c #50A5F2", +"y+ c #1A5CA6", +"z+ c #A94D84", +"A+ c #781022", +"B+ c #383C6E", +"C+ c #9B0F1E", +"D+ c #172C50", +"E+ c #4B5BA7", +"F+ c #381C36", +"G+ c #3B5CA8", +"H+ c #591C39", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A A ~ G G G G ~ A A A . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A A ~ G % M M M M % G ~ ~ A A A . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A A G % : ; 5 {.J : M % G ~ A A A . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . A A A A A A A A A A A . . . . . . . A ~ % : {.)+Y.Z.y 5 @ : M % G ~ A A . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . A A A A A A ~ ~ ~ ~ A ~ ~ A A A A A A . A A ~ G M : 1.s.^.s.^.V.y 5 J : % G ~ A A . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . A . A A A ~ ~ G G G G G % G G G G G G G ~ ~ ~ A ~ G % : 6 )+^.s.T.Z.Y.s.Z.;.{.: M G ~ A A . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . A A ~ ~ G G % % % M M : M M : : M M M M % % % G G G % M J 5 @.^.T.k+; g k.s.s.)+5 J M % G A A . . . . . . . ", +". . . . . . . . . . . . . . . . . . A A A ~ ~ % % % M : : J @ Q 6 {.{.; ; {.6 @ : : : : M M M : J @ ;.s.s.y 6 Q Q ; y ~+^.V.1.@ M % G A A A . . . . . ", +". . . . . . . . . . . . . . . . A A A ~ G % % M : : 6 Y 5 ;.`.+.k.k.T.T.T.k.!+`.g [+5 {.@ J J @ @ {.)+^.V.5 Q @ J J @ [+T.^.~+;.Q M % G A A . . . . . ", +". . . . . . . . . . . . . . . A A ~ G % % : : @ 5 ;.!+Z.~+s.s.s.~+@.@.V.V.~+s.s.s.Y.@.T.y 5 6 Q 6 [+~+^.S Q J : M M : J ; +.s.s.y Q M % G A A . . . . ", +". . . . . . . . . . . . . . A A ~ G M M : 6 [++.V.s.s.@.k.!+y ;.[+[+[+[+[+1.1.y !+T.~+^.^.V.I Q {.`.^.s.;.@ : % % % % M : Q y s.s.y Q M % ~ A A . . . ", +". . . . . . . . . . . . A A ~ G % M : 6 [+S ~+s.~+)+;.5 {.Q J J J : : : : J J @ Q ; y ~+l.s.y ; Y Z.^.Z.; J % G ~ ~ ~ G M : @ y Y.s.;.@ M G ~ A A . . ", +". . . . . . . . . . . . A ~ G % : J 5 !+Y.s.V.+.[+6 J J : : M M M % % % % M : J @ 6 Y V.^.V.I Y y s.^.+.Q : G ~ A A A ~ G % : @ y Y.Y.1.J M G ~ A . . ", +". . . . . . . . . . . A ~ G % : {.;.V.s.V.`.5 @ : : M % % % G G G G G ~ ~ G % : J Q I Y.^.)+; ; )+^.Y.1.J M G A A . . A ~ G % : Q `.s.V.5 : M G A . . ", +". . . . . . . . . A A ~ G M : 5 S s.s.S [+@ : : M % G G ~ ~ A A A A A A A ~ G M J Q y ^.s.y [+[+V.^.T.{.: % ~ A A . . . A ~ G % : {.)+s.+.Q M % ~ A A ", +". . . . . . . . A A ~ G M : 5 T.^.~+y {.J M % G G ~ ~ A A A A . A . . . A ~ G M J {.k.^.V.[+Y `.s.^.y @ M G ~ . . . . . . A ~ G M J [+V.s.1.J M G ~ A ", +". . . . . . . . A ~ G M J 5 V.s.Z.1.@ : M % G ~ A A A . . A . . . . . A A ~ G M J [+~+^.)+; k+k.^.~+5 J % ~ A . . . . . . . A ~ % M @ y ^.Z.Y : % ~ A ", +". . . . . . A A ~ G M : [+V.^.Z.5 : M % G ~ A A . . . . . . . . . . . . A ~ % : @ `.^.s.y 5 1.~+^.)+6 : % ~ A . . . . . . . A A ~ % : ; T.s.y @ M G ~ ", +". . . . . A A ~ G % : 5 Z.^.k.Y J M % G ~ A A . . . . . . . . . . . . . A ~ % : ; Z.^.Z.k+Y `.s.s.;.@ M G ~ A . . . . . . . . A ~ G M J 1.Y.V.5 : % ~ ", +". . . . . A A G % : {.k.^.T.; : M G ~ ~ A . . . . . . . . . . . . . . . A G M J 1.s.^.S Y k+k.^.V.5 J % ~ A A . . . . . . . . A ~ G M : 6 S s.;.J M G ", +". . . . . A ~ % M 6 `.s.V.5 : M G ~ A A A . . . . . . . . . . . . . . A ~ G : Q !+^.Y.;.[+1.~+^.)+6 : % ~ A . . . . . . . A A A ~ G M : @ g s.Z.; : % ", +". . . A A ~ G M : 1.s.Y.1.J M G ~ A . . . . . . . . . . . . . . . . . A ~ % : 5 V.^.T.; Y `.^.s.;.@ M % ~ A A A . . . A A A ~ ~ G % M J Q Y Z.Y.1.J M ", +". . . A A G % : 5 Z.s.y @ : % ~ A A . . . . . . . . . . . . . . . . A A ~ M J ;.s.^.+.Y Y T.^.V.5 J M G ~ A A A A A A ~ ~ ~ G G % M : @ C+6 k.^.+.Q : ", +". . A A ~ G M Q `.s.T.; : % G A A . . . . . . . . . . . . . . . . . A ~ % : 6 k.^.@.1.[+q+Y.^.S 6 J M % G ~ ~ ~ ~ G G G % M M : : J @ Q {.g V.^.V.Y : ", +". . A A G % : 5 V.~+[+J M G ~ A . . . . . . . . . . . . . . . . . . A ~ % J [+@.^.T.; ; k.^.s.`.Q @ : M % G G % % M M : : J @ Q {.5 1.`.T.@.^.^.~+[+: ", +". . A ~ % M Q +.s.!+6 : % ~ A . . . . . . . . . . . . . . . . . . . ~ G M @ y ^.s.y {.Y Z.^.s.!+6 Q J : : : : : : J @ 6 Y 1.y S T.@.s.^.^.^.s.~+k.5 M ", +". . A ~ % : 5 V.@.[+J M G A A . . . . . . . . . . . . . . . . . . A ~ % : 6 k.^.V.[+{.6 1.V.^.s.`.6 Q @ @ J Q {.5 1.`.k.V.Y.^.^.^.^.^.~+T.S ;.[+{.J M ", +". A ~ G M @ ;.s.!+Q : % ~ A A . . . . . . . . . . . . . . . . . A ~ G M J [+~+^.S 6 C+Q Q [+k.s.s.!+Y Y [+;.!+T.@.s.^.^.^.^.s.V.T.+.;.[+; Q J : M % G ", +". A ~ % : ; T.Y.1.J M G A . . . . . . . . . . . . . . . . . A A ~ G % : @ `.^.s.;.Q @ J J @ {.+.s.^.V.V.Y.s.^.^.^.s.Y.V.k.+.y I ; 6 Q @ J : M % G G ~ ", +". A G % : 1.Y.Z.Y : % ~ A . . . . . . . . . . . . . . . . A ~ ~ G M : @ ; T.^.V.Y @ : : : J @ {.!+^.^.^.^.s.V.T.S `.;.[+; Y 5 k+6 Q @ J M % G ~ ~ A A ", +"A A G M @ +.^.!+Q M % ~ A . . . . . . . . . . . . . A A A ~ G % M : @ Q q+Y.^.+.Q J : M M : J Q Y )+Z.k.+.q+[+k+Y 5 [+5 ; [+q+`.1.{.@ M % G ~ A A A . ", +"A ~ % : ; T.Y.1.J M G A A . . . . . . . . . . . . . A A ~ % M : @ {.5 y Z.^.Y.1.Q J M M M : J Q 6 {.5 ; 5 [+Y Y k+1.y !+T.V.Y.^.@.5 @ M G ~ A A . . . ", +"A ~ % : [+@.V.5 J % ~ A A . . . . . . . . . . . . A A G % : Q 5 `.T.V.Y.^.^.Z.; @ J : : : J @ C+6 {.; ; F q++.)+Z.@.s.^.^.^.^.l.s.;.@ M G A A A . . . ", +"A ~ % J 1.~+T.{.: % G A . . . . . . . . . . . . . A G % : {.y ~+s.Y.Z.Z.V.~+;.Q Q @ J J J @ Q {.5 q+!+T.V.Y.^.^.^.^.s.Y.Z.k.k.Y.^.`.@ M G A . . . . . ", +"A G % J `.s.!+Q M G ~ . . . . . . . . . . . . . A ~ G M {.!+s.Y.S 1.Y ; [+5 ; Q Q Q Q ; [+q++.T.V.s.^.^.^.^.s.V.T.+.y 1.; {.{.!+s.S Q M G ~ . . . . . ", +"A G M @ !+s.y @ M G A . . . . . . . . . . . . . A G M : 1.s.Y.y 6 @ @ @ J J @ @ Y 1.!+Z.~+s.^.^.^.^.Y.Z.k.`.1.5 6 Q J @ @ Q C+;.Y.k.6 : G A A . . . . ", +"~ G M C+T.s.g J M G A A . . . . . . . . . . . A ~ % M {.k.s.y Q J : M M : : J Q ;.s.^.^.^.s.@.T.!+y 1.Y 6 @ J : : : M M : J Q 5 V.Z.Y : G ~ A . . . . ", +"~ G M C+Z.Y.1.J M G A A . . . . . . . . . . . A ~ % : [+Y.T.; @ : M % % % M : @ 1.Y.^.~+S ;.[+{.Q J : : : M % % % % % % M : @ ; T.V.Y : % ~ A . . . . ", +"A G M C+Z.Y.[+J M G A A . . . . . . . . . . . A ~ % : ;.s.!+Q J M % ~ ~ G % : @ Y Z.Y.`.6 @ @ : : M % % % G ~ ~ ~ ~ ~ ~ G M J ; T.V.5 : % ~ . . . . . ", +"~ G M Z Z.Y.1.J M ~ A A . . . . . . . . . . . A ~ % J ;.s.!+Q J M % G ~ G % : J k+U @.I g+J M % % G G ~ ~ ~ A A A A A A G M : ; T.V.Y : % ~ A . . . . ", +"~ G M Z Z.~+1.J M G A A . . . . . . . . . . . A ~ % : 1.s.k.{.@ : % G G % M m+A+z.u U k+A+M % G ~ A A A A . . . . . A A G % : Y T.V.Y : % ~ A . . . . ", +"A G M C+T.Y.;.J M G A A . . . . . . . . . . . A ~ G : 5 V.~+1.@ J : M M M m+=+s S.t S.s >.h+~ A A A . A . . . . . . . A G % J Y Z.V.Y : % ~ . . . . . ", +"~ G M J S s.y J M G ~ A . . . . . . . . . . . A ~ G M Q +.^.V.[+@ J m+: m+=+u+! j.[ W.H+h 2.7.A A . . . . . . . . . . A G % J [+~+T.{.: G ~ A . . . . ", +"A G M J `.s.`.@ : % ~ A . . . . . . . . . . . . A ~ % : 5 Z.s.V.;.; C+g+v.^ 1 @+'+8.n+' F+d A . . . . . . . . . . . . A G M J 1.Y.S Q M G A A . . . . ", +"A G M : q+s.S Q : % ~ A . . . . . . . . . . . . A A G % : [+n s.O I.S S.>+.+) 8 m.c++ K ( D f+f+. . . . . . . . . . A ~ G M J y s.+.@ M G A A . . . . ", +"A ~ % : [+@.Z.; : % ~ A . f+f+f+. . . . . . . . . A ~ 9+h+m+; z.I.~+t +] .+p.r 9.0 , 2 D+8+D f+f+f+. . . . f+f+. f+7.2.9+: Q +.s.;.J % G A . . . . . ", +"A ~ G : {.T.Y.1.: M 2.7.7.f+4 f+f+f+f+f+f+f+f+f+. . 7.2...h+>.A+++z.3.3.:+<+= r [.a , ~.c - ,.4 f+f+f+f+f+4 4 f+f+4 D 2.h+m+6 T.~+5 : % ~ A . . . . . ", +". ~ % M @ +.s.y A+>...D D ,.,.,.,.,.,.,.,.4 4 ,.4 4 4 D d d F+r+' L L 0+_.s+w 8 , , r ~.c j+- ,.,.,.,.,.,.,.,.,.- 8+8+o+r+l F u n ; M % ~ . . . . . . ", +". A G % : g Y.>+Z H+' ( j+j+j+c j+j+j+j+j+- - - - ,.,.,.8+W ( 5+5+N N B+B+{ 4+~.2 <.2 # '.j+j+- j+j+j+j+- j+j+c c D+5+a+' } Q. +S.g+M G A A . . . . . ", +". A ~ % : k+E.1+^ L 2+e K '.~.~.# # '.'.'.'.'.'.c c c j+D+c '.K w w w 7+'.7+C y+y+y+2 7+# c '.c '.'.'.'.'.# '.# ~.# 6+B+s+l+V ] z.m+h+~ A . . . . . . ", +"A A ~ G >.g+S.$+ .P B+2 + c+, =.G.< 8 2 ~.> 8 + %.# '.'.# > 8 + 8 <.r r %.2 2 > + r %.# ~.# '.> 8 + %.2 2 + < G.=., c++ y+i+/.b.x >.9+2.A . . . . . . ", +". . A 2.h+l ^ @+^+t++ F.0 a o.o.o.H.9.=.+ B 9.0 , > ~.~.<., 0 0 L.).0 O.+ <.<.< 9.6.!.2 2 2 2 !.0 9.G.r 7 9.a o.o.o.a 0 F.+ }.8.n+r+..7.A . . . . . . ", +". . A 2...H+l+V }.r 0 o.l.l.o.H.a o.l.a 6.6.o.o.m %.2 2 > F.o.a a o.l.9.+ <.<.G.a o.q.<.2 2 <.7 l.o.[.6.a o.o.H.a o.l.l.l.0 < t+j R o+7.A . . . . . . ", +". . . 7...' _.i+r 0 l.l.a * x+B B 7 * o.o.a a o.).> <.<.> ).a a a o.` !.%.<.> G.o.l.m <.<.<.> F.o.a a o.a ` =.B B =.` o.l.o.0 r B+e W 4 f+. . . . . . ", +". . . 7.o+R s+v m l.l.a =.v+C 7+7+2 8 7 a [.6.a ).%.> > > ).o.a a * + <.2 <.<.=.o.o.L.> <.> > L.a [.[.H.7 8 C C f f 8 F.o.l.l.L.%.e D+,.f+. . . . . . ", +". . f+D 8+5+B+c+[.l.o.=.| -.4+w w ~.~.<.7 a a o.* %.> > > * o.o.6.r 2 2 2 2 <.G.a l.L.> > <.> L.l.a a 7 > 7+7+{ H &+c.P.7 o.l.H.< 6+D+8+f+f+. . . . . ", +". . f+f+W e C F.o.l.` 8 c.H B+e e K # ~.T 9.o.l.* %.> > > ).l.l.F.<.2 ~.# ~.2 G.a o.).<.<.> > m l.l.* 8 C w 6+N s+b+f.$.T ` l.o.F.~.c - 4 . . . . . . ", +". f+f+4 ,.K v ` l.o.7 z f.b+j a+5+D+'.# 2 7 o.l.).%.> > > ).l.a G.2 # '.# # 2 , o.o.L.> <.> > L.l.a =.2 w 6+N 2+n+ .}+a.E+7 o.l.* > c - 4 f+. . . . . ", +". . f+4 - K e.6.l.a B }.&.(+w.L R ( e w 2 G.o.l.* %.> > %.).l.a G.~.# '.'.# 2 G.a o.).<.<.<.> L.o.a B C 6+N 2+} C.@+/.0.X B a l.6.8 c - 4 f+. . . . . ", +". . f+4 - K i 0 l.a G.{+3+/. .u+L a+e w C G.a l.).%.> > > ).l.a !.~.# '.'.# ~., a l.m <.> <.<.).o.a B f H j } 3.@+'+8.= -.B a l.6.+ c - 4 f+. . . . . ", +". . . 4 - c v ` l.o.=.-.0./.'+-+B._.B+{ C =.o.l.* %.> > %.).l.a B ~.'.c c '.~., a l.L.> <.> <.L.l.a x+f |._.E [ '+ .b+H f x+o.l.* > c - 4 f+. . . . . ", +". . f+f+- j+~.F.l.l.).> &+0./.o .5.H 4+%.).l.l.* %.> > > ).l.o.!.~.'.'.c '.~., a l.L.> y+y+> L.l.o.).v D.0.u.o (+b+H 4+> ).l.l.F.2 j+,.4 f+. . . . . ", +". . f+4 ,.j+'.B H.l.[.B f &+0.u.K.$ c.G+c+H.o.l.* %.v v > ).l.a c+~.'.c c '.# G.a o.L.> v v <.m o.a [.B %+$.3+f.b+H 4+C B a l.a B # j+,.4 f+. . . . . ", +". . f+f+4 - '.8 ` l.l.6.(.f X {+}.$./ m.[.a H.a * %.v v > ).l.o.!.# K K c '.# , o.o.).<.v p+y+F.a 6.6.0 B P.d+&+-.f y+B [.l.l.` 8 c - 4 f+f+. . . . . ", +". . . . 4 - c ~.< H.l.o.0 =.*.8 8 (.=.0 o.a H.o.).%.| p+> ).l.a G.7+K K e 6+w G.o.l.m > p+| > F.H.9.* [.[.7 m.T 8 (.7 [.l.l.H.< # j+- 4 f+. . . . . . ", +". . . . f+,.j+'.2 , a l.l.a [.9.9.[.a o.H.a o.o.).%.| p+> ).o.a B { 6+N a+N { G.a l.F.<.G+E+v F.o.a a a l.o.[.9.9.[.o.l.l.a , <.c - 4 f+f+. . . . . . ", +". . . f+f+4 j+c ~.> B 9.a o.l.l.o.o.H.* X.}+o.l.L.v+{+E+> =.H.[.(.H j 2+2+j H < [.H., y+d+4.T L.l.o.[.L.* H.o.o.o.l.o.a ` c+<.c j+,.4 f+f+. . . . . . ", +". . . f+f+,.- c # ~.<.+ G.F.* ` ).=.< v+e.L.o.o.7 e.}._+C + < < %._.B.B.B._ P %.(.< + | $.$.*+L.l.o.* v+8 c+7 L.` ).7 c+8 # c j+,.4 f+. . . . . . . . ", +". . . f+f+4 - c # ~.<.> > > %.8 %.<.v+T %.* l.a G.,+a.3+3+}.n.n.p.;+h.h.h.3 .+n.}.}.}.a.$ d+v L.l.o.7 y+y+y+2 > > > 2 # c j+- ,.4 f+f+. . . . . . . . ", +". . . f+f+,.- # <.> %.<.%.%.%.%.v+%.%.T B [.l.[.+ &+& E z+(+]+b.j.] 1+ + +1+[ ]+V .z+<+b+= y+L.o.o.=.C C 7+'.'.c c j+j+- - 4 4 f+. . . . . . . . . . ", +". . . . f+4 - <.!.q./+m m.> v+v+v+%.> m.6.l.o.m > B+j 0+} =+v.W.! S.S.!+S.#.#+x u+} L 0+j H C L.o.a G.7+w '.c j+- - - ,.,.4 f+f+. . . . . . . . . . . ", +". . . f+f+4 - '.r 0 o.l.[.F.c+r *.c+7 0 l.l.[.r { e R r+h >.H+>.>.m+m+J m+m+m+>.>.H+r+R a+6+2 F.o.a G.~.c j+- ,.,.4 4 f+f+f+. . . . . . . . . . . . . ", +". . . . . 4 - j+~.< 0 o.l.o.[.0 0 [.a o.o.6.< ~.K W o+..9+9+9+h+h+h+% h+h+% h+h+9+9+..o+( K ~., H.[.< '.j+- 4 4 f+f+. f+f+. . . . . . . . . . . . . . ", +". . . . . f+4 - j+# r 7 6.H.a o.o.o.a 0 7 + # c - 8+D 7.7.~ 7.~ ~ ~ ~ ~ ~ ~ 2.~ ~ 7.7.D D D+# + < < 8 c - ,.f+. f+. . . . . . . . . . . . . . . . . . ", +". . . . f+f+4 ,.- j+c 2 + B 7 L.L.7 G.+ 2 '.j+- ,.D f+f+. A A A A A A A A A A A A A . f+4 ,.- c '.'.c - ,.4 f+f+. . . . . . . . . . . . . . . . . . . ", +". . . . . f+f+f+,.- j+c '.'.# ~.~.# '.c j+j+- ,.4 f+. . . . . . A . . . A . . . . . . . f+4 ,.- - - ,.4 4 f+f+. . . . . . . . . . . . . . . . . . . . ", +". . . . . . . f+f+4 ,.- - j+j+j+j+j+j+j+,.,.4 f+f+. . . . . . . . . . . . . . . . . . . . f+4 4 4 4 4 f+f+f+. . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . f+4 4 ,.,.,.,.,.,.,.4 4 4 f+. . . . . . . . . . . . . . . . . . . . . . . . f+f+f+f+f+f+. . . . . . . . . . . . . . . . . . . . . . "}; diff --git a/pixmaps/gripicon.gif b/pixmaps/gripicon.gif new file mode 100644 index 0000000..a5ee7c6 Binary files /dev/null and b/pixmaps/gripicon.gif differ diff --git a/pixmaps/gripicon.png b/pixmaps/gripicon.png new file mode 100644 index 0000000..1fa8300 Binary files /dev/null and b/pixmaps/gripicon.png differ diff --git a/pixmaps/griptray.png b/pixmaps/griptray.png new file mode 100644 index 0000000..4ef9ded Binary files /dev/null and b/pixmaps/griptray.png differ diff --git a/pixmaps/loop.xpm b/pixmaps/loop.xpm new file mode 100644 index 0000000..ae40b22 --- /dev/null +++ b/pixmaps/loop.xpm @@ -0,0 +1,15 @@ +/* XPM */ +static char * loop_xpm[] = { +"13 10 2 1", +" c None", +". c #FFFFFF", +" ", +" . ", +" ...... . ", +" . . .. ", +" . . ", +" . . ", +" .. . . ", +" . ...... ", +" . ", +" "}; diff --git a/pixmaps/lowleft.xpm b/pixmaps/lowleft.xpm new file mode 100644 index 0000000..71cc2db --- /dev/null +++ b/pixmaps/lowleft.xpm @@ -0,0 +1,8 @@ +/* XPM */ +static char * lowleft_xpm[] = { +"3 3 2 1", +" c None", +". c #000000", +". ", +". ", +"..."}; diff --git a/pixmaps/lowright.xpm b/pixmaps/lowright.xpm new file mode 100644 index 0000000..58a05fa --- /dev/null +++ b/pixmaps/lowright.xpm @@ -0,0 +1,8 @@ +/* XPM */ +static char * lowright_xpm[] = { +"3 3 2 1", +" c None", +". c #000000", +" .", +" .", +"..."}; diff --git a/pixmaps/mail.xpm b/pixmaps/mail.xpm new file mode 100644 index 0000000..4f59289 --- /dev/null +++ b/pixmaps/mail.xpm @@ -0,0 +1,17 @@ +/* XPM */ +static char * mail_xpm[] = { +"15 12 2 1", +" c None", +". c #FFFFFF", +" ", +" ............. ", +" .. .. ", +" . . . . ", +" . . . . ", +" . . . . ", +" . ... . ", +" . . ", +" . . ", +" . . ", +" ............. ", +" "}; diff --git a/pixmaps/menunext.xpm b/pixmaps/menunext.xpm new file mode 100644 index 0000000..bee3154 --- /dev/null +++ b/pixmaps/menunext.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static char *menunext_xpm[] = { +/* columns rows colors chars-per-pixel */ +"16 16 3 1", +" c black", +". c gray100", +"X c None", +/* pixels */ +"XXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXX", +"XXX XXXXXX XXX", +"XXX XXXXX XXX", +"XXX XXXX XXX", +"XXX XXX XXX", +"XXX XX XXX", +"XXX X XXX", +"XXX X XXX", +"XXX XX XXX", +"XXX XXX XXX", +"XXX XXXX XXX", +"XXX XXXXX XXX", +"XXX XXXXXX XXX", +"XXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXX" +}; diff --git a/pixmaps/menupause.xpm b/pixmaps/menupause.xpm new file mode 100644 index 0000000..89c5b5b --- /dev/null +++ b/pixmaps/menupause.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static char *menupause_xpm[] = { +/* columns rows colors chars-per-pixel */ +"16 16 3 1", +" c black", +". c gray100", +"X c None", +/* pixels */ +"XXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXX", +"XXXX XX XXXX", +"XXXX XX XXXX", +"XXXX XX XXXX", +"XXXX XX XXXX", +"XXXX XX XXXX", +"XXXX XX XXXX", +"XXXX XX XXXX", +"XXXX XX XXXX", +"XXXX XX XXXX", +"XXXX XX XXXX", +"XXXX XX XXXX", +"XXXX XX XXXX", +"XXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXX" +}; diff --git a/pixmaps/menuplay.xpm b/pixmaps/menuplay.xpm new file mode 100644 index 0000000..d0319e7 --- /dev/null +++ b/pixmaps/menuplay.xpm @@ -0,0 +1,24 @@ +/* XPM */ +static char *menuplay_xpm[] = { +/* columns rows colors chars-per-pixel */ +"16 16 2 1", +" c black", +". c None", +/* pixels */ +"................", +"................", +"..... ..........", +"..... .........", +"..... ........", +"..... .......", +"..... ......", +"..... .....", +"..... .....", +"..... ......", +"..... .......", +"..... ........", +"..... .........", +"..... ..........", +"................", +"................" +}; diff --git a/pixmaps/menuprev.xpm b/pixmaps/menuprev.xpm new file mode 100644 index 0000000..5df405b --- /dev/null +++ b/pixmaps/menuprev.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static char *menuprev_xpm[] = { +/* columns rows colors chars-per-pixel */ +"16 16 3 1", +" c black", +". c gray100", +"X c None", +/* pixels */ +"XXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXX", +"XXX XXXXXX XXX", +"XXX XXXXX XXX", +"XXX XXXX XXX", +"XXX XXX XXX", +"XXX XX XXX", +"XXX X XXX", +"XXX X XXX", +"XXX XX XXX", +"XXX XXX XXX", +"XXX XXXX XXX", +"XXX XXXXX XXX", +"XXX XXXXXX XXX", +"XXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXX" +}; diff --git a/pixmaps/menustop.xpm b/pixmaps/menustop.xpm new file mode 100644 index 0000000..9b6ea34 --- /dev/null +++ b/pixmaps/menustop.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static char *menustop_xpm[] = { +/* columns rows colors chars-per-pixel */ +"16 16 3 1", +" c black", +". c gray100", +"X c None", +/* pixels */ +"XXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXX", +"XX XX", +"XX XX", +"XX XX", +"XX XX", +"XX XX", +"XX XX", +"XX XX", +"XX XX", +"XX XX", +"XX XX", +"XX XX", +"XX XX", +"XXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXX" +}; diff --git a/pixmaps/minmax.xpm b/pixmaps/minmax.xpm new file mode 100644 index 0000000..5755321 --- /dev/null +++ b/pixmaps/minmax.xpm @@ -0,0 +1,17 @@ +/* XPM */ +static char * minmax_xpm[] = { +"12 12 2 1", +" c None", +". c #FFFFFF", +" ", +" .......... ", +" .......... ", +" .......... ", +" . . ", +" . . ", +" . . ", +" . . ", +" . . ", +" . . ", +" .......... ", +" "}; diff --git a/pixmaps/nexttrk.xpm b/pixmaps/nexttrk.xpm new file mode 100644 index 0000000..f904494 --- /dev/null +++ b/pixmaps/nexttrk.xpm @@ -0,0 +1,14 @@ +/* XPM */ +static char * nexttrk_xpm[] = { +"16 9 2 1", +" c None", +". c #FFFFFF", +" ", +" .. ", +" .. .. .. ", +" .... .... .. ", +" .............. ", +" .... .... .. ", +" .. .. .. ", +" .. ", +" "}; diff --git a/pixmaps/noloop.xpm b/pixmaps/noloop.xpm new file mode 100644 index 0000000..4881629 --- /dev/null +++ b/pixmaps/noloop.xpm @@ -0,0 +1,14 @@ +/* XPM */ +static char * noloop_xpm[] = { +"12 9 2 1", +" c None", +". c #FFFFFF", +" ", +" .. ", +" .. ", +" . .. ", +" ....... .. ", +" . .. ", +" .. ", +" .. ", +" "}; diff --git a/pixmaps/playlist.xpm b/pixmaps/playlist.xpm new file mode 100644 index 0000000..e74e619 --- /dev/null +++ b/pixmaps/playlist.xpm @@ -0,0 +1,15 @@ +/* XPM */ +static char * playlist_xpm[] = { +"13 10 2 1", +" c None", +". c #FFFFFF", +" ", +" .... . ", +" . . . ", +" . . . ", +" . . . ", +" .... . ", +" . . ", +" . . ", +" . ..... ", +" "}; diff --git a/pixmaps/playnorm.xpm b/pixmaps/playnorm.xpm new file mode 100644 index 0000000..a3fa858 --- /dev/null +++ b/pixmaps/playnorm.xpm @@ -0,0 +1,15 @@ +/* XPM */ +static char * playnorm_xpm[] = { +"13 10 2 1", +" c None", +". c #FFFFFF", +" ", +" .. . ", +" . . . ", +" . . . ", +" . . . ", +" . .. ", +" . .. ", +" . . ", +" . . ", +" "}; diff --git a/pixmaps/playpaus.xpm b/pixmaps/playpaus.xpm new file mode 100644 index 0000000..195fbe3 --- /dev/null +++ b/pixmaps/playpaus.xpm @@ -0,0 +1,15 @@ +/* XPM */ +static char * playpaus_xpm[] = { +"21 10 2 1", +" c None", +". c #FFFFFF", +" ", +" .. .. .. ", +" .... .. .. ", +" ...... .. .. ", +" ........ .. .. ", +" ........ .. .. ", +" ...... .. .. ", +" .... .. .. ", +" .. .. .. ", +" "}; diff --git a/pixmaps/prevtrk.xpm b/pixmaps/prevtrk.xpm new file mode 100644 index 0000000..41a2915 --- /dev/null +++ b/pixmaps/prevtrk.xpm @@ -0,0 +1,14 @@ +/* XPM */ +static char * prevtrk_xpm[] = { +"16 9 2 1", +" c None", +". c #FFFFFF", +" ", +" .. ", +" .. .. .. ", +" .. .... .... ", +" .............. ", +" .. .... .... ", +" .. .. .. ", +" .. ", +" "}; diff --git a/pixmaps/progtrack.xpm b/pixmaps/progtrack.xpm new file mode 100644 index 0000000..d5204e9 --- /dev/null +++ b/pixmaps/progtrack.xpm @@ -0,0 +1,12 @@ +/* XPM */ +static char * progtrack_xpm[] = { +"14 7 2 1", +" c None", +". c #FFFFFF", +" ", +" . .. ... ", +" .. . . ", +" . . .. ", +" . . . ", +" . ... ... ", +" "}; diff --git a/pixmaps/quit.xpm b/pixmaps/quit.xpm new file mode 100644 index 0000000..b6ca569 --- /dev/null +++ b/pixmaps/quit.xpm @@ -0,0 +1,18 @@ +/* XPM */ +static char * quit_xpm[] = { +"11 13 2 1", +" c None", +". c #FFFFFF", +" ", +" . ", +" . ", +" . . . ", +" . . . ", +" . . . ", +" . . . ", +" . . . ", +" . . ", +" . . ", +" . . ", +" ..... ", +" "}; diff --git a/pixmaps/random.xpm b/pixmaps/random.xpm new file mode 100644 index 0000000..d9884f2 --- /dev/null +++ b/pixmaps/random.xpm @@ -0,0 +1,15 @@ +/* XPM */ +static char * random_xpm[] = { +"13 10 2 1", +" c None", +". c #FFFFFF", +" ", +" ... ", +" . . ", +" . . ", +" . .. ", +" ...... . ", +" . . ", +" ", +" . ", +" "}; diff --git a/pixmaps/rew.xpm b/pixmaps/rew.xpm new file mode 100644 index 0000000..54e287b --- /dev/null +++ b/pixmaps/rew.xpm @@ -0,0 +1,12 @@ +/* XPM */ +static char * rew_xpm[] = { +"14 7 2 1", +" c None", +". c #FFFFFF", +" ", +" .. .. ", +" .... .... ", +" ............ ", +" .... .... ", +" .. .. ", +" "}; diff --git a/pixmaps/rip0.xpm b/pixmaps/rip0.xpm new file mode 100644 index 0000000..dafaba6 --- /dev/null +++ b/pixmaps/rip0.xpm @@ -0,0 +1,18 @@ +/* XPM */ +static char * rip0_xpm[] = { +"13 13 2 1", +" c None", +". c #000000", +" ", +" ....... ", +" .. .. ", +" .. .. ", +" . . ", +" . ... . ", +" . . . . ", +" . ... . ", +" . . ", +" .. .. ", +" .. .. ", +" ....... ", +" "}; diff --git a/pixmaps/rip1.xpm b/pixmaps/rip1.xpm new file mode 100644 index 0000000..01e7c68 --- /dev/null +++ b/pixmaps/rip1.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * rip1_xpm[] = { +"15 15 2 1", +" c None", +". c #000000", +" ", +" .... ", +" . .. ", +" .... . .. ", +" .. . . . ", +" .. . .. . ", +" . . ..... ", +" . .. ", +" . . ..... ", +" . ... . ", +" . . ", +" .. .. ", +" .. .. ", +" ....... ", +" "}; diff --git a/pixmaps/rip2.xpm b/pixmaps/rip2.xpm new file mode 100644 index 0000000..d75ec35 --- /dev/null +++ b/pixmaps/rip2.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * rip2_xpm[] = { +"15 15 2 1", +" c None", +". c #000000", +" ", +" .... ", +" . .. ", +" .... . .. ", +" .. . . . ", +" .. . .. . ", +" . . ..... ", +" . .. ", +" . . ..... ", +" . .. .. . ", +" . . . . ", +" .. . . .. ", +" .. . . .. ", +" .... .... ", +" "}; diff --git a/pixmaps/rip3.xpm b/pixmaps/rip3.xpm new file mode 100644 index 0000000..54513bd --- /dev/null +++ b/pixmaps/rip3.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * rip3_xpm[] = { +"15 15 2 1", +" c None", +". c #000000", +" ", +" .... .... ", +" .. . . .. ", +" .. . . .. ", +" . . . . ", +" . .. .. . ", +" ..... ..... ", +" ", +" ..... ..... ", +" . .. .. . ", +" . . . . ", +" .. . . .. ", +" .. . . .. ", +" .... .... ", +" "}; diff --git a/pixmaps/rotate.xpm b/pixmaps/rotate.xpm new file mode 100644 index 0000000..e1b3c86 --- /dev/null +++ b/pixmaps/rotate.xpm @@ -0,0 +1,18 @@ +/* XPM */ +static char * rotate_xpm[] = { +"11 13 2 1", +" c None", +". c #FFFFFF", +" ", +" ", +" . ", +" . ..... ", +" .. . ", +" .... . ", +" . ", +" . ", +" . ", +" . . ", +" . . ", +" ..... ", +" "}; diff --git a/pixmaps/save.xpm b/pixmaps/save.xpm new file mode 100644 index 0000000..97bab78 --- /dev/null +++ b/pixmaps/save.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * save_xpm[] = { +"16 15 2 1", +" c None", +". c #FFFFFF", +" ... ", +" ... ", +" ... ", +" ..... ", +" ... ", +" .... . ", +" . ....... ", +" . . ", +" . . ", +" . ......... ", +" . . . ", +" . . . ", +" .......... ", +" ", +" "}; diff --git a/pixmaps/smile1.xpm b/pixmaps/smile1.xpm new file mode 100644 index 0000000..4152791 --- /dev/null +++ b/pixmaps/smile1.xpm @@ -0,0 +1,17 @@ +/* XPM */ +static char * smile1_xpm[] = { +"12 12 2 1", +" c None", +". c #000000", +" ", +" .. .. ", +" .. .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" . .. . ", +" . . ", +" .. .. ", +" ........ ", +" "}; diff --git a/pixmaps/smile2.xpm b/pixmaps/smile2.xpm new file mode 100644 index 0000000..c9de665 --- /dev/null +++ b/pixmaps/smile2.xpm @@ -0,0 +1,17 @@ +/* XPM */ +static char * smile2_xpm[] = { +"12 12 2 1", +" c None", +". c #000000", +" ", +" .. .. ", +" .. .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" ", +" ", +" .......... ", +" "}; diff --git a/pixmaps/smile3.xpm b/pixmaps/smile3.xpm new file mode 100644 index 0000000..5ee5a2b --- /dev/null +++ b/pixmaps/smile3.xpm @@ -0,0 +1,17 @@ +/* XPM */ +static char * smile3_xpm[] = { +"12 12 2 1", +" c None", +". c #000000", +" ", +" .. .. ", +" .. .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" . .. ", +" .. ", +" .... ", +" .. ", +" . "}; diff --git a/pixmaps/smile4.xpm b/pixmaps/smile4.xpm new file mode 100644 index 0000000..9eb0d65 --- /dev/null +++ b/pixmaps/smile4.xpm @@ -0,0 +1,17 @@ +/* XPM */ +static char * smile4_xpm[] = { +"12 12 2 1", +" c None", +". c #000000", +" ", +" .. .. ", +" .. .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" ", +" .......... ", +" . . ", +" .... "}; diff --git a/pixmaps/smile5.xpm b/pixmaps/smile5.xpm new file mode 100644 index 0000000..bc4d9dc --- /dev/null +++ b/pixmaps/smile5.xpm @@ -0,0 +1,17 @@ +/* XPM */ +static char * smile5_xpm[] = { +"12 12 2 1", +" c None", +". c #000000", +" .. .. ", +". . . .", +". . . .", +" .. .. .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" ", +" ", +" .......... ", +" "}; diff --git a/pixmaps/smile6.xpm b/pixmaps/smile6.xpm new file mode 100644 index 0000000..d77c3f6 --- /dev/null +++ b/pixmaps/smile6.xpm @@ -0,0 +1,17 @@ +/* XPM */ +static char * smile6_xpm[] = { +"12 12 2 1", +" c None", +". c #000000", +" ", +" .. .. ", +" .. .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" ", +" .... ", +" . . ", +" .... "}; diff --git a/pixmaps/smile7.xpm b/pixmaps/smile7.xpm new file mode 100644 index 0000000..f9916ff --- /dev/null +++ b/pixmaps/smile7.xpm @@ -0,0 +1,17 @@ +/* XPM */ +static char * smile7_xpm[] = { +"12 12 2 1", +" c None", +". c #000000", +" ", +" .. .. ", +" .. .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" ", +" ........ ", +" .. .. ", +" . . "}; diff --git a/pixmaps/smile8.xpm b/pixmaps/smile8.xpm new file mode 100644 index 0000000..69a0584 --- /dev/null +++ b/pixmaps/smile8.xpm @@ -0,0 +1,17 @@ +/* XPM */ +static char * smile8_xpm[] = { +"12 12 2 1", +" c None", +". c #000000", +" .", +" .. ...", +" .. .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" ", +" ........ ", +" .. .. ", +" . . "}; diff --git a/pixmaps/stop.xpm b/pixmaps/stop.xpm new file mode 100644 index 0000000..925ba9c --- /dev/null +++ b/pixmaps/stop.xpm @@ -0,0 +1,15 @@ +/* XPM */ +static char * stop_xpm[] = { +"10 10 2 1", +" c None", +". c #FFFFFF", +" ", +" ........ ", +" ........ ", +" ........ ", +" ........ ", +" ........ ", +" ........ ", +" ........ ", +" ........ ", +" "}; diff --git a/pixmaps/test.xpm b/pixmaps/test.xpm new file mode 100644 index 0000000..eb05e72 --- /dev/null +++ b/pixmaps/test.xpm @@ -0,0 +1,115 @@ +/* XPM */ +static char * test_xpm[] = { +"75 79 33 1", +" c None", +". c #050307", +"+ c #378EE1", +"@ c #930F21", +"# c #1F4A84", +"$ c #96C8F4", +"% c #153157", +"& c #9F5086", +"* c #B88EBB", +"= c #216CC0", +"- c #973C6A", +"; c #500913", +"> c #552748", +", c #55A5EC", +"' c #564E8E", +") c #E8566B", +"! c #A8ACDC", +"~ c #F4CED7", +"{ c #F1AEBB", +"] c #DCE9F9", +"^ c #A56DA3", +"/ c #DC374D", +"( c #5A8ED4", +"_ c #F06F85", +": c #C01B30", +"< c #5B6DBC", +"[ c #F38B9E", +"} c #2D040B", +"| c #B6D6F6", +"1 c #74B5F3", +"2 c #5B3766", +"3 c #6C0B18", +"4 c #1C59A2", +"....................................}..}...................................", +"..............................}.}}}}}}}}}}.}.}.............................", +"..........................}}}}}}}}}}}}}}}}}}}}.}...........................", +"........................}}}}};;;;;3333333;;;;;}}}}}........................", +".....................}}}}};;3;3@@@::/::/:@@3333;;}}}}......................", +"...................}.}};;;3@@:/)_[{{{~{{{[)/::@33;;}}}}....................", +"..................}}};;33@:)[{~~~~~~~~~~~~~~~[_/:@33;;}}...................", +".................}}};33:/_{~~~{[[_)/////)_[{~~]~{)/@33;}}}.................", +"..............}.}};33:/[~~~[_/::@@@@3@@@@@::/)[{~~{_/@33;}}................", +"..............}};;@@/[~~~[):@@333;;;;;;;;;33@@@/_[~~{_:@3;}}}..............", +"............}}};;3:_~]~_/@@33;;;};}}}}};}};;;;33@:/[~]{):33}}}.............", +"............}};3@/{~~[/:33;;}}}}}}}}}.}.}}}}};;;;3@:){~~_:3;;}}............", +"...........}};3:)~~~/:33;;}}}}.............}.}}};;;3@:_~]{/@;;}............", +"..........}};3@_~~[/@3;;}}}}....................}}};33:){~{/@;;}}..........", +"........}.};3:_~~_:@3;}}}........................}}};}3@/{~~/@3;}..........", +"........}};3@[~~_:3;;}}}............................}};;@:[~~/@;}}}........", +".......}};3@)~~):;;}}...............................}}};;@:[]{/@;}}........", +".......}};@)~~)@3;}}}.................................}};;@:{~{:3;}}.......", +"......}};3:{][:3;}}.....................................}}3@:{][:3;}}......", +".....}};3:{][:3;}}}......................................};3@/~~)@;}}......", +".....}}3@)~{/@;;}........................................}};3@_~{/3;}}.....", +"...}.};3/{~_@3}}}.........................................}};@:{~_:3;}.....", +"....};3@_~{:3;}}...........................................}};@/~~/@;}}....", +"....};3/{~/@;}}.............................................};3:[~[@3;}}...", +"..}}}3@_~[:3;}}............................................}}};3/{~/3;}....", +"...};3:{~/@;}}...............................................};3@[~[@;;}...", +"..}};@)~{:3;}......................}.}..}...................}.}33/~{:3;}}..", +"..};3@[~)@3}}...................}.}}}}}}}.}..................}};@:{~)@;}}..", +".}};3/{~/@;}}..................}}};};;};;}}}..................}}3@)~[@3}}..", +"..};@)~{:3;}}.................}};;333@33;;;}}}.................};3/~{:3;}}.", +".}}3@[~_@3;}................}}};;@@//)//:@;;}}................}};3:[~/@;}..", +".};3:[~)@;}.................}}33:)[~~~~~[):3;}}}...............};3:[~_@;}}.", +"}};3:{~/3;}}...............}};@:[~~{[[[{~~[/@;}}................};@)~[:3}}.", +".}}@/~{:3;}...............}};3/{]~_/::::_~~{:3;}}..............}};@)~{:3;}}", +"}};@)~[:3;}...............}};@_~{/:333@@@/{][:3}}..............}};3/~{:3}}.", +"}};@[~[@3}}...............};3/~~/@33;;;33:){~/3;}}..............};@:{~)3}}}", +".};@[~_@3}}..............}};@)~[:@3;}};;;3:[~_@;}..............}};3:{~)3;}.", +"};;:[~_@3}}..............}}3@[~)@3;}}}}}33@_~_@;}}..............};3:{~)3;}}", +".};@[]_@3}}..............}};:[~)@3;}}}}};3@)~[:;}}..............};3:{~)3;}.", +"}};:[~_@3}}..............}}3@[~_@3;}}.};;3:_~_@;}}..............};3:{~)3;}}", +"}};@[~_@3;}..............}};@)~{:@3;};;;33:{~)@;}...............};3:{~)3;}.", +"}};@_~[@3}}...............};3/{~_:@3;3;3@:_~{:3;}}............}.};@:~~/3}}}", +".};3)~{:3;}...............}};@)~~_:@@3@@:_~~)@;}.........%.%.%.%};3/~{/3;}.", +"}};@/{{:3;}}..............}};3:[~~[)/:/){~~_@3;}}.........%.%%%}}>@)~[:3}}.", +".};;:{~/3;}................}};3:){~~~{~~~{_:3;}.........%%%%%%%%>;@_~[@;}}.", +".}}3:[~)@;}}................}};3@:_[{{{[_:@3;}}}......%.%%=+,+4%>>:[~)@;}}.", +".}};@)~[@3;}.................}};;3@@:::@@3;}}.......%.%.%%=$|$+%>>:{~/3;}..", +".}};@/~{:3;}..%..%.%.%.%.......}>}>>>>>>>};}.}........%%%#+|]|(%>>)~[:3;}}.", +"..};3:[~)@;;.%.%%.%%%.%.%%...%..%}%>%;%>%}%}....%.%%%%%%##=|]|+22>[~_@;}}..", +"..}};@_~[@>}>.%%%%%%%%%%%%%%.%.%}%%%2%%%%%%.%.%.%.%%%%%#44+|]|+'2-!~/3;}...", +"..}};@/~{:>>%%%%44##%#%4#%%%%%.%%%%#444#%%%%%.%.%%%#444444+|]|(22)~{:3;}}..", +"...};3:{~_@>2%=+,,,+=4=++=%%%%%%#4+,,1,,+4%%%%%%%#4+,1,++=,]]|('-*|)@;}}...", +"...}};@)~!-2#=1|]]||1+,||,=%%%#%+1||]||]$1=%%%%%#=,|]]||$1$]]|('^{{:3;}....", +"....};;:{~^2=1]]|$11|$|]],44##4=$]]|111|]]1=%#%#=$]]]$$1||]]]|('*|_@;}}}...", +"...}.};@^!!<,]]]1===,$]]]$=###4,]]$+=4=+$]]+4##4+]]|,===+|]]]](^$!/;;}.....", +"....}}>3-*$=$]]1=4444,]]]144#4+|]|+44444+|$,444=$]]1=44=4+]]]|(!!^@3}}}....", +"......}>>&(,]]$==4#44=1]]1=444+|]$=##%##=+++#44+|]$+4##44=1]]]+$*->;}......", +"......>;>2<1]]1=#####4,]]1=44=1]],4##%#%%#44#4=,]]14#####4,]]|(!&>>}}......", +".......%>2=$]],4'#%###+|]1==4=1]]+4#%%%%%#%###41]],4##%##4+|]](^2>;}.......", +"......}}%2=$]],'''###4+|]1=4==1]]+4#%%%%%%##44=1]|,4##%##'+|]|('>>%}.......", +".......%>%'$]|,<''2###+|]1==4=1]],4##%%%#%###44,]],4###'''+|]|('>%.}.......", +"........%%41]]1((''''4,]]1=4441|],4##%##%#4##4=,]]1=4'#''<,]]|+'%}%........", +".......%%%#,]]|+1*<'4=1]]1=444+]]1=4####=+++#44+|]$+#'4'(=$]]](#%%.........", +"........}%%+|]]1+,1<=,]]]1=444+|]|,44#44,||+4#4=$]]1<4^(+,]]]|+2%%.........", +"........%%%4,]]|1+<+,|]]]$=4444,]]|,===,|]|+###4,|]]1+=(,|]]]|(%%..........", +".........%%#=$]]]$$$||]]]14'##4=$]]|$1$|]|,4##'#=$]]]$$$|||]]$+%%%.........", +".........%%%4=1|]]||1,$]]$=''2##=1|]|]||$,=#2222'=1|]|]|$,11$,=%%..........", +"..........%%44=+,,,+==,|]1=^&-22#4++,,,+=42>2--^*1=++,++=#4==4#.%..........", +"........%%%%4444=4===<,|]1=!!*^&--2'#4'''-&)^[{|~!*''44#%#%%%%%%...........", +"..........%%44=4======,|],=*!!~~!!******!{!~~|~*_--22>%2%%%%%%..%..........", +"........%.%4+,,+4====+|]|+'-&_*{{|~|!~!~!~{*[)/:3>3>>%}%%.%................", +"........%.%4+|]$,+==($]|,42>>@@:/)_[*[*[^)-:@@33;>}}}%.}...%..%............", +"..........%%=+$|$111|$$,=#%>>>;>;33@3@@@3333;;;;}}}%.}.....................", +"..........%%%4=,,11,,+=#%%%}}};};;;;;;;3;;;;;}}}}..........................", +"...........%%%%#44=44#%%%.%...}}}}}}}}}}}}}.}..}..}........................", +".............%%%%%%%%%%.%........}..}..}..}................................", +"...............%.%%.%..%..%................................................", +"............%...%...%......................................................", +"..................%...%...................................................."}; diff --git a/pixmaps/upleft.xpm b/pixmaps/upleft.xpm new file mode 100644 index 0000000..02553d6 --- /dev/null +++ b/pixmaps/upleft.xpm @@ -0,0 +1,8 @@ +/* XPM */ +static char * upleft_xpm[] = { +"3 3 2 1", +" c None", +". c #000000", +"...", +". ", +". "}; diff --git a/pixmaps/upright.xpm b/pixmaps/upright.xpm new file mode 100644 index 0000000..b64e281 --- /dev/null +++ b/pixmaps/upright.xpm @@ -0,0 +1,8 @@ +/* XPM */ +static char * upright_xpm[] = { +"3 3 2 1", +" c None", +". c #000000", +"...", +" .", +" ."}; diff --git a/pixmaps/vol.xpm b/pixmaps/vol.xpm new file mode 100644 index 0000000..922f5b6 --- /dev/null +++ b/pixmaps/vol.xpm @@ -0,0 +1,15 @@ +/* XPM */ +static char * vol_xpm[] = { +"14 10 2 1", +" c None", +". c #FFFFFF", +" ", +" . ", +" . . ", +" .. . . ", +" ..... . . ", +" ..... . . ", +" .. . . ", +" . . ", +" . ", +" "}; diff --git a/po/ChangeLog b/po/ChangeLog new file mode 100644 index 0000000..1c04df4 --- /dev/null +++ b/po/ChangeLog @@ -0,0 +1,60 @@ +2002-09-21 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2002-09-21 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2002-03-10 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2002-02-27 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2002-02-19 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2002-02-19 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2002-02-15 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2002-02-10 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2002-02-10 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2002-02-10 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2002-01-29 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2002-01-29 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2002-01-29 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2002-01-29 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2002-01-13 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + diff --git a/po/Makefile.in.in b/po/Makefile.in.in new file mode 100644 index 0000000..185c1c1 --- /dev/null +++ b/po/Makefile.in.in @@ -0,0 +1,252 @@ +# Makefile for program source directory in GNU NLS utilities package. +# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper +# +# This file file be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. +# +# - Modified by Owen Taylor to use GETTEXT_PACKAGE +# instead of PACKAGE and to look for po2tbl in ./ not in intl/ +# + +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +VERSION = @VERSION@ + +SHELL = /bin/sh +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datadir = @datadir@ +libdir = @libdir@ +localedir = $(libdir)/locale +gnulocaledir = $(datadir)/locale +gettextsrcdir = $(datadir)/gettext/po +subdir = po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@ + +CC = @CC@ +GENCAT = @GENCAT@ +GMSGFMT = @GMSGFMT@ +MSGFMT = @MSGFMT@ +XGETTEXT = @XGETTEXT@ +MSGMERGE = msgmerge + +DEFS = @DEFS@ +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ + +INCLUDES = -I.. -I$(top_srcdir)/intl + +COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) + +SOURCES = cat-id-tbl.c +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \ +stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES) + +POTFILES = \ + +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +INSTOBJEXT = @INSTOBJEXT@ + +.SUFFIXES: +.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat + +.c.o: + $(COMPILE) $< + +.po.pox: + $(MAKE) $(GETTEXT_PACKAGE).pot + $(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*.pox + +.po.mo: + $(MSGFMT) -o $@ $< + +.po.gmo: + file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ + && rm -f $$file && $(GMSGFMT) -o $$file $< + +.po.cat: + sed -f ../intl/po2msg.sed < $< > $*.msg \ + && rm -f $@ && $(GENCAT) $@ $*.msg + + +all: all-@USE_NLS@ + +all-yes: cat-id-tbl.c $(CATALOGS) +all-no: + +$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES) + $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) --directory=$(top_srcdir) \ + --add-comments --keyword=_ --keyword=N_ \ + --files-from=$(srcdir)/POTFILES.in \ + && test ! -f $(GETTEXT_PACKAGE).po \ + || ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \ + && mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot ) + +$(srcdir)/cat-id-tbl.c: stamp-cat-id; @: +$(srcdir)/stamp-cat-id: $(GETTEXT_PACKAGE).pot + rm -f cat-id-tbl.tmp + sed -f ./po2tbl.sed $(srcdir)/$(GETTEXT_PACKAGE).pot \ + | sed -e "s/@GETTEXT_PACKAGE NAME@/$(GETTEXT_PACKAGE)/" > cat-id-tbl.tmp + if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \ + rm cat-id-tbl.tmp; \ + else \ + echo cat-id-tbl.c changed; \ + rm -f $(srcdir)/cat-id-tbl.c; \ + mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \ + fi + cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ +install-data-no: all +install-data-yes: all + if test -r "$(MKINSTALLDIRS)"; then \ + $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \ + else \ + $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \ + fi + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + case "$$cat" in \ + *.gmo) destdir=$(gnulocaledir);; \ + *) destdir=$(localedir);; \ + esac; \ + lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ + dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \ + if test -r "$(MKINSTALLDIRS)"; then \ + $(MKINSTALLDIRS) $$dir; \ + else \ + $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \ + fi; \ + if test -r $$cat; then \ + $(INSTALL_DATA) $$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ + echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ + else \ + $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ + echo "installing $(srcdir)/$$cat as" \ + "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ + fi; \ + if test -r $$cat.m; then \ + $(INSTALL_DATA) $$cat.m $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ + echo "installing $$cat.m as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ + else \ + if test -r $(srcdir)/$$cat.m ; then \ + $(INSTALL_DATA) $(srcdir)/$$cat.m \ + $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ + echo "installing $(srcdir)/$$cat as" \ + "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ + else \ + true; \ + fi; \ + fi; \ + done + if test "$(GETTEXT_PACKAGE)" = "gettext"; then \ + if test -r "$(MKINSTALLDIRS)"; then \ + $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \ + else \ + $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \ + fi; \ + $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ + $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ + else \ + : ; \ + fi + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ + rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ + rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ + done + rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in + +check: all + +cat-id-tbl.o: ../intl/libgettext.h + +dvi info tags TAGS ID: + +mostlyclean: + rm -f core core.* *.pox $(GETTEXT_PACKAGE).po *.old.po cat-id-tbl.tmp + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m po2tbl.sed + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f $(GMOFILES) + +distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir) +dist distdir: update-po $(DISTFILES) + dists="$(DISTFILES)"; \ + for file in $$dists; do \ + ln $(srcdir)/$$file $(distdir) 2> /dev/null \ + || cp -p $(srcdir)/$$file $(distdir); \ + done + +update-po: Makefile + $(MAKE) $(GETTEXT_PACKAGE).pot + cd $(srcdir); \ + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ + mv $$lang.po $$lang.old.po; \ + echo "$$lang:"; \ + if $(MSGMERGE) $$lang.old.po $(GETTEXT_PACKAGE).pot -o $$lang.po; then \ + rm -f $$lang.old.po; \ + else \ + echo "msgmerge for $$cat failed!"; \ + rm -f $$lang.po; \ + mv $$lang.old.po $$lang.po; \ + fi; \ + done + +POTFILES: POTFILES.in + ( if test 'x$(srcdir)' != 'x.'; then \ + posrcprefix='$(top_srcdir)/'; \ + else \ + posrcprefix="../"; \ + fi; \ + rm -f $@-t $@ \ + && (sed -e '/^#/d' -e '/^[ ]*$$/d' \ + -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \ + | sed -e '$$s/\\$$//') > $@-t \ + && chmod a-w $@-t \ + && mv $@-t $@ ) + +Makefile: Makefile.in.in ../config.status POTFILES + cd .. \ + && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ + $(SHELL) ./config.status + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 0000000..4cbe2ec --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,13 @@ +src/main.c +src/grip.c +src/gripcfg.c +src/cddev.c +src/cdplay.c +src/dialog.c +src/discdb.c +src/discedit.c +src/id3.c +src/launch.c +src/parsecfg.c +src/rip.c + diff --git a/po/be.gmo b/po/be.gmo new file mode 100644 index 0000000..0a957dd Binary files /dev/null and b/po/be.gmo differ diff --git a/po/be.po b/po/be.po new file mode 100644 index 0000000..4cb8275 --- /dev/null +++ b/po/be.po @@ -0,0 +1,1276 @@ +# translation of grip.be.po to Belarusian +# translation of be.po to Belarusian +# translation of grip.po to Belarusian +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# Vital Khilko , 2003 +# +msgid "" +msgstr "" +"Project-Id-Version: grip.be\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2003-06-29 14:38+0300\n" +"Last-Translator: Vital Khilko \n" +"Language-Team: Belarusian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.0\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "Пазначце геамэтрыю асноўнага акна" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "ГЭАМЭТРЫЯ" + +#: src/main.c:65 +msgid "Specify the config file to use (in your home dir)" +msgstr "Пазначце файл канфігурацыі для выкарыстаньня (у вашай хатняй тэчцы)" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "КАНФІГУРАЦЫЯ" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "Пазначце прыладу cdrom" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "ПРЫЛАДА" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "Пазначце прыладу scsi" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "Загружаць у \"паменшаным\" рэжыме (толькі прайгравальнік)" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "\"Мясцовы\" рэжым - не праглядаць інфармацыю аб дыске ў сеціве" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "Запусьціць у рэжыме адладкі" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "Памылка: Немагчыма ініцыялізаваць [%s]\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"Праца ў прагрэсе.\n" +"Сапраўды выйсьці?" + +#: src/grip.c:395 +#, fuzzy +msgid "Status" +msgstr "Стан запісу" + +#: src/grip.c:410 +msgid "General" +msgstr "" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "Запіс" + +#: src/grip.c:440 src/gripcfg.c:496 +msgid "Encode" +msgstr "Кадаваньне" + +#: src/grip.c:485 +msgid "Help" +msgstr "Дапамога" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "Зьмест" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "Прайграваньне дыскаў" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "Запіс з дыскаў" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "Канфігураваньне Grip" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "FAQ" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "Атрыманьне дадатковых зьвестак" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "Дасланьне паведамленьняў аб памылках" + +#: src/grip.c:546 +msgid "About" +msgstr "Пра праграму" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "" + +#: src/grip.c:922 +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"Ваш файл канфігурацыі мае памылковую дату - скіданьне да адпомнага.\n" +"Вы мусіце пераканфігураваць Grip.\n" +"Ваш стары файл канфігурацыі будзе захаваны з канчаткам -old." + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "паслужнік %s, порт %d\n" + +#: src/grip.c:1016 +#, fuzzy +msgid "Error: Unable to save config file." +msgstr "Памылка: Немагчыма захаваць файл канфігурацыі" + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "Канфігурацыя" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "Прылада CDRom" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "Не перарываць прайграваньне падчас выхаду/запуску" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "Пераматаць назад пасьля спыненьня" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "Аўтапрайграваньне новага дыска" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "Шуфляваць перад кожным прайграваньнем" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "CD" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "Праграма запісу:" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "Каманда запісу" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "Радок запісу" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "Выключыць paranoia" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "Выключыць extra paranoia" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "Выключыць scratch" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "дэтэктаваньне" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "аднавіць" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "Фармат файла запіса" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "Прылада SCSI" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "Праграма запісу" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "Дакладнае значэньне запісу" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "Максымум незакадаваных файлаў .wav" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "Аўтазапіс з новага дыска" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "Сыгнал пасьля запісу" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "" +"Вызваленьне дыска\n" +"пасьля запісу" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "" +"Затрымка перад\n" +"вызваленьнем" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "Затрымка перад запісам" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "Спыняць прыладу cdrom між трэкамі" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "Каманда фільтрацыі для *.wav" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "Каманда фільтрацыі дыска" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "Выбары" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "Кодэр:" + +#: src/gripcfg.c:412 +msgid "Encoder executable" +msgstr "Каманда кадаваньня" + +#: src/gripcfg.c:417 +msgid "Encoder command-line" +msgstr "Радок кадаваньня" + +#: src/gripcfg.c:423 +#, fuzzy +msgid "Encode file extension" +msgstr "Фармат файла кадаваньня" + +#: src/gripcfg.c:428 +msgid "Encode file format" +msgstr "Фармат файла кадаваньня" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "Кодэр" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "Выдаляць файл .wav пасьля кадаваньня" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "Унесьці зьвесткі у базу даньняў SQL" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "Ствараць файлы .m3u" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "Выкарыстоўваць адносны шлях ў файлах .m3u" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "Фармат файла M3U" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "Бітавая хуткасьць кадаваньня (Кбіт/сэк)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "Нумар працэсара для выкарыстаньня" + +#: src/gripcfg.c:477 +msgid "Encode 'nice' value" +msgstr "Дакладнае значэньне кадэра" + +#: src/gripcfg.c:481 +msgid "Encode filter command" +msgstr "Каманда філтраваньня кодэра" + +#: src/gripcfg.c:505 +msgid "Add ID3 tags to encoded files" +msgstr "Дадаць тэг ID3 да кадаваных файлаў" + +#: src/gripcfg.c:511 +msgid "Add ID3v2 tags to encoded files" +msgstr "Дадаць тэг ID2 да кадаваных файлаў" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "Поле камэнтара ID3" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "" + +#: src/gripcfg.c:532 +#, fuzzy +msgid "ID3v2 Character set encoding" +msgstr "Выдаляць файл .wav пасьля кадаваньня" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "ID3" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "Паслужнік БД" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "Шлях CGI" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "Першасны паслужнік" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "Другасны паслужнік" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "Адпраўка зьвестак у БД праз э.пошту" + +#: src/gripcfg.c:603 +#, fuzzy +msgid "DB Character set encoding" +msgstr "Выдаляць файл .wav пасьля кадаваньня" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "Выкарыстоўваць пашырэньні freedb" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "Аўтаматычна запытваць зьвесткі аб дыске" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "БД дыскаў" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "Выкарыстоўваць проксі" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "" +"Атрымаць зьвесткі аб проксі з пераменай\n" +"асяродьдзя 'http_proxy'" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "Паслужнік проксі" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "Порт проксі" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "Карыстальнік проксі" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "Пароль да проксі" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "Проксі" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "Адрэса э.пошты" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "Праграма абнаўленьня дыскаў" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "Назвы файлаў не малымі літарамі" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "Рознае" + +#: src/gripcfg.c:819 +#, fuzzy +msgid "Error: Unable to save ripper config." +msgstr "Памылка: Немагчыма захаваць файл канфігурацыі" + +#: src/gripcfg.c:890 +#, fuzzy +msgid "Error: Unable to save encoder config." +msgstr "Памылка: Немагчыма захаваць файл канфігурацыі" + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "Стан прылады: %d\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "Прылада не падтрымлівае праверку стана (атрымана CDS_NO_INFO)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "Дыск адсутнічае\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "Памылка: Збой чытаньня зьместу дыска\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "Прылада не падтрымлівае праверку стана\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "CDIOCEJECT" + +#: src/cdplay.c:83 +#, fuzzy +msgid "Cannot do lookup while ripping." +msgstr "Немагчыма дасылаць запыт падчас запісу" + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "Невядомы дыск" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "Трэк %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "Запыт %s (праз %s) для дыска %02x.\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "Запыт %s для дыска %02x.\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"Супадзеньне для \"%s / %s\"\n" +"Загрузка даньняў...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "Выканана\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "Памылка захаваньня даньняў дыска\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "Няма супадзеньняў\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +#, fuzzy +msgid "Length" +msgstr "Час" + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "Трэкі" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "Трэк" + +#: src/cdplay.c:633 src/discedit.c:390 +#, fuzzy +msgid "Error saving disc data." +msgstr "Памылка запісу даньняў дыска" + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "Рэжым паўтору прайграваньня" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "Пераключыць паўтор прайграваньня" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "Стан запісу" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "Граць / прыпыніць" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "Пераматаць назад" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "Пераматаць наперад" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "Перайсьці да папярэдняга трэка" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "Перайсьці да наступнага трэка" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "Пераключыць рэжым прайграваньня" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "Наступны дыск" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "Спыніць прайграваньне" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "Вызваліць дыск" + +#: src/cdplay.c:962 +msgid "Scan Disc Contents" +msgstr "Сканаваць дыск" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "Пераключыць кіраваньне гучнасьцю" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "Пераключыць рэдактар дыска" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "Запытаць зьвесткі ў БД дыскаў" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "Пераключыць адлюстраваньне запіса" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Выйсьці з Grip" + +#: src/cdplay.c:1173 +#, fuzzy +msgid "Cannot fast forward while ripping." +msgstr "Немагчыма пераматаць падчас запісу" + +#: src/cdplay.c:1204 +#, fuzzy +msgid "Cannot rewind while ripping." +msgstr "Немагчыма пераматаць падчас запісу" + +#: src/cdplay.c:1235 +#, fuzzy +msgid "Cannot switch discs while ripping." +msgstr "Немагчыма пераключаць дыскі падчас запісу" + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "Вызваліць дыск\n" + +#: src/cdplay.c:1257 +#, fuzzy +msgid "Cannot eject while ripping." +msgstr "Немагчыма вызваліць дыск падчас запісу" + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "Маецца дыск - вызваленьне\n" + +#: src/cdplay.c:1334 +#, fuzzy +msgid "Cannot play while ripping." +msgstr "Немагчыма прайграваць падчас запісу" + +#: src/cdplay.c:1402 src/cdplay.c:1433 +#, fuzzy +msgid "Cannot switch tracks while ripping." +msgstr "Немагчыма пераключыць запісы падчас запісу" + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "Праверка новага дыска\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "CDStat адшукаў дыск, прагляд запісаў\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "Маецца дыск.\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "CDStat паведамляе аб адсутнасьці дыска\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "Бягучы сэктар: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "Дыск адсутнічае" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"Гэты дыск маецца на вашым другасным паслужніку,\n" +"але не на першасным.\n" +"\n" +"Вы жадаеце прыняць зьвесткі аб гэтым дыске?" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +#, fuzzy +msgid "Error: Unable to create temporary file." +msgstr "Памылка: Немагчыма стварыць часовы файл" + +#: src/cdplay.c:1947 +#, fuzzy +msgid "Error: Unable to write disc data." +msgstr "Памылка: Немагчыма запісаць даньні дыска" + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "Сыстэмнае паведамленьне" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "URI %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "Запыт [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "Памылка стану %d на %s\n" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "Стварэньне каталёга %s\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "Памылка: %s існуе, але гэта файл\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "Памылка: Немагчыма адкрыць %s для запісу\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "Назва дыска" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "Назва трэка" + +#: src/discedit.c:84 +msgid "W" +msgstr "" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "Выканаўца дыска" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "ID3 жанр" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "Год запіса" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "Выканаўца трэка" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "Падзяленьне" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "Назва/Выканаўца" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "Выканаўца/Назва" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "Некалькі выканаўцаў" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "Захаваць зьвесткі дыска" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "Прыняць зьвесткі дыска" + +#: src/discedit.c:393 +#, fuzzy +msgid "No disc present." +msgstr "Дыск адсутнічае" + +#: src/discedit.c:543 +#, fuzzy +msgid "Cannot submit. No disc is present." +msgstr "" +"Немагчыма прыняць\n" +"Дыск адсутнічае" + +#: src/discedit.c:558 +#, fuzzy +msgid "You must enter a disc title." +msgstr "Вы мусіце пазначыць назву дыска" + +#: src/discedit.c:565 +#, fuzzy +msgid "You must enter a disc artist." +msgstr "Вы мусіце пазначыць выканаўца" + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" +"Вы зьбіраецеся перадаць зьвесткі\n" +"аб гэтым дыске праз э. пошту.\n" +"\n" +"Працягваць?" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "Выбар жанра" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"Перадача патрабуе жанр адрозны ад \"невядомы\"\n" +"Калі ласка, выбярыце жанр са сьпісу ніжэй" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "Жанр БД дыскаў" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "Прыняць" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "Адмяніць" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "невядомае поле ID3\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "" +"Памылка: Немагчыма перакласьці назву файла. Адсутнічае карыстальнік як %s\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "Збой выкананьня\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "Памылка: Кепскі тып поля\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "Памылка: Недапушчальны файл канфігурацыі\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "Запіс+кадаваньне" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "Запіс і кадаваньне вылучаных запісаў" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "Толькі запіс" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "Запіс без кадаваньня вылучаных запісаў" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "" +"Перарваць працэсы\n" +"запісу й кадаваньня" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "Забіць усе актыўныя працэсы запісу й кадаваньня" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "Перарваць запіс" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "Забіць працэс запісу" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "Сканаваць DDJ" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "Унесьці зьвесткі аб дыску ў базу даньняў DigitalDJ" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "Запіс часткі трэка" + +#: src/rip.c:166 +msgid "Play" +msgstr "Граць" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "Бягучы сэктар: 0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "Запіс: Вольны" + +#: src/rip.c:209 +msgid "Enc: Trk 99 (99.9x)" +msgstr "Кадаваньне: Трк 99 (99.9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +msgid "Enc: Idle" +msgstr "Кадаваньне: Вольны" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "Агульныя паказьнікі:" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "Пачатковы сэктар" + +#: src/rip.c:332 +msgid "End sector" +msgstr "Апошні сэктар" + +#: src/rip.c:380 +#, fuzzy, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "Унесьці зьвесткі у базу даньняў SQL" + +#: src/rip.c:602 +#, fuzzy +msgid "Error: can't open m3u file." +msgstr "Памылка: Немагчыма адкрыць m3u\n" + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "Агульны памер кадаваньня: %d\n" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "Запіс: Трк %d (%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "Запіс: %6.2f%%" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "Запіс скончаны\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "Наступны трэк %d, агулам %d трэкаў\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "Праверка, ці не патрабуецца запіс іншага трэка\n" + +#: src/rip.c:955 +#, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "Кадаваньне: Трк %d (%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "Кадаваньне: %6.2f%%" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "Скончана кадаваньне на працэсары %d\n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "Выдаленьне [%s]\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "Запіс скончаны\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "Выканаўца невядомы" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "Назва невядома" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" + +#: src/rip.c:1287 +#, fuzzy +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" +"Недапушчальная каманда кадаваньня\n" +"Праверце вашую канфігурацыю кодэра" + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"Трэкі не вылучаны.\n" +"Запісываць увесь дыск?\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "Запіс усяго дыска\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "Першы правераны запіс %d\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "Недахоп правоў для запісу файла wav" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "Запіс трэка %d у %s\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "Запіс: Трк %d (0.0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "Файл %s ужо быў запісаны. Прапускаецца...\n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "Недахоп прасторы ў каталёге для вываду" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "Выклік CDPRip\n" + +#: src/rip.c:1655 +#, fuzzy, c-format +msgid "Added track %d to %s list\n" +msgstr "Даданьне трэка %d да сьпіса кадаваньня\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "Няма вольных працэсараў\n" + +#: src/rip.c:1697 +#, c-format +msgid "Enc track %d\n" +msgstr "Кадаваньне трэка %d\n" + +#: src/rip.c:1719 +#, fuzzy +msgid "No write access to write encoded file." +msgstr "Недахоп правоў для запісу кадаванага файла" + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "%i: Кадаваньне ў %s\n" + +#: src/rip.c:1734 +#, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "Кадаваньне: Трк %d (0.0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "Агульны памер запісанага: %d\n" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "Агульны памер кадаванага: %d\n" + +#~ msgid "" +#~ "Invalid rip executable\n" +#~ "Check your rip config" +#~ msgstr "" +#~ "Недапушчальная каманда запісу\n" +#~ "Праверце вашую канфігурацыю запісу" + +#~ msgid "Keep application minimum size" +#~ msgstr "Дастасаваньне захоўвае мінімальны памер" + +#~ msgid "Reply is [%s]\n" +#~ msgstr "Адказ [%s]\n" + +#, fuzzy +#~ msgid "File System Character set encoding" +#~ msgstr "Выдаляць файл .wav пасьля кадаваньня" + +#~ msgid "Could not parse geometry string `%s'" +#~ msgstr "Немагчыма разабраць радок геамэтрыі \"%s\"" + +#~ msgid "Aborted\n" +#~ msgstr "Спынена\n" + +#~ msgid "PL" +#~ msgstr "PL" + +#~ msgid "Column/Button: %d/%d\n" +#~ msgstr "Слупок/Кнопка: %d/%d\n" + +#~ msgid "Exit GCD" +#~ msgstr "Выйсьці з GCD" diff --git a/po/bg.gmo b/po/bg.gmo new file mode 100644 index 0000000..f987c8d Binary files /dev/null and b/po/bg.gmo differ diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000..abc814c --- /dev/null +++ b/po/bg.po @@ -0,0 +1,1251 @@ +# Bulgarian translation of grip. +# Copyright (C) 2004 Vladimir Petkov, InterSpace Media Art Center : www.i-space.org +# This file is distributed under the same license as the Grip package. +# Vladimir "Kaladan" Petkov , 2004. +# +# +msgid "" +msgstr "" +"Project-Id-Version: 3.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2004-02-08 14:03+0200\n" +"Last-Translator: Vladimir \"Kaladan\" Petkov \n" +"Language-Team: Bulgarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "Определя размерите на основния прозорец" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "РАЗМЕРИ" + +#: src/main.c:65 +msgid "Specify the config file to use (in your home dir)" +msgstr "Определя конфигурационния файл в употреба (в домашната директория)" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "КОНФИГУРАЦИЯ" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "Определя CD ROM устройството" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "УСТРОЙСТВО" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "Упределя SCSI устройството в употреба" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "Зарежда в \"ограничен\" (CD-ROM само) режим" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "\"Локален\"·режим·--·не се търси информация за диска в интернет" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "Не прави I/O пренасочване" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "Стартира в режим за докладване на грешки" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "Грешка: Разпознаването е невъзможно [%s]\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"Извършва се работа.\n" +"Да изгася програмата?" + +#: src/grip.c:395 +msgid "Status" +msgstr "Статус" + +#: src/grip.c:410 +msgid "General" +msgstr "Основен" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "Извличане" + +#: src/grip.c:440 src/gripcfg.c:496 +msgid "Encode" +msgstr "Кодиране" + +#: src/grip.c:485 +msgid "Help" +msgstr "Помощ" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "Съдържание" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "Изпълняващи се CD-та" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "Извличащи се CD-та" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "Конфигурация" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "Често Задавани Въпроси" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "Допълнителна помощ" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "Докладване за грешки" + +#: src/grip.c:546 +msgid "About" +msgstr "Относно" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "" + +#: src/grip.c:922 +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"Вашият конфигурационен файл е остарял - зареждане на настройките по " +"подразбиране.\n" +"Grip трябва да бъде пренастроен.\n" +"Старият конфигурационен фал е запазен с -old·в края." + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "сървър е·%s,·порт·%d\n" + +#: src/grip.c:1016 +#, fuzzy +msgid "Error: Unable to save config file." +msgstr "Грешка: Запазването на конфигурационния файл е невъзможно" + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "Настройки" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "CDRom устройство" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "Не прекъсва музиката на излизане/стартиране" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "Започва от начало, когато е музиката е спряна" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "Започва с първата песен ако не свири" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "Автоматично стартира диск при постяване в устройството" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "Разбърква преди всяко изпълнение" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "CD" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "Извличаща програма:" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "Команден интерпретатор" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "Изключва paranoia" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "Изключва допъплнителна paranoia" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "Изключва драскане" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "засичане" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "поправя" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "Формат на извлечения файл" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "SCSI устройство" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "Програма за извличане" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "Извлича \"добра\" стойност" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "Максимално не-кодирани .wav файлове" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "Автоматично извличане при вмъкване на CD" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "Звуков сигнал след извличане" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "Автоматично изваждане на диска след извличане" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "Закъснение на автоматичното изваждане" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "Закъснение преди извличането" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "Закъснение на кодирането след като дискът е извлечен" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "Спира CDRom устройството между песните" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "Команда за филтър на Wav" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "Команда за филтър на Диск" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "Опции" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "Кодираща програма:" + +#: src/gripcfg.c:412 +msgid "Encoder executable" +msgstr "" + +#: src/gripcfg.c:417 +msgid "Encoder command-line" +msgstr "" + +#: src/gripcfg.c:423 +#, fuzzy +msgid "Encode file extension" +msgstr "Файлове формат при кодиране" + +#: src/gripcfg.c:428 +msgid "Encode file format" +msgstr "Файлове формат при кодиране" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "Кодираща програма" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "Изтрива .wav файлът след кодиране" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "Вмъква информация в SQL БазаДанни" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "Създава .m3u файлове" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "Използва свързани пътища в .m3u файловете" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "M3U файлов формат" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "Скорост на кодиране (килобита/сек.)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "Процесори в употреба" + +#: src/gripcfg.c:477 +msgid "Encode 'nice' value" +msgstr "" + +#: src/gripcfg.c:481 +msgid "Encode filter command" +msgstr "" + +#: src/gripcfg.c:505 +msgid "Add ID3 tags to encoded files" +msgstr "Добавя ID3 коментари в кодираните файлове" + +#: src/gripcfg.c:511 +msgid "Add ID3v2 tags to encoded files" +msgstr "Добавя ID3v2 коментари в кодираните файлове" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "Добавя информация само във файлове завършващи с '.mp3'" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "Поле за ID3 коментар" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "Кодова таблица на ID3v1" + +#: src/gripcfg.c:532 +#, fuzzy +msgid "ID3v2 Character set encoding" +msgstr "Кодова таблица на ID3v1" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "ID3" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "Сървър База Данни" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "Път на CGI" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "Основен сървър" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "Втори сървър" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "" + +#: src/gripcfg.c:603 +msgid "DB Character set encoding" +msgstr "" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "Използва freedb разширения" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "Изпълнява преглеждане на диск автоматично" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "ДискБД" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "Използва прокси сървър" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "Прокси сървър" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "Прокси порт" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "Прокси потребителско име" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "Прокси парола" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "Прокси" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "Електронна поща" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "Програма за осъвременяване на CD" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "Не прави имената на файловете с малки букви" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "Не променя интервалите в долни черти" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "Допълнителни" + +#: src/gripcfg.c:819 +#, fuzzy +msgid "Error: Unable to save ripper config." +msgstr "Грешка: Запазването на конфигурационния файл е невъзможно" + +#: src/gripcfg.c:890 +#, fuzzy +msgid "Error: Unable to save encoder config." +msgstr "Грешка: Запазването на конфигурационния файл е невъзможно" + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "Статус на устройството %d\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "" +"Устройството не поддържа проверка на статуса (предполага CDS_NO_INFO)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "Няма диск\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "Грешка: Провал при четене на съдържанието на диска\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "Устройството не поддържа проверка на статуса\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "Провал на отключване: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "" + +#: src/cdplay.c:83 +#, fuzzy +msgid "Cannot do lookup while ripping." +msgstr "Прегледа е невъзможен по време на извличане" + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "Непознат Диск" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "Песен %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "Запитва·%s·(през·%s)·за диск·%02x.\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "Запитва·%s·за дискт·%02x.\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"Намерена информация за·\"%s·/·%s\"\n" +"Изтегляне на информация...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "Готово\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "Грешка при запазване на информацията за диска\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "Няма съвпадение\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +#, fuzzy +msgid "Length" +msgstr "Дължина" + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "Песни" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "Песен" + +#: src/cdplay.c:633 src/discedit.c:390 +#, fuzzy +msgid "Error saving disc data." +msgstr "Грешка при запазването на информацията за диска" + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "Режим въртене" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "Режим пеобръщане" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "Статус на извличането" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "Изпълнява песен / Пауза" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "Начало" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "Напред" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "Отива на предишната песен" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "Отива на следващата песен" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "Опции на изпълненията" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "Следващ Диск" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "Спира изпълението" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "Изважда диск" + +#: src/cdplay.c:962 +msgid "Scan Disc Contents" +msgstr "Сканира съдържанието на диска" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "Сила на звука" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "Редактор на дискове" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "Прави/отказва заявка към БД за дискове" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "Изобразяване на песните" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Напуска Grip" + +#: src/cdplay.c:1173 +#, fuzzy +msgid "Cannot fast forward while ripping." +msgstr "Прескачането напред в невъзможно по време на извличане" + +#: src/cdplay.c:1204 +#, fuzzy +msgid "Cannot rewind while ripping." +msgstr "Връщането в началото е невъзможно по време на извличане" + +#: src/cdplay.c:1235 +#, fuzzy +msgid "Cannot switch discs while ripping." +msgstr "Смяна на дискове е невъзможна по време на извличане" + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "Изважда диск\n" + +#: src/cdplay.c:1257 +#, fuzzy +msgid "Cannot eject while ripping." +msgstr "Дискът не може да бъде изваден докато се извлича информация" + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "Изважда диска\n" + +#: src/cdplay.c:1334 +#, fuzzy +msgid "Cannot play while ripping." +msgstr "Не може да бъде изпълнен докато се извлича информация" + +#: src/cdplay.c:1402 src/cdplay.c:1433 +#, fuzzy +msgid "Cannot switch tracks while ripping." +msgstr "Не може да се разменят песни по време на извличане" + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "Проверява за нов диск\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "CDStat намери диск, проверкана песните\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "Валиден диск!\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "Песни с дължина над 0\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "CDStat докладва че няма диск\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "Текущ селектор: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "Няма Диск" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"Този диск беше намерен във вашия втори сървър,\n" +"но не и в основния ви сървър.\n" +"\n" +"Искате ли да изпратите информация за диска?" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +#, fuzzy +msgid "Error: Unable to create temporary file." +msgstr "Грешка: Неуспешно създаване на временен файл" + +#: src/cdplay.c:1947 +#, fuzzy +msgid "Error: Unable to write disc data." +msgstr "Грешка: Незъвможно записването на информация за диска" + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "Изпраща запис чрез Ел. Поща към %s\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "Системно Съобщение" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "Адресът е %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "Заявката е [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "Създава директория %s\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "Грешка: %s съществува, но е файл\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "Грешка: Не мога да отворя %s за да записвам\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "Заглавие на диска" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "Име на песента" + +#: src/discedit.c:84 +msgid "W" +msgstr "W" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "Изпълнител" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "ID3 жанр:" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "Година" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "Изпълнител на песента" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "Разделя:" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "Заглавие/Изпълнител" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "Изпълнител/Заглавие" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "Много-изпълнители" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "Запазва информация за диска" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "Изпраща информация за диска" + +#: src/discedit.c:393 +#, fuzzy +msgid "No disc present." +msgstr "Няма диск" + +#: src/discedit.c:543 +#, fuzzy +msgid "Cannot submit. No disc is present." +msgstr "" +"Изпращането невъзможно\n" +"Няма диск" + +#: src/discedit.c:558 +#, fuzzy +msgid "You must enter a disc title." +msgstr "Трябва да въведете заглавие на диска" + +#: src/discedit.c:565 +#, fuzzy +msgid "You must enter a disc artist." +msgstr "Трябва да въведете изпълнител на диска" + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" +"Искате да изпратите информация за този диск\n" +"на комерсиален·CDDB·сървър,·който след това\n" +"ще стане собственик на изпратената от вас информация.·Тези сървъри\n" +"правят печалба от вашия труд.·Предлагаме ви да поддържате\n" +"свободните сървъри.\n" +"\n" +"Напред?" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" +"Искате да изпратите тази информация\n" +"чрез електронна поюа.\n" +"\n" +"Напред?" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "Избор на жанр" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"Изпращането изисква жанр различен от·\"непознат\"\n" +"Моля, изберете жанр" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "Жанр" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "Изпраща" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "Отказва" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "непознато ID3 поле\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "" +"Грешка: не мога да преведа името на файла. Потребителят %s не същесвува\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "Стартирането се провали\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "Грешка: Лош тип на записа\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "Грешка: Невалиден конфигурационен файл\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "Извлича и кодира" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "Извлича и кодира избраните песни" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "Само извлича" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "Извлича но не кодира избраните песни" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "Отказва Извличането и Кодирането" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "Прекъсва всички активни процеси по извличане и кодиране" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "Отказва само извличането" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "Спира всички извличащи процеси" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "DDJ Сканиране" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "Вмъква информация за диска в баздата данни DigitalDJ" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "Извлича част от песен" + +#: src/rip.c:166 +msgid "Play" +msgstr "Изпълнява" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "Текущ сектор:······0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "Извличане: Затихнало" + +#: src/rip.c:209 +msgid "Enc: Trk 99 (99.9x)" +msgstr "Код: Песен 99·(99.9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +msgid "Enc: Idle" +msgstr "Код.: Затихнало" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "Общи индикатори:" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "Начален сектор" + +#: src/rip.c:332 +msgid "End sector" +msgstr "Краен сектор" + +#: src/rip.c:380 +#, fuzzy, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "Вмъква информация в SQL БазаДанни" + +#: src/rip.c:602 +#, fuzzy +msgid "Error: can't open m3u file." +msgstr "Грешка: m3u·файлът не може да бъде отворен\n" + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "Общ размер на код. инфомрация: %d\n" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "Извлича: Песен %d·(%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "Извлича: %6.2f%%" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "Извличането приключи\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "Следващата песен е %d, общо %d\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "Проверява дали е необходимо да бъде извлечена друга песен\n" + +#: src/rip.c:955 +#, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "Кодира: Песен %d·(%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "Кодира: %6.2f%%" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "Кодирнаето на процесор %d приключи\n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "Изтрива·[%s]\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "Извличането приключи\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "Няма Изпълнител" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "Няма Заглавие" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" + +#: src/rip.c:1287 +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"Няма избрани песни.\n" +"Извличане на целия CD?\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "Извлича цял CD\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "Първата избрана песен е %d\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "Няма права за писане за да запише wav файлът" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "Извлича песен %d в %s\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "Извлича: Песен %d·(0.0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "Файлът %s вече е извлечен. Пропуска...\n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "Няма достатъчно място на твърдия диск" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "Обръща се към CDPRip\n" + +#: src/rip.c:1655 +#, c-format +msgid "Added track %d to %s list\n" +msgstr "Песента %d е добавена към списъка %s\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "Няма свободни процесори\n" + +#: src/rip.c:1697 +#, c-format +msgid "Enc track %d\n" +msgstr "Кодира песен %d\n" + +#: src/rip.c:1719 +#, fuzzy +msgid "No write access to write encoded file." +msgstr "Няма права за запис на кодирания файл" + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "" + +#: src/rip.c:1734 +#, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "Кодира: Песен %d·(0.0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "" +"Не се извлича нищо в момента, нека да занулим стойностите на кодиране\n" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "Общ размер на извлечената информация: %d\n" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "Общ размер на кодираната информация: %d\n" + +#~ msgid "Keep application minimum size" +#~ msgstr "Запазва малък размер на програмата" + +#~ msgid "Reply is [%s]\n" +#~ msgstr "Отговорът е [%s]\n" + +#~ msgid "Write tags in unicode" +#~ msgstr "Записва коментарите в уникод" + +#~ msgid "File System Character set encoding" +#~ msgstr "Кодова таблица на файловата система" diff --git a/po/ca.gmo b/po/ca.gmo new file mode 100644 index 0000000..b3d52aa Binary files /dev/null and b/po/ca.gmo differ diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 0000000..11cb2b6 --- /dev/null +++ b/po/ca.po @@ -0,0 +1,1290 @@ +# Catalan translation of Grip's message catalogs. +# Copyright (C) 2002, 2004 Free Software Foundation, Inc. +# Jordi Mallach , 2002, 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: grip 3.1.10\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2004-04-16 02:42+0200\n" +"Last-Translator: Jordi Mallach \n" +"Language-Team: Catalan \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "Especifiqueu la geometria de la finestra principal" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "GEOMETRIA" + +#: src/main.c:65 +msgid "Specify the config file to use (in your home dir)" +msgstr "" +"Especifiqueu el fitxer de configuració a utilitzar (en el vostre directori " +"personal)" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "CONFIG" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "Especifiqueu el dispositiu de cdrom a utilitzar" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "DISPOSITIU" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "Especifiqueu el dispositiu genèric scsi a utilitzar" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "Executa en mode «xicotet» (només-cd)" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "Mode «local» -- no mires la informació del disc en la xarxa" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "No faces redirecció de E/S" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "Executa en mode detallat (debug)" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "Error: no s'ha pogut inicialitzar [%s]\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" +"Aquesta és una versió de desenvolupament de Grip. Si teniu problemes, vos " +"suggerim que torneu a la última versió estable." + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "Grip s'ha iniciat amb èxit\n" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"Hi ha treballs en progrés.\n" +"De veritat voleu sortir?" + +#: src/grip.c:395 +msgid "Status" +msgstr "Estat" + +#: src/grip.c:410 +msgid "General" +msgstr "General" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "Extracció" + +#: src/grip.c:440 src/gripcfg.c:496 +msgid "Encode" +msgstr "Codificació" + +#: src/grip.c:485 +msgid "Help" +msgstr "Ajuda" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "Taula de continguts" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "Reproducció de CD" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "Extracció de CD" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "Configuració de Grip" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "Preguntes més freqüents" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "Obtenir més ajuda" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "Informar d'errors" + +#: src/grip.c:546 +msgid "About" +msgstr "Quant a" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "Versió %s" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "Creat amb el Grip" + +#: src/grip.c:922 +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"El vostre fitxer de configuració està desactualitzat -- Es\n" +"reinciarà als valors per defecte.\n" +"Tindreu que reconfigurar Grip.\n" +"La vostra configuració antiga s'ha desat amb el sufixe -old." + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "el servidor és %s, port %d\n" + +#: src/grip.c:1016 +#, fuzzy +msgid "Error: Unable to save config file." +msgstr "Error: No s'ha pogut desar el fitxer de configuració" + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "Config" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "Dispositiu CDRom" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "No interrompre la reproducció al sortir/executar" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "Rebobina al parar" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "Comença amb la primera pista si no s'està reproduint" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "Autoreproducció a l'insertar" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "Baralla abans de cada reproducció" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "Evita expulsions defectuoses" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "Escaneja la unitat de discs per a nous discs" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "Interval entre escaneigs (segons)" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "CD" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "Extractor:" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "Executable de l'extractor" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "Ordre de extracció" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "Deshabilita paranoia" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "Deshabilita paranoia extra" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "Ratlles: deshabilita la" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "detecció" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "reparació" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "Calcula l'ajust de ganància" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "Format de fitxer d'extracció" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "Dispositiu genèric SCSI" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "Extractor" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "Valor «nice» de la extracció" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "Núm. màxim de .wav no codificats" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "Autoextracció a l'insertar" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "Avisa després d'extraure" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "Autoexpulsió després d'extraure" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "Demora de l'auto-expulsió" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "Pausa abans d'extraure" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "Retarda la codificació fins que s'haja extret el disc" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "Atura la unitat de cdrom entre pistes" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "Ordre de filtre de wav" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "Ordre de filtre de disc" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "Opcions" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "Codificador:" + +#: src/gripcfg.c:412 +msgid "Encoder executable" +msgstr "Executable del codificador" + +#: src/gripcfg.c:417 +msgid "Encoder command-line" +msgstr "Ordre del codificador" + +#: src/gripcfg.c:423 +msgid "Encode file extension" +msgstr "Extensió de fitxer codificat" + +#: src/gripcfg.c:428 +msgid "Encode file format" +msgstr "Format de fitxer codificat" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "Codificador" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "Elimina els .wav després de codificar" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "Inserta la info en una base de dades SQL" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "Crea fitxers .m3u" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "Utilitza camins relatius en els fitxers .m3u" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "Format del fitxer M3U" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "Bitrate de la codificació (kbits/seg)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "Número de CPU a utilitzar" + +#: src/gripcfg.c:477 +msgid "Encode 'nice' value" +msgstr "Valor «nice» de la codificació" + +#: src/gripcfg.c:481 +msgid "Encode filter command" +msgstr "Ordre de filtre de codificació" + +#: src/gripcfg.c:505 +msgid "Add ID3 tags to encoded files" +msgstr "Afegeix tags ID3 als fitxers codificats" + +#: src/gripcfg.c:511 +msgid "Add ID3v2 tags to encoded files" +msgstr "Afegeix tags ID3v2 als fitxers codificats" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "Només fica tags als fitxers acabats en «.mp3»" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "Camp de comentari d'ID3" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "Codificació del joc de caràcters de l'ID3v1" + +#: src/gripcfg.c:532 +msgid "ID3v2 Character set encoding" +msgstr "Codificació del joc de caràcters de l'ID3v2" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "ID3" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "Servidor de BD" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "Ruta de CGI" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "Servidor primari" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "Servidor secundari" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "Email d'enviament a la BD" + +#: src/gripcfg.c:603 +msgid "DB Character set encoding" +msgstr "Codificació del joc de caràcters de la BD" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "Utilitza extensions de freedb" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "Fa consultes de discs automàticament" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "BD de discs" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "Utilitza un servidor intermedi" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "Adquireix servidor de la var. d'entorn «http_proxy»" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "Servidor intermedi" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "Port del servidor intermedi" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "Nom d'usuari del servidor intermedi" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "Password del servidor intermedi" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "Servidor Intermedi" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "Adreça de correu electrònic" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "Programa d'actualització de CD" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "No fica els noms de fitxer en minúscules" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "Permetre bits alts en els noms fitxer" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "No canvia espais a subratllats" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" +"Caràcters a no eliminar\n" +"dels noms de fitxer" + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "Misc" + +#: src/gripcfg.c:819 +#, fuzzy +msgid "Error: Unable to save ripper config." +msgstr "Error: No s'ha pogut desar la configuració de l'extractor" + +#: src/gripcfg.c:890 +#, fuzzy +msgid "Error: Unable to save encoder config." +msgstr "Error: No s'ha pogut desar la configuració del codificador" + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "L'estat de l'unitat és %d\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "La unitat no suporta la comprovació d'estat (assumir CDS_NO_INFO)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "No hi ha disc\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "Error: No s'ha pogut llegir el contingut del disc\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "La unitat no suporta la comprovació d'estat\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "Ha fallat el desbloqueig: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "CDIOCEJECT" + +#: src/cdplay.c:83 +#, fuzzy +msgid "Cannot do lookup while ripping." +msgstr "No es pot consultar mentre s'extrau" + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "Disc desconegut" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "Pista %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "S'està consultant a %s (a través de %s) el disc %02x.\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "S'està consultant a %s el disc %02x.\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"Coincidir amb «%s / %s»\n" +"S'estan descarregant dades...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "Fet\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "S'ha produït un error al desar les dades del disc\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "No hi ha coincidències\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +msgid "Length" +msgstr "Longitud" + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "Pistes" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "Pista" + +#: src/cdplay.c:633 src/discedit.c:390 +#, fuzzy +msgid "Error saving disc data." +msgstr "Error saving disc data" + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "Rota el mode de reproducció" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "Activa/Desactiva la repetició de la reproducció" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "Estat de l'extracció" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "Reprodueix la pista / Pausa la reproducció" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "Rebobina" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "Avanç ràpid" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "Vés a la pista anterior" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "Vés a la pista següent" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "Mostra/oculta les opcions del mode de reproducció" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "Següent disc" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "Para la reproducció" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "Expulsa el disc" + +#: src/cdplay.c:962 +msgid "Scan Disc Contents" +msgstr "Escaneja els continguts del disc" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "Mostra/oculta el control de volum" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "Mostra/oculta l'editor de discs" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "Inicia/avorta les cerques de DiscDB" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "Mostra/oculta les pistes" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Surt de Grip" + +#: src/cdplay.c:1173 +#, fuzzy +msgid "Cannot fast forward while ripping." +msgstr "No es pot avançar ràpidament mentre s'extrau" + +#: src/cdplay.c:1204 +#, fuzzy +msgid "Cannot rewind while ripping." +msgstr "No es pot rebobinar mentre s'extrau" + +#: src/cdplay.c:1235 +#, fuzzy +msgid "Cannot switch discs while ripping." +msgstr "No es pot canviar de disc mentre s'extrau" + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "Expulsa el disc\n" + +#: src/cdplay.c:1257 +#, fuzzy +msgid "Cannot eject while ripping." +msgstr "No es pot expular mentre s'extrau" + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "Teniu el disc -- expulsant\n" + +#: src/cdplay.c:1334 +#, fuzzy +msgid "Cannot play while ripping." +msgstr "No es pot reproduir mentre s'extrau" + +#: src/cdplay.c:1402 src/cdplay.c:1433 +#, fuzzy +msgid "Cannot switch tracks while ripping." +msgstr "No es pot canviar de pista mentre s'extrau" + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "S'està comprovant si hi ha un nou disc\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "CDStat ha trobat un disc, s'estan comprovant les pistes\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "Hi ha un disc vàlid!\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "No hi ha pistes amb llargària no-zero\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "CDStat ha dit que no hi ha cap disc\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "Sector actual: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "No hi ha disc" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"Aquest disc s'ha trobat en el vostre servidor secundari,\n" +"però no en el primari.\n" +"\n" +"Voleu enviar la informació sobre aquest disc?" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +#, fuzzy +msgid "Error: Unable to create temporary file." +msgstr "Error: No s'ha pogut crear un fitxer temporal" + +#: src/cdplay.c:1947 +#, fuzzy +msgid "Error: Unable to write disc data." +msgstr "Error: No s'ha pogut escriure les dades del disc" + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "S'està enviant l'entrada a %s\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "Missatge del sistema" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "La URI és %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "La consulta és [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "Error de stat %d en %s\n" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "S'està creant el directori %s\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "Error: %s existeix, però és un fitxer\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "Error: No s'ha pogut obrir %s per a escriptura\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "Títol del disc" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "Nom de la pista" + +#: src/discedit.c:84 +msgid "W" +msgstr "A" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "Nom de l'artista" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "Gènere ID3:" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "Any del disc" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "Artista de la pista" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "Parteix:" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "Títol/Artista" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "Artista/Títol" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "Caràcter de separació" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "Artista múltiple" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "Desa la info del disc" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "Envia la info del disc" + +#: src/discedit.c:393 +#, fuzzy +msgid "No disc present." +msgstr "No hi ha un disc present" + +#: src/discedit.c:543 +#, fuzzy +msgid "Cannot submit. No disc is present." +msgstr "" +"No es pot enviar\n" +"No hi ha cap disc present" + +#: src/discedit.c:558 +#, fuzzy +msgid "You must enter a disc title." +msgstr "Teniu que introduir el títol del disc" + +#: src/discedit.c:565 +#, fuzzy +msgid "You must enter a disc artist." +msgstr "Teniu que introduir l'artista del disc" + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" +"Esteu a punt d'enviar la informació sobre aquest\n" +"disc a un servidor CDDB comercial, que es farà\n" +"propietari de les dades que envieu. Aquests servidors\n" +"treuen profit del vostre esforç. Us suggerim que en lloc\n" +"suporteu els servidors lliures.\n" +"\n" +"Voleu continuar?" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" +"Esteu a punt de enviar la informació sobre aquest\n" +"disc per correu.\n" +"\n" +"Voleu continuar?" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "Selecció de gènere" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"L'enviament requereix un gènere diferent a «desconegut»\n" +"Si us plau, seleccioneu un gènere de DiscDB" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "Gènere DiscDB" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "Envia" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "Cancel·la" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "camp ID3 desconegut\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "" +"Error: no s'ha pogut traduir el nom de fitxer. No hi ha cap usuari «%s»\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "Ha fallat l'exec\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "Error: Tipus d'entrada errònia\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "Error: fitxer de configuració invàlid\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "Extrau i codifica" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "Extrau i codifica les pistes seleccionades" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "Només extrau" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "Extrau però no codifica les pistes seleccionades" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "Avorta l'extracció i codificació" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "Mata tots els processos actius de extracció i codificació" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "Avorta l'extracció" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "Mata els processos d'extracció" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "Escaneig DDJ" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "Inserta la informació del disc en la base de dades de DigitalDJ" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "Extrau pista parcial" + +#: src/rip.c:166 +msgid "Play" +msgstr "Reprodueix" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "Sector actual: 0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "Extr: Inactiu" + +#: src/rip.c:209 +msgid "Enc: Trk 99 (99.9x)" +msgstr "Cod: Pista 99 (99.9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +msgid "Enc: Idle" +msgstr "Cod: Inactiu" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "Indicadors generals:" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "Sector inicial" + +#: src/rip.c:332 +msgid "End sector" +msgstr "Sector final" + +#: src/rip.c:380 +#, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "S'està inserint la pista %d en la base de dades de ddj\n" + +#: src/rip.c:602 +#, fuzzy +msgid "Error: can't open m3u file." +msgstr "Error: no es pot obrir el fitxer m3u\n" + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "En KillRip\n" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "Ara la mida total de codificació és: %d\n" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "Extr: Pista %d (%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "Extr: %6.2f%%" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "Extracció finalitzada\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "Extracció parcial %d núm wavs %d\n" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "La següent pista és %d, el total és %d\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "Comprova si necessitem extraure altres pistes\n" + +#: src/rip.c:955 +#, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "Cod: Pista %d (%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "Cod: %6.2f%%" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "Ha finalitzat la codificació en el processador %d\n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "S'està eliminant [%s]\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "L'extracció ha finalitzat\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "SenseArtista" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "SenseTítol" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" + +#: src/rip.c:1287 +#, fuzzy +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" +"Executable de codificació invàlid\n" +"Comproveu la vostra configuració de codificació" + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"No hi ha cap pista seleccionada.\n" +"Extraure el CD sencer?\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "S'està extraient el CD sencer\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "En RipNextTrack\n" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "La primera pista comprovada és %d\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "Extraient!\n" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "No hi ha accés d'escriptura per a escriure el fitxer wav" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "S'està extraient la pista %d en %s\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "Extracció: Pista %d (0.0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "El fitxer %s ja s'ha extret. S'ignorarà...\n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "No hi ha espai disponible en el directori d'eixida" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "S'està cridant a CDPRip\n" + +#: src/rip.c:1655 +#, c-format +msgid "Added track %d to %s list\n" +msgstr "S'ha afegit la pista %d a la llista de codificació %s\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "No hi ha processadors lliures\n" + +#: src/rip.c:1697 +#, c-format +msgid "Enc track %d\n" +msgstr "Cod pista %d\n" + +#: src/rip.c:1719 +#, fuzzy +msgid "No write access to write encoded file." +msgstr "No hi ha accés d'escriptura per a escriure el fitxer codificat" + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "%i: S'està codificant en %s\n" + +#: src/rip.c:1734 +#, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "Enc: Pista %d (0.0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "En CalculateAll\n" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "" +"No s'està extraient ara, així que es ficaran a zero els valors de " +"codificació\n" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "La mida total d'extracció és: %d\n" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "La mida total de codificació és: %d\n" + +#~ msgid "" +#~ "Invalid rip executable\n" +#~ "Check your rip config" +#~ msgstr "" +#~ "Executable d'extracció invàlid\n" +#~ "Comproveu la vostra configuració d'extracció" + +#~ msgid "Keep application minimum size" +#~ msgstr "Manté l'aplicació amb el tamany mínim" + +#~ msgid "Reply is [%s]\n" +#~ msgstr "La resposta és [%s]\n" + +#~ msgid "Could not parse geometry string `%s'" +#~ msgstr "No s'ha pogut analitzar la cadena de geometria «%s»" + +#~ msgid "Aborted\n" +#~ msgstr "Avortat\n" + +#~ msgid "PL" +#~ msgstr "PL" + +#~ msgid "Exit GCD" +#~ msgstr "Surt de GCD" + +#~ msgid "MP3 file format" +#~ msgstr "Format del fitxer MP3" + +#~ msgid "MP3 'nice' value" +#~ msgstr "Valor «nice» de MP3" + +#~ msgid "MP3 filter command" +#~ msgstr "Ordre del filtre MP3" + +#~ msgid "MP3" +#~ msgstr "MP3" + +#~ msgid "" +#~ "Invalid MP3 executable\n" +#~ "Check your MP3 config" +#~ msgstr "" +#~ "Executable de MP3 invàlid\n" +#~ "Comproveu la vostra configuració de MP3" + +#~ msgid "MP3: Trk %d (0.0x)" +#~ msgstr "MP3: Pista %d (0.0x)" diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c new file mode 100644 index 0000000..e69de29 diff --git a/po/de.gmo b/po/de.gmo new file mode 100644 index 0000000..29b15e1 Binary files /dev/null and b/po/de.gmo differ diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..8867e04 --- /dev/null +++ b/po/de.po @@ -0,0 +1,1278 @@ +# grip. +# Copyright (C) 2005 Free Software Foundation, Inc. +# Götz Waschk , 2002, 2003, 2004, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: grip 3.3.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2005-01-31 00:19-0500\n" +"Last-Translator: Götz Waschk \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "Lege die Geometrie des Hauptfensters fest" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "GEOMETRIE" + +#: src/main.c:65 +msgid "Specify the config file to use (in your home dir)" +msgstr "Gib die Konfigurationsdatei (im Heimatverzeichnis) an" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "CONFIG" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "Gib das zu benutzende CD-ROM-Gerät an" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "GERÄT" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "Dieses generische SCSI-Gerät benutzen" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "Starte im \"kleinen\" (CD-Spieler) Modus" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "\"lokaler\" Modus -- hole keine CD-Informationen aus dem Netz" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "Keine I/O-Umleitung verwenden" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "Benutze ausführlichen (Debug)-Modus" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "Fehler: Konnte nicht initialisieren [%s]\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" +"Dies ist eine Entwicklerversion von Grip. Wenn Probleme auftreten, solltest " +"Du zur letzten stabilen Version zurückkehren." + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "Grip erfolgreich gestartet\n" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"Noch nicht fertig,\n" +"wirklich beenden?" + +#: src/grip.c:395 +msgid "Status" +msgstr "Status" + +#: src/grip.c:410 +msgid "General" +msgstr "Allgemein" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "Rip" + +#: src/grip.c:440 src/gripcfg.c:496 +msgid "Encode" +msgstr "Kodiere" + +#: src/grip.c:485 +msgid "Help" +msgstr "Hilfe" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "Inhaltsverzeichnis" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "CDs Abspielen" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "CDs Rippen" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "Grip Konfigurieren" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "FAQ" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "Mehr Hilfe Erhalten" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "Fehler Melden" + +#: src/grip.c:546 +msgid "About" +msgstr "Über" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "Version %s" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "Erstellt von Grip" + +#: src/grip.c:922 +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"Deine Konfigurationsdatei ist veraltet -- zurücksetzen auf Standardwerte.\n" +"Du musst Grip nun neu konfigurieren.\n" +"Die alte Konfigurationsdatei wurde durch Anhängen von -old umbenannt." + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "Server ist %s, Port %d\n" + +#: src/grip.c:1016 +msgid "Error: Unable to save config file." +msgstr "Fehler: Konnte Konfigurationsdatei nicht speichern." + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "Konfiguration" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "CD-ROM-Laufwerk" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "Abspielen beim Start/Beenden nicht unterbrechen" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "Zurückspulen wenn angehalten" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "Starte mit erstem Track wenn nicht abgespielt wird" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "Automatisch nach Einlegen Abspielen" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "Neu Mischen vor jedem Abspielen" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "Umgehe fehlerhafte CD-Auswurfsfunktion" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "Frage Laufwerk nach neuer CD" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "Frageintervall (Sekunden)" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "CD" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "Ripper:" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "Programm:" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "Kommandozeile" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "Schalte Paranoia aus" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "Schalte Extra-Paranoia aus" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "Schalte Kratzer" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "-erkennung aus" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "-reparatur aus" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "Berechne Verstärkungs-Anpassung" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "Rip-Datei-Format" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "Generisches SCSI-Gerät" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "Ripper" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "Priorität des Rippers" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "Max. unkodierte .wav's" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "Automatisch nach Einlegen Rippen" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "Piepe nach dem Rippen" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "Automatisch Auswerfen nach dem Rippen" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "Verzögerung vor automatischen Auswurf" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "Verzögerung vorm Rippen" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "Kodiere erst nach dem Rippen der CD." + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "Stoppe CD-ROM-Laufwerk zwischen den Titeln" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "Wav-Filter-Kommando" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "CD-Filter-Kommando" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "Einstellungen" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "Kodierer:" + +#: src/gripcfg.c:412 +msgid "Encoder executable" +msgstr "Kodierer" + +#: src/gripcfg.c:417 +msgid "Encoder command-line" +msgstr "Kommandozeile" + +#: src/gripcfg.c:423 +msgid "Encode file extension" +msgstr "Kodier-Dateinamensendung" + +#: src/gripcfg.c:428 +msgid "Encode file format" +msgstr "Kodier-Dateiformat" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "Kodierer" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "Lösche .wav-Dateien nach dem Kodieren" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "Füge in SQL-Datenbank ein" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "Erzeuge .m3u-Dateien" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "Benutze relative Pfade in .m3u-Dateien" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "M3U-Dateiformat" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "Bitrate des Kodierers (kbits/s)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "Anzahl von CPUs verwenden" + +#: src/gripcfg.c:477 +msgid "Encode 'nice' value" +msgstr "Priorität des Kodierers" + +#: src/gripcfg.c:481 +msgid "Encode filter command" +msgstr "Kodier-Filter-Kommando" + +#: src/gripcfg.c:505 +msgid "Add ID3 tags to encoded files" +msgstr "Füge ID3-Tags zu kodierten Dateien hinzu" + +#: src/gripcfg.c:511 +msgid "Add ID3v2 tags to encoded files" +msgstr "Füge ID3v2-Tags zu kodierten Dateien hinzu" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "Tags nur in '.mp3'-Dateien schreiben" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "ID3-Kommentar" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "ID3v1 Zeichenkodierung " + +#: src/gripcfg.c:532 +msgid "ID3v2 Character set encoding" +msgstr "ID3v2 Zeichenkodierung" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "ID3" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "Datenbankserver" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "CGI-Pfad" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "Primärer Server" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "Sekundärer Server" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "DB Email-Adresse" + +#: src/gripcfg.c:603 +msgid "DB Character set encoding" +msgstr "DB-Zeichenkodierung" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "Nutze FreeDB-Erweiterungen" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "Automatisch CDs nachschlagen" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "DiscDB" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "Benutze Proxy-Server" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "Hole Server aus \"http_proxy\"-Umgebungsvariable" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "Proxy-Server" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "Proxy-Portnummer" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "Proxy-Nutzername" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "Proxy-Passwort" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "Proxy" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "Email-Adresse" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "Programm zum Aktualisieren der CD" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "Wandle Dateinamen nicht in Kleinbuchstaben um" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "Erlaube \"hohe Bits\" in Dateinamen" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "Ändere Leerzeichen nicht in Unterstriche" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" +"Zeichen, die nicht aus Dateinamen \n" +"entfernt werden sollen" + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "Zeige Benachrichtigungssymbol" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "Sonst." + +#: src/gripcfg.c:819 +msgid "Error: Unable to save ripper config." +msgstr "Fehler: Konnte Konfiguration des Rippers nicht speichern." + +#: src/gripcfg.c:890 +msgid "Error: Unable to save encoder config." +msgstr "Fehler: Konnte Konfiguration des Kodierers nicht speichern." + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "Laufwerksstatus ist %d\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "Das Laufwerk unterstützt keine Status-Prüfung (nehme CDS_NO_INFO an)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "Keine CD\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "Fehler: Konnte CD-Inhalt nicht lesen\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "Laufwerk unterstützt eine Status-Prüfung\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "Entriegelung fehlgeschlagen: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "CDIOCEJECT" + +#: src/cdplay.c:83 +msgid "Cannot do lookup while ripping." +msgstr "Kann die CD nicht während des Rippens nachschlagen." + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "Unbekannte CD" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "Track %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "Frage %s (über %s) nach CD %02x.\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "Frage %s nach CD %02x.\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"Treffer für \"%s / %s\"\n" +"Lade Daten herunter...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "Fertig\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "Fehler beim Speichern der CD-Daten\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "Kein Treffer\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +msgid "Length" +msgstr "Länge" + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "Tracks" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "Track" + +#: src/cdplay.c:633 src/discedit.c:390 +msgid "Error saving disc data." +msgstr "Fehler beim Speichern der CD-Daten." + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "Rotiere Abspielmodi" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "Schalte Wiederholung an/aus" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "Rip-Status" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "Spiele Track / Pause" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "Zurückspulen" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "Vorspulen" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "Gehe zum vorherigen Track" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "Gehe zum nächsten Track" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "Schalte Abspielmodi an/aus" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "Nächste CD" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "Stoppe das Abspielen" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "CD auswerfen" + +#: src/cdplay.c:962 +msgid "Scan Disc Contents" +msgstr "Lese CD-Verzeichnis" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "Schalte Lautstärkeregler an/aus" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "Schalte CD-Editor an/aus" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "Start/Abbruch der DiscDB-Abfrage" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "Schalte Track-Anzeige an/aus" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Grip Beenden" + +#: src/cdplay.c:1173 +msgid "Cannot fast forward while ripping." +msgstr "Kann während des Rippens nicht vorspulen." + +#: src/cdplay.c:1204 +msgid "Cannot rewind while ripping." +msgstr "Kann während des Rippens nicht zurückspulen." + +#: src/cdplay.c:1235 +msgid "Cannot switch discs while ripping." +msgstr "Kann während des Rippens nicht die CD wechseln." + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "CD auswerfen\n" + +#: src/cdplay.c:1257 +msgid "Cannot eject while ripping." +msgstr "Kann die CD nicht während des Rippens auswerfen." + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "CD vorhanden -- werfe aus\n" + +#: src/cdplay.c:1334 +msgid "Cannot play while ripping." +msgstr "Kann die CD nicht während des Rippens abspielen." + +#: src/cdplay.c:1402 src/cdplay.c:1433 +msgid "Cannot switch tracks while ripping." +msgstr "Kann während des Rippens nicht den Track wechseln." + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "Prüfe die neue CD\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "CDStat fand eine CD, prüfe die Tracks\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "Wir haben eine gültige CD!\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "Keine Tracks mit einer Länge ungleich null\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "CDStat sagt, dass keine CD vorhanden ist\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "Aktueller Sektor: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "Keine CD" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"Diese CD wurde auf Deinem sekundären Server gefunden,\n" +"aber nicht auf dem primären Server.\n" +"\n" +"Möchtest Du diese CD-Information übertragen?" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +msgid "Error: Unable to create temporary file." +msgstr "Fehler: Konnte keine temporäre Datei anlegen." + +#: src/cdplay.c:1947 +msgid "Error: Unable to write disc data." +msgstr "Fehler: Konnte CD-Daten nicht schreiben." + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "Schicke Eintrag per Email an %s\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "Systemnachricht" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "URI ist %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "Anfrage ist [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "Status-Fehler %d auf %s\n" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "Lege Verzeichnis %s an\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "Fehler: %s existiert, ist aber eine Datei\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "Fehler: Konnte %s nicht zum Schreiben öffnen\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "CD-Titel" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "Track-Name" + +#: src/discedit.c:84 +msgid "W" +msgstr "W" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "CD-Künstler" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "ID3-Genre" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "CD-Jahr" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "T.-Künstler" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "Teilen:" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "Titel/Künstler" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "Künstler/Titel" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "Aufteil-Zeichen" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "verschiedene Künstler" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "Speichere CD-Information" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "Übertrage CD-Information" + +#: src/discedit.c:393 +msgid "No disc present." +msgstr "Keine CD vorhanden." + +#: src/discedit.c:543 +msgid "Cannot submit. No disc is present." +msgstr "Kann nichts Übertragen, keine CD vorhanden." + +#: src/discedit.c:558 +msgid "You must enter a disc title." +msgstr "Du musst einen CD-Namen eingeben." + +#: src/discedit.c:565 +msgid "You must enter a disc artist." +msgstr "Du musst einen CD-Künstler eingeben." + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" +"Du bist dabei, diese CD-Information zu einem\n" +"kommerziellen CDDB-Server zu schicken, dem die Daten,\n" +"die Du überträgst, dann gehören werden. Diese Server\n" +"machen Profit aus Deiner Leistung. Wir schlagen vor,\n" +"stattdessen freie Server zu unterstützen\n" +"\n" +"Weitermachen?" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" +"Du bist dabei, diese CD-Information\n" +"per Email zu übertragen.\n" +"\n" +"Weitermachen?" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "Genre-Auswahl" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"Übertragen erfordert ein anderes Genre als \"unknown\"\n" +"Wähle bitte unten ein DiscDB-Genre" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "DiscDB-Genre" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "Abschicken" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "Abbrechen" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "unbekanntes ID3-Feld\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "" +"Fehler: Konnte Dateinamen nicht übersetzen. Kein Nutzer namens %s bekannt\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "Ausführen fehlgeschlagen\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "Fehler: Falscher Eintragstyp\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "Fehler: Ungültige Konfigurationsdatei\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "Rippe und Kodiere" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "Rippe und Kodiere die ausgewählten Tracks" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "Nur Rippen" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "Rippen der ausgewählten Titel ohne Kodieren" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "Alles Abbrechen" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "Töte alle aktiven Rip-und Kodierungsprozesse" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "Nur Rippen abbrechen" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "Töten des Rip-Prozesses" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "DDJ Einfügen" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "Füge CD-Information in die DigitalDJ-Datenbank ein" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "Track-Ausschnitt Rippen" + +#: src/rip.c:166 +msgid "Play" +msgstr "Abspielen" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "Aktueller Sektor: 0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "Rip: Leerlauf" + +#: src/rip.c:209 +msgid "Enc: Trk 99 (99.9x)" +msgstr "Kod: Trk 99 (99.9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +msgid "Enc: Idle" +msgstr "Kod: Leerlauf" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "Gesamtanzeigen:" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "Start-Sektor" + +#: src/rip.c:332 +msgid "End sector" +msgstr "End-Sektor" + +#: src/rip.c:380 +#, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "Füge Titel %d in die ddj-Datenbank ein\n" + +#: src/rip.c:602 +msgid "Error: can't open m3u file." +msgstr "Fehler: Kann m3u-Datei nicht öffnen." + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "In KillRip\n" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "Gesamte kodierte Größe ist nun: %d\n" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "Rip: Trk %d (%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "Ripp: %6.2f%%" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "Rippen fertig\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "Rippe teilweise %d, Anzahl wavs %d\n" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "Nächster Titel ist %d, insgesamt %d\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "Prüfe, ob wir einen weiteren Track rippen müssen\n" + +#: src/rip.c:955 +#, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "Kod: Trk %d (%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "Kod: %6.2f%%" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "Kodieren auf CPU %d fertig\n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "Lösche [%s]\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "Rippen fertig\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "KeinKünstler" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "KeinTitel" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" +"Es wurde keine CD im Laufwerk gefunden. Wenn eine CD im Laufwerk ist, dann " +"prüfe bitte die CD-ROM-Einstellungen unter Konfiguration->CD." + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" +"Ungültiges Ripper-Programm.\n" +"Prüfe Deine Rip-Einstellungen und stelle sicher, dass der vollständige Pfad " +"zum Ripper angegeben ist." + +#: src/rip.c:1287 +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" +"Ungültiges Kodier-Programm.\n" +"Prüfe Deine Kodierer-Einstellungen und stelle sicher, dass der vollständige " +"Pfad zum Kodierer angegeben ist." + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"Keine Tracks ausgewählt,\n" +"ganze CD rippen?\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "Rippe die ganze CD.\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "In RipNextTrack\n" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "Erster markierter Track ist %d\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "Rippe los!\n" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "Kein Schreibzugriff zum Schreiben der Wav-Datei" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "Rippe Track %d nach %s\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "Rip: Trk %d (0.0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "Datei %s bereits gerippt, überspringe...\n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "Kein Platz mehr im Ausgabeverzeichnis" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "Rufe CDPRip auf\n" + +#: src/rip.c:1655 +#, c-format +msgid "Added track %d to %s list\n" +msgstr "Track %d zur %s-Liste hinzugefügt\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "Keine freien CPUs\n" + +#: src/rip.c:1697 +#, c-format +msgid "Enc track %d\n" +msgstr "Kod Track %d\n" + +#: src/rip.c:1719 +msgid "No write access to write encoded file." +msgstr "Kein Schreibzugriff zum Schreiben der kodierten Datei." + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "%i: Kodiere zu %s\n" + +#: src/rip.c:1734 +#, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "Kod: Trk %d (0.0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "In CalulateAll\n" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "Wir rippen gerade nichts, also Kodierwerte auf 0 setzen\n" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "Gesamte Rippgröße: %d\n" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "Gesamte kodierte Größe: %d\n" + +#~ msgid "" +#~ "Invalid rip executable\n" +#~ "Check your rip config" +#~ msgstr "" +#~ "Ungültiges Rip-Programm\n" +#~ "Prüfe Deine Rip-Einstellungen" + +#~ msgid "Keep application minimum size" +#~ msgstr "Halte Fenstergröße minimal" + +#~ msgid "Reply is [%s]\n" +#~ msgstr "Antwort ist [%s]\n" + +#~ msgid "Write tags in unicode" +#~ msgstr "Schreibe Tags in Unicode" + +#~ msgid "File System Character set encoding" +#~ msgstr "Zeichenkodierung im Dateisystem" + +#~ msgid "Could not parse geometry string `%s'" +#~ msgstr "Konnte Geometrie-Angabe `%s' nicht auswerten" + +#~ msgid "Aborted\n" +#~ msgstr "Abgebrochen\n" + +#~ msgid "PL" +#~ msgstr "PL" + +#~ msgid "Column/Button: %d/%d\n" +#~ msgstr "Zeile/Knopf: %d/%d\n" + +#~ msgid "Exit GCD" +#~ msgstr "GCD beenden" + +#~ msgid "MP3 file format" +#~ msgstr "MP3-Dateiformat" + +#~ msgid "MP3 'nice' value" +#~ msgstr "MP3-Priorität" + +#~ msgid "MP3 filter command" +#~ msgstr "MP3-Filter-Programm" + +#~ msgid "MP3" +#~ msgstr "MP3" + +#~ msgid "" +#~ "Invalid MP3 executable\n" +#~ "Check your MP3 config" +#~ msgstr "" +#~ "Ungültiger MP3-Kodierer\n" +#~ "Prüfe Deine MP3-Einstellungen" + +#~ msgid "MP3: Trk %d (0.0x)" +#~ msgstr "MP3: Trk %d (0.0x)" diff --git a/po/es.gmo b/po/es.gmo new file mode 100644 index 0000000..462ffcc Binary files /dev/null and b/po/es.gmo differ diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..b3bd40d --- /dev/null +++ b/po/es.po @@ -0,0 +1,1277 @@ +# Traducción al español de grip. +# Copyright (C) 2002 Free Software Foundation, Inc. +# El_Pavo_Asesino , 2002 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: grip-3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2002-05-24 15:40-006\n" +"Last-Translator: El_Pavo_Asesino \n" +"Language-Team: ESPAÑOL \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "Especifica la geometría de la ventana principal" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "GEOMETRIA" + +#: src/main.c:65 +msgid "Specify the config file to use (in your home dir)" +msgstr "" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "Especifica el dispositivo cdrom a usar" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "DISPOSITIVO" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "Especifica el dispositivo SCSCI genérico a usar" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "Lanzar en modo \"small\" (sólo el cdrom)" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "Modo \"local\" -- no buscar la informacion del disco en la red" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "No hacer redirección de E/S" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "Correr en modo prolijo (depuración)" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "Error: No pude inicializar [%s]\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"Hay trabajos en proceso\n" +"¿Reálmente quieres cerrar?" + +#: src/grip.c:395 +#, fuzzy +msgid "Status" +msgstr "Estado de la extracción" + +#: src/grip.c:410 +msgid "General" +msgstr "" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "Extraer" + +#: src/grip.c:440 src/gripcfg.c:496 +#, fuzzy +msgid "Encode" +msgstr "Codificador" + +#: src/grip.c:485 +msgid "Help" +msgstr "Ayuda" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "Tabla de contenido" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "¿Cómo tocar CDs?" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "¿Cómo extraer música de CDs?" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "Configurar Grip" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "PUF (Preguntas de Uso Frecuente)" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "¿Cómo obtener más ayuda?" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "Reportar errores" + +#: src/grip.c:546 +msgid "About" +msgstr "Acerca de ..." + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "" + +#: src/grip.c:922 +#, fuzzy +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"Tu archivo de configuración es muy antiguo -- tomaré valores por defecto.\n" +"Necesitarás reconfigurar Grip\n" +"Tu archivo viejo de configuración ha sido guardado en ~/.grip-old." + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "Servidor: %s, puerto: %d\n" + +#: src/grip.c:1016 +#, fuzzy +msgid "Error: Unable to save config file." +msgstr "Error: No pude guardar el archivo de configuración" + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "Configurar" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "Dispositivo CDROM" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "No interrumpir la musica al salir o al entrar" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "Rebobinar cuando se pare" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "Arrancar con la primer pista si no se está tocando" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "Auto-tocar cuando se inserte un disco" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "Remezclar antes de tocar" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "Hacer algo si falla la expulsión" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "CD" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "Extractor" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "Ejecutable del extractor" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "Línea de comandos para extraer" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "Deshabilitar paranoia" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "Deshabilitar extra paranoia" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "Deshabilitar los rayones" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "detección" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "reparar" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "Calcular el ajuste de ganancia" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "Formato de archivo de extracción" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "Dispositivo SCSI genérico" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "Extractor" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "Valor 'nice' del extractor" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "No. máximo de .wav sin codificar" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "Auto-extraer al intertar" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "Hacer Beep al terminar de extraer" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "Auto-expulsar al terminar de extraer" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "Retardo de auto-expulsión" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "Comando de filtro Wav" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "Comando de filtro de disco" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "Opciones" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "Codificar" + +#: src/gripcfg.c:412 +#, fuzzy +msgid "Encoder executable" +msgstr "Ejecutable Mp3" + +#: src/gripcfg.c:417 +#, fuzzy +msgid "Encoder command-line" +msgstr "Línea de comandos para extraer" + +#: src/gripcfg.c:423 +#, fuzzy +msgid "Encode file extension" +msgstr "Formato de archivo de extracción" + +#: src/gripcfg.c:428 +#, fuzzy +msgid "Encode file format" +msgstr "Formato de archivo de extracción" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "Codificador" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "Borrar .wav despues de codificar" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "Insertar la información en una base de datos SQL" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "Crear archivos .m3u" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "Usar direcciones relativas en los archivos .m3u" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "Formato de archoivo M3u" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "Bitrate de codificación (kbits/seg)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "Número de CPUs a usar" + +#: src/gripcfg.c:477 +#, fuzzy +msgid "Encode 'nice' value" +msgstr "Valor 'nice' del extractor" + +#: src/gripcfg.c:481 +#, fuzzy +msgid "Encode filter command" +msgstr "Comando de filtro de disco" + +#: src/gripcfg.c:505 +#, fuzzy +msgid "Add ID3 tags to encoded files" +msgstr "Añadir etiquetas ID3 a los archivos MP3" + +#: src/gripcfg.c:511 +#, fuzzy +msgid "Add ID3v2 tags to encoded files" +msgstr "Añadir etiquetas ID3v2 a los archivos MP3" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "Comentarios en ID3" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "" + +#: src/gripcfg.c:532 +#, fuzzy +msgid "ID3v2 Character set encoding" +msgstr "Borrar .wav despues de codificar" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "ID3" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "Servidor BD" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "Camino a CGI" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "Servidor Primario" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "Servidor Secundario" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "Correo-e para mandar a a la BD" + +#: src/gripcfg.c:603 +#, fuzzy +msgid "DB Character set encoding" +msgstr "Borrar .wav despues de codificar" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "Usar extensiones freedb" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "Busqueda de información automática" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "Usar servidor Proxy" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "Obtener el servidor desde la variable de entorno 'http-proxy'" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "Servidor Proxy" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "Puerto Proxy" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "nombre de usuario Proxy" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "Contraseña Proxy" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "Direccion de correo" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "Programa de actualización CD" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "No convertir el nombre a minúsculas" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "Permitir bits altos en los nombres de archivos" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "No cambiar espacios a guión bajo" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" +"Caractéres que no se deben Strip?\n" +" en los nombres de archivo" + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "" + +#: src/gripcfg.c:819 +#, fuzzy +msgid "Error: Unable to save ripper config." +msgstr "Error: No pude guardar el archivo de configuración" + +#: src/gripcfg.c:890 +#, fuzzy +msgid "Error: Unable to save encoder config." +msgstr "Error: No pude guardar el archivo de configuración" + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "El estado del dispositivo es %s\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "El dispositivo no soporta verificación de estado (asumir CDS_NO_INFO)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "No hay disco\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "Error: Fallo al leer el contenido del disco\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "El dispositico no soporta verificación de estado\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "Fallo al desbloquear: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "" + +#: src/cdplay.c:83 +#, fuzzy +msgid "Cannot do lookup while ripping." +msgstr "No puedo hacer una búsqueda mientras estoy extrayendo.." + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "Disco desconocido" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "Pista %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "Consultando %s (por medio de %s) para el disco %02x.\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "Consutando %s poara el disco %02x.\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"coincidencia para \"%s / %s\"\n" +"Descargando datos...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "Hecho\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "Error al guardar los datos del disco\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "No se encontró coincidencia\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +#, fuzzy +msgid "Length" +msgstr "Duración" + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "Pistas" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "Pista" + +#: src/cdplay.c:633 src/discedit.c:390 +#, fuzzy +msgid "Error saving disc data." +msgstr "Error al guardar los datos del disco" + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "Reproducción en rotación" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "Activar reproducción en bucle" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "Estado de la extracción" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "Reproducir pista / pausa" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "Rebobinar" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "Avance rápido" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "Ir a la pista anterior" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "Ir a la pista siguiente" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "Conmutar modos de reproducción" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "Siguiente disco" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "Parar reproducción" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "Expulsar disco" + +#: src/cdplay.c:962 +#, fuzzy +msgid "Scan Disc Contents" +msgstr "Tabla de contenido" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "Mostrar control de volumen" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "Mostrar editor de pistas" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "Iniciar/abortar consulta a discDB" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "Mostrar lista de pistas" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Salir de Grip" + +#: src/cdplay.c:1173 +#, fuzzy +msgid "Cannot fast forward while ripping." +msgstr "No puedo avanzar mientras esté extrayendo datos" + +#: src/cdplay.c:1204 +#, fuzzy +msgid "Cannot rewind while ripping." +msgstr "No puede retroceder mientras esté extrayendo datos" + +#: src/cdplay.c:1235 +#, fuzzy +msgid "Cannot switch discs while ripping." +msgstr "No puedo conmutar mientras esté extrayendo datos" + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "Espulsar disco\n" + +#: src/cdplay.c:1257 +#, fuzzy +msgid "Cannot eject while ripping." +msgstr "No puede expulsar mientras esté extrayendo datos" + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "Hay disco -- expulsando\n" + +#: src/cdplay.c:1334 +#, fuzzy +msgid "Cannot play while ripping." +msgstr "No puedo reproducir mientras esté extrayendo datos" + +#: src/cdplay.c:1402 src/cdplay.c:1433 +#, fuzzy +msgid "Cannot switch tracks while ripping." +msgstr "No puedo cambiar de pistas mientras esté extrayendo datos" + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "Buscando un nuevo disco\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "CDStat encontró un disco, verificando pistas\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "Tenemos un disco válido\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "No hay pistas de longitud cero\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "CDStat dice que no hay disco\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "Sector actual: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "No hay disco" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"Este disco ha sido encontrado en tu servidor secundario,\n" +"pero no en tu servidor primario.\n" +"\n" +"¿Deseas mandar esta informaciñon de disco?" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +#, fuzzy +msgid "Error: Unable to create temporary file." +msgstr "Error: No pude crear un archivo temporal" + +#: src/cdplay.c:1947 +#, fuzzy +msgid "Error: Unable to write disc data." +msgstr "Error: No pude escribir los datos del disco" + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "Enviando entrada a %s\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "Mensaje de sistema" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "UR es %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "La consulta es [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "Errorde estado % en %s\n" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "Creando directorio %s\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "Error: %s existe, pero es un archivo\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "Error: No pude abrir %s para escribir\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "Título del disco" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "Nombre de la canción" + +#: src/discedit.c:84 +msgid "W" +msgstr "" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "Artista" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "género ID3" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "Añó del disco" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "Artista de la canción" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "partir:" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "Título/Artista" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "Artista/Titulo" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "partir caractértes" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "Varios artistas" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "Guardar la información del disco" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "Subir informacion del disco" + +#: src/discedit.c:393 +#, fuzzy +msgid "No disc present." +msgstr "No hay disco presente" + +#: src/discedit.c:543 +#, fuzzy +msgid "Cannot submit. No disc is present." +msgstr "" +"No puede mandar los datos\n" +"no hayd disco e labandeja" + +#: src/discedit.c:558 +#, fuzzy +msgid "You must enter a disc title." +msgstr "Debes poner un titulo al disco" + +#: src/discedit.c:565 +#, fuzzy +msgid "You must enter a disc artist." +msgstr "Debes poner al artista" + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" +"Estas apunto de mandar la información de este disco\n" +"a un servidor CDDB comercial, quienes entonces se\n" +"apoderarán de los datos que mandes. Esos servidores\n" +"hacen negocio con tu esfuerzo. Te sugerimos que mejor\n" +"soportes a los servidores libres.\n" +"\n" +"¿Continuar de todos modos?" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" +"Estas apunto de mandar esta\n" +"información via correo-e.\n" +"\n" +"¿Continuar?" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "Selección de género" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "" + +#: src/rip.c:166 +msgid "Play" +msgstr "" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "" + +#: src/rip.c:209 +msgid "Enc: Trk 99 (99.9x)" +msgstr "" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +#, fuzzy +msgid "Enc: Idle" +msgstr "Codificador" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "" + +#: src/rip.c:332 +msgid "End sector" +msgstr "" + +#: src/rip.c:380 +#, fuzzy, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "Insertar la información en una base de datos SQL" + +#: src/rip.c:602 +msgid "Error: can't open m3u file." +msgstr "" + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "" + +#: src/rip.c:955 +#, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" + +#: src/rip.c:1287 +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "" + +#: src/rip.c:1655 +#, c-format +msgid "Added track %d to %s list\n" +msgstr "" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "" + +#: src/rip.c:1697 +#, fuzzy, c-format +msgid "Enc track %d\n" +msgstr "Pista %02d" + +#: src/rip.c:1719 +msgid "No write access to write encoded file." +msgstr "" + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "" + +#: src/rip.c:1734 +#, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "" + +#~ msgid "Keep application minimum size" +#~ msgstr "Mantener el tamaño de la aplicación lo más minimo posible" + +#~ msgid "Reply is [%s]\n" +#~ msgstr "La repsuesta es [%s]\n" + +#, fuzzy +#~ msgid "File System Character set encoding" +#~ msgstr "Borrar .wav despues de codificar" + +#~ msgid "Could not parse geometry string `%s'" +#~ msgstr "No pude analizar la cadena de geometría `%s'" + +#~ msgid "Aborted\n" +#~ msgstr "Abortado\n" + +#~ msgid "Exit GCD" +#~ msgstr "Salir de GCD" + +#~ msgid "MP3 command-line" +#~ msgstr "Linea de comandos para Mp3" + +#~ msgid "MP3 file format" +#~ msgstr "Formato de archvivo MP3" + +#~ msgid "MP3 'nice' value" +#~ msgstr "valor 'nice' para MP3" + +#~ msgid "MP3 filter command" +#~ msgstr "Comando de filtro de MP3" + +#~ msgid "MP3" +#~ msgstr "MP3" diff --git a/po/fi.gmo b/po/fi.gmo new file mode 100644 index 0000000..fd7d71f Binary files /dev/null and b/po/fi.gmo differ diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 0000000..8bbcdab --- /dev/null +++ b/po/fi.po @@ -0,0 +1,1265 @@ +# Finnish translations for grip package. +# Copyright (C) 2004 THE grip'S COPYRIGHT HOLDER +# This file is distributed under the same license as the grip package. +# , 2003,2004. +# Sanastoa: +# rip = kopiointi +# encode = koodaus +# bitrate = bittinopeus +# GAIN = ? +# +# +msgid "" +msgstr "" +"Project-Id-Version: grip 3.1.8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2004-03-30 12:00+0300\n" +"Last-Translator: Flammie Pirinen \n" +"Language-Team: Finnish \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" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "Määrittele pääikkunan sijainti ja mitat" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "MITAT" + +#: src/main.c:65 +msgid "Specify the config file to use (in your home dir)" +msgstr "Määrittele käytettävä asetustiedosto (kotihakemistossasi)" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "ASETUKSET" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "Määrittele käytettävä CD-aseman laitetiedosto" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "LAITE" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "Määrittele käytettävä SCSI-laitetiedosto" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "Käynnistä \"pienessä\" (CD-soitin)-tilassa" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "\"Paikallinen\" tila -- älä hae levyn tietoja verkosta" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "Älä käytä I/O-uudelleenohjausta" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "Suorita yksityiskohtaisessa vianetsintätilassa" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "Virhe: Alustus ei onnistunut [%s]\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" +"Tämä on Gripin kehitysversio. Jos kohtaat ongelmia suositellaan että " +"käyttäisit viimeisintä vakaata versiota" + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "Grip käynnistyi onnistuneesti\n" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"Työ on kesken\n" +"Haluatko varmasti lopettaa?" + +#: src/grip.c:395 +msgid "Status" +msgstr "Tila" + +#: src/grip.c:410 +msgid "General" +msgstr "Yleiset" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "Kopiointi" + +#: src/grip.c:440 src/gripcfg.c:496 +msgid "Encode" +msgstr "Koodaus" + +#: src/grip.c:485 +msgid "Help" +msgstr "Ohje" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "Sisällysluettelo" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "CD-levyjen soitto" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "CD-levyjen kopiointi" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "Gripin asetusten tekeminen" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "VUKK" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "Lisäohjeiden hakeminen" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "Ohjelmavirheiden raportointi" + +#: src/grip.c:546 +msgid "About" +msgstr "Tietoja" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "Versio %s" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "Tehty Gripillä" + +#: src/grip.c:922 +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"Asetustiedostosi on vanhentunut -- oletusasetukset palautettiin.\n" +"Gripin asetukset täytyy tehdä uudelleen.\n" +"Vanha asetustiedostosi tallennettiin -old-päätteellä." + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "palvelin on %s, portti %d\n" + +#: src/grip.c:1016 +#, fuzzy +msgid "Error: Unable to save config file." +msgstr "Virhe: Asetustiedostoa ei voitu tallentaa" + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "Asetukset" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "CD-aseman laitetiedosto" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "Älä keskeytä soittoa aloitettaessa tai lopetettaessa" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "Kelaa alkuun pysäytettäessä" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "Aloita ensimmäisestä raidasta jos ei soiteta" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "Soita levyä heti asemaan asettamisen jälkeen" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "Sekoita ennen jokaista soittokertaa" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "Kierrä rikkinäinen levynpoistotoiminto" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "Tarkkaile asemaa uuden levyn varalta" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "Tarkkailuväli sekunteina" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "CD" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "Kopioija:" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "Kopiointiohjelma" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "Kopioinnin komentojono" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "Poista virheenkorjaus" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "Poista tarkempi virheenkorjaus" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "Poista naarmujen" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "tunnistus" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "korjaus" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "Laske GAIN-säätöarvot" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "Levykopion tiedostonimi" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "SCSI-laitetiedosto" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "Kopioija" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "Kopioinnin 'nice'-arvo" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "Suurin koodaamattomien .wav-tiedostojen määrä" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "Kopioi automaattisesti" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "Äänimerkki valmistuttua" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "Poista levy kopioinnin jälkeen" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "Poiston viive" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "Tauko ennen kopiointia" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "Aloita koodaus vasta levyn kopioiduttua" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "Pysäytä CD-asema raitojen välillä" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "Wav-tiedostojen suodatuskomento" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "Levyn suodatuskomento" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "Asetukset" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "Koodaaja:" + +#: src/gripcfg.c:412 +msgid "Encoder executable" +msgstr "Koodausohjelma" + +#: src/gripcfg.c:417 +msgid "Encoder command-line" +msgstr "Koodauksen komentorivi" + +#: src/gripcfg.c:423 +msgid "Encode file extension" +msgstr "Koodauksen tiedostopääte" + +#: src/gripcfg.c:428 +msgid "Encode file format" +msgstr "Koodattava tiedostonimi" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "Koodaaja" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "Poista .wav-tiedosto koodauksen jälkeen" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "Syötä tiedot SQL-kantaan" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "Tee .m3u-soittolistat" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "Käytä .m3u-soittolistoissa suhteellisia polkuja" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "M3U:n tiedostonimi" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "Koodauksen bittinopeus (kilobittiä sekunnissa)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "Käytettävien prosessorien määrä" + +#: src/gripcfg.c:477 +msgid "Encode 'nice' value" +msgstr "Koodauksen 'nice'-arvo" + +#: src/gripcfg.c:481 +msgid "Encode filter command" +msgstr "Koodauksen filtteröintikomento" + +#: src/gripcfg.c:505 +msgid "Add ID3 tags to encoded files" +msgstr "Lisää ID3-merkinnät koodattuihin tiedostoihin" + +#: src/gripcfg.c:511 +msgid "Add ID3v2 tags to encoded files" +msgstr "Lisää ID3v2-merkinnät koodattuihin tiedostoihin" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "Merkitse vain .mp3-tiedostot" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "ID3-kommenttikenttä" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "ID3v1-merkistökoodaus" + +#: src/gripcfg.c:532 +msgid "ID3v2 Character set encoding" +msgstr "ID3v2-merkistökoodaus" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "ID3" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "Tietokantapalvelin" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "CGI-polku" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "Ensisijainen palvelin" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "Toissijainen palvelin" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "Tietokantaan lähettämisen postiosoite" + +#: src/gripcfg.c:603 +msgid "DB Character set encoding" +msgstr "Tietokannan merkistökoodaus" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "Käytä freedb-laajennuksia" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "Tee levyn tietojen haut automaattisesti" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "DiscDB" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "Käytä välityspalvelinta" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "Hae palvelin 'http_proxy'-ympäristömuuttujasta" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "Välipalvelin" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "Välipalvelimen portti" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "Välipalvelimen käyttäjänimi" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "Välipalvelimen salasana" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "Välipalvelin" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "Sähköpostiosoite" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "CD-päivitysohjelma" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "Älä muuta tiedostonimiä pienaakkosiksi" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "Hyväksy korkeat bitit tiedostonimissä" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "Älä muuta välilyöntejä alaviivoiksi" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" +"Merkit joita ei poisteta\n" +"tiedostonimistä" + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "Muut" + +#: src/gripcfg.c:819 +#, fuzzy +msgid "Error: Unable to save ripper config." +msgstr "Virhe: Kopioijan asetustiedostoa ei voitu tallentaa" + +#: src/gripcfg.c:890 +#, fuzzy +msgid "Error: Unable to save encoder config." +msgstr "Virhe: Koodaajan asetustiedostoa ei voitu tallentaa" + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "Aseman tila on %d\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "Asema ei tue tilan tarkastusta (oletetaan CDS_NO_INFO)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "Ei levyä\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "Virhe: Levyn sisältöä ei pystytty lukemaan\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "Asema ei tue tilan tarkastusta\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "Lukituksen purkaminen epäonnistui: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "CDIOCEJECT" + +#: src/cdplay.c:83 +#, fuzzy +msgid "Cannot do lookup while ripping." +msgstr "Ei voida hakea kopioitaessa" + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "Tuntematon levy" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "Raita %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "Haetaan osoitteesta %s (%s:n kautta) tietoja levylle %02x.\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "Haetaan osoitteesta %s tietoja levylle %02x.\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"Vastine löydetty \"%s / %s\"\n" +"Ladataan tietoja...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "Valmis\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "Virhe levyn tietoja tallennettaessa\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "Ei vastinetta\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +msgid "Length" +msgstr "Pituus" + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "Raidat" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "Raita" + +#: src/cdplay.c:633 src/discedit.c:390 +#, fuzzy +msgid "Error saving disc data." +msgstr "Virhe levyn tietoja tallennettaessa" + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "Kierrätä soittotapaa" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "Aseta soittolistan toisto" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "Kopiointitila" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "Soita raita / Keskeytä soitto" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "Kelaa taaksepäin" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "Kelaa eteenpäin" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "Edelliseen raitaan" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "Seuraavaan raitaan" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "Vaihda soittotavan asetuksia" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "Seuraava levy" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "Pysäytä soitto" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "Poista levy asemasta" + +#: src/cdplay.c:962 +msgid "Scan Disc Contents" +msgstr "Lue levyn sisältö" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "Vaihda äänenvoimakkuussäädintä" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "Vaihda levyn tietoja" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "Käynnistä tai lopeta DiscDB-haku" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "Vaihda raitojen näyttöä" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Poistu Gripistä" + +#: src/cdplay.c:1173 +#, fuzzy +msgid "Cannot fast forward while ripping." +msgstr "Kopioitaessa ei voi kelata eteenpäin" + +#: src/cdplay.c:1204 +#, fuzzy +msgid "Cannot rewind while ripping." +msgstr "Kopioitaessa ei voi kelata taaksepäin" + +#: src/cdplay.c:1235 +#, fuzzy +msgid "Cannot switch discs while ripping." +msgstr "Kopioitaessa ei voi vaihtaa levyä" + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "Poista levy asemasta\n" + +#: src/cdplay.c:1257 +#, fuzzy +msgid "Cannot eject while ripping." +msgstr "Kopioitaessa ei voi poistaa levyä asemasta" + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "Ota levy -- poistetaan asemasta\n" + +#: src/cdplay.c:1334 +#, fuzzy +msgid "Cannot play while ripping." +msgstr "Kopioitaessa ei voida soittaa" + +#: src/cdplay.c:1402 src/cdplay.c:1433 +#, fuzzy +msgid "Cannot switch tracks while ripping." +msgstr "Kopioitaessa ei voida vaihtaa raitoja" + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "Luetaan uutta levyä\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "CDStat löysi levyn, luetaan raitoja\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "Levy on toimiva!\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "Ei epätyhjiä raitoja\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "CDStat ei huomannut levyä\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "Nykyinen sektori: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "Ei levyä" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"Levy löytyi toissijaiselta muttei ensisijaiselta\n" +"palvelimelta.\n" +"\n" +"Lähetetäänkö levyn tiedot?" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +#, fuzzy +msgid "Error: Unable to create temporary file." +msgstr "Virhe: Väliaikaistiedoston luonti ei onnistu" + +#: src/cdplay.c:1947 +#, fuzzy +msgid "Error: Unable to write disc data." +msgstr "Virhe: Levyn tietoja ei voitu kirjoittaa" + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "Postitetaan tiedot osoitteeseen %s\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "Järjestelmäviesti" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "URI on %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "Haku on [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "Hakuvirhe %d %s\n" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "Luodaan hakemisto %s\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "Virhe: %s on olemassa mutta tiedostona\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "Virhe: kohdetta %s ei voitu avata kirjoittamista varten\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "Levyn nimi" + +# this is assumed to be longest string of dialog in source file ::) +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr " Raidan nimi " + +#: src/discedit.c:84 +msgid "W" +msgstr "W" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "Levyn artisti" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "ID3-tyylilaji" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "Levyn vuosi" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "Raidan artisti" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "Jaa:" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "Raita/Artisti" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "Artisti/Raita" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "Jakomerkit" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "Monta artistia" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "Tallenna levyn tiedot" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "Lähetä levyn tiedot" + +#: src/discedit.c:393 +#, fuzzy +msgid "No disc present." +msgstr "Levyä ei ole saatavilla" + +#: src/discedit.c:543 +#, fuzzy +msgid "Cannot submit. No disc is present." +msgstr "" +"Ei voida lähettää tietoja\n" +"kun levyä ei ole" + +#: src/discedit.c:558 +#, fuzzy +msgid "You must enter a disc title." +msgstr "Levyn nimi on syötettävä" + +#: src/discedit.c:565 +#, fuzzy +msgid "You must enter a disc artist." +msgstr "Levyn artisti on syötettävä" + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" +"Olet lähettämässä levyn tiedot kaupalliselle palvelimelle,\n" +"joka sen jälkeen omistaa ne. Nämä palvelimet\n" +"keräävät rahaa tiedoillaan, joten sinun kannataisi\n" +"kyllä lähettää ne vapaalle palvelimelle pikemminkin.\n" +"\n" +"Jatketaanko?" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" +"Olet lähettämässä levyn tiedot\n" +"sähköpostilla.\n" +"\n" +"Jatketaanko?" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "Tyylilajivalinta" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"Lähetettäessä pitäisi valita joku muu tyylilaji kuin\n" +"'unknown', kokeilepa valita jotain tuosta alta" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "DiscDB-tyylilaji" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "Lähetä" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "Peruuta" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "tuntematon ID3-kenttä\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "Virhe: Tiedostonimeä ei voitu kääntää. Käyttäjää %s ei ole\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "Suoritus epäonnistui\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "Virhe: Virheellinen kentän tyyppi\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "Virhe: Väärä asetustiedosto\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "Kopioi ja koodaa" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "Kopioi ja koodaa valitut raidat" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "Kopioi ainoastaan" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "Kopioi valitut raidat koodaamatta" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "Peruuta kopiointi ja koodaus" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "Lopeta kaikki aktiiviset kopiointi- ja koodausprosessit" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "Keskeytä kopiointi ainoastaan" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "Lopeta kopiointiprosessi" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "DDJ-haku" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "Syötä levyn tiedot DigitalDJ-kantaan" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "Kopioi osittainen raita" + +# ei vaan mahdu +#: src/rip.c:166 +msgid "Play" +msgstr "Soi" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "Nykyinen sektori: 0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "Kopiointi: Jouten" + +#: src/rip.c:209 +msgid "Enc: Trk 99 (99.9x)" +msgstr "Koodaus: Raita 99 (99,9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +msgid "Enc: Idle" +msgstr "Koodaus: Jouten" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "Yhteensä:" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "Alkussektori" + +#: src/rip.c:332 +msgid "End sector" +msgstr "Loppusektori" + +#: src/rip.c:380 +#, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "Syötetänä raidan %d tiedot ddj-kantaan\n" + +#: src/rip.c:602 +#, fuzzy +msgid "Error: can't open m3u file." +msgstr "Virhe: m3u-tiedostoa ei voitu avata\n" + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "Komennossa KillRip\n" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "Nyt koodattavan kokonaiskoko: %d\n" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "Kopiointi: Raita %d (%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "Kopiointi: %6.2f%%" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "Kopiointi päättyi\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "Osittainen kopiointi %d, waveja %d\n" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "Seuraava raita %d/%d\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "Tarkastetaan josko uutta raitaa pitää kopioida\n" + +#: src/rip.c:955 +#, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "Koodaus: Raita %d (%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "Koodaus: %6.2f%%" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "Prosessori %d pääsi koodauksensa loppuun\n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "Poistetaan [%s]\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "Kopiointi loppui\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "EiArtistia" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "Nimetön" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" + +#: src/rip.c:1287 +#, fuzzy +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" +"Toimimaton koodauskomento\n" +"Tarkista koodausasetuksesi" + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"Ei raitoja valittuna\n" +"Kopioidaanko koko CD?\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "Kopioidaan koko CD\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "Komennossa RipNextTrack\n" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "Ensimmäinen tarkastettu raita on %d\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "Kopioidaan pois!\n" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "Ei kirjoitusoikeuksia wav-tiedostoon" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "Kopioidaan raita %d tiedostoon %s\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "Kopiointi: Raita %d (0,0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "Tiedosto %s on jo kopioitu, ohitamme... \n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "Tila loppui hakemistossa" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "Kutsutaan komentoa CDPRip\n" + +#: src/rip.c:1655 +#, c-format +msgid "Added track %d to %s list\n" +msgstr "Lisättiin raita %d listaan %s\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "Ei vapaita prosessoreja\n" + +#: src/rip.c:1697 +#, c-format +msgid "Enc track %d\n" +msgstr "Koodaataan raitaa %d\n" + +#: src/rip.c:1719 +#, fuzzy +msgid "No write access to write encoded file." +msgstr "Ei kirjoitusoikeutta koodattuun tiedostoon" + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "%i: Koodataan kohteeseen %s\n" + +#: src/rip.c:1734 +#, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "Koodaus: Raita %d (0,0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "Komennossa CalculateAll:\n" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "Emme kopioi nyt joten nollatkaamme koodausarvoja\n" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "Kopion kokonaiskoko: %d\n" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "Koodauksen kokonaiskoko: %d\n" + +#~ msgid "" +#~ "Invalid rip executable\n" +#~ "Check your rip config" +#~ msgstr "" +#~ "Toimimaton kopiointikomento\n" +#~ "Tarkista kopiointiasetuksesi" + +#~ msgid "Keep application minimum size" +#~ msgstr "Pidä sovellus minimikoossa" + +#~ msgid "Reply is [%s]\n" +#~ msgstr "Vastaus on [%s]\n" + +#~ msgid "Write tags in unicode" +#~ msgstr "Merkitse käyttäeen Unicode-koodausta" + +#~ msgid "File System Character set encoding" +#~ msgstr "Tiedostojärjestelmän merkistökoodaus" diff --git a/po/fr.gmo b/po/fr.gmo new file mode 100644 index 0000000..61faf27 Binary files /dev/null and b/po/fr.gmo differ diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..2276dd0 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,1226 @@ +# French translation file for grip +# Copyright (c) Éric Lassauge , 2002-2005 +# http://lassauge.free.fr/ +# +msgid "" +msgstr "" +"Project-Id-Version: grip 3.3.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2005-06-07 10:52+0200\n" +"Last-Translator: Éric Lassauge \n" +"Language-Team: french\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "Spécifier la geométrie de la fenêtre principale" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "GÉOMÉTRIE" + +#: src/main.c:65 +msgid "Specify the config file to use (in your home dir)" +msgstr "" +"Spécifier le fichier de configuration à utiliser (dans votre rép. perso)" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "CONFIGURATION" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "Spécifier le périphérique CDROM à utiliser" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "PÉRIPHÉRIQUE" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "Spécifier le périphérique générique SCSI à utiliser" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "Lancer en mode «small» (uniquement CD)" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "" +"Mode «local» -- pas de recherche des informations du disque sur le réseau" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "Ne pas faire de redirection d'E/S" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "Lancer en mode verbeux (debug)" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "Erreur : impossible d'initialiser [%s]\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" +"Ceci est une version de développement de Grip. Si vous rencontrez des " +"problèmes vous êtes encouragés à utiliser la dernière version stable." + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "Démarrage réussi de Grip\n" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"Travail en cours.\n" +"Voulez vous vraiment arrêter ?" + +#: src/grip.c:395 +msgid "Status" +msgstr "Etats" + +#: src/grip.c:410 +msgid "General" +msgstr "Général" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "Extraction" + +#: src/grip.c:440 src/gripcfg.c:496 +msgid "Encode" +msgstr "Codage" + +#: src/grip.c:485 +msgid "Help" +msgstr "Aide" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "Table des Matières" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "Lecture CDs" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "Extraction CDs" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "Configuration de Grip" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "FAQ" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "Plus d'aide" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "Signaler les erreurs" + +#: src/grip.c:546 +msgid "About" +msgstr "A propos de" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "Version %s" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "Créé par Grip" + +#: src/grip.c:922 +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"Erreur: votre fichier de configuration est trop vieux\n" +"Utilisation des valeurs par défaut\n" +"Re-configurez Grip.\n" +"Votre ancien fichier a été sauvé avec l'extension -old." + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "Le serveur est %s, port %d\n" + +#: src/grip.c:1016 +msgid "Error: Unable to save config file." +msgstr "Erreur : impossible de sauver le fichier de configuration." + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "Configuration" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "Périphérique CDROM" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "Ne pas interrompre la musique lors du démarrage ou de l'arrêt de Grip" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "Revenir au début lors de l'arrêt" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "Démarrer avec la première piste" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "Lecture automatique à l'insertion" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "Mélanger avant chaque lecture" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "Contourner les problèmes d'éjection erronnée" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "Interroger le lecteur pour un nouveau disque" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "Intervalle d'interrogation (secondes)" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "CD" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "Extracteur :" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "Programme d'extraction" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "Ligne de commande de l'extracteur" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "Inhiber le mode «paranoïa»" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "Inhiber le mode «extra paranoïa»" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "Inhiber la détection des rayures" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "Détection" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "Réparation" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "Calcul du gain d'ajustement" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "Format du fichier extrait" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "Périphérique SCSI générique" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "Extracteur" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "Valeur de 'nice' pour l'extraction" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "Nombre max de fichiers WAV non codés" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "Extraction automatique à l'insertion" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "Biper après l'extraction" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "Ejection automatique après l'extraction" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "Délai d'éjection automatique" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "Délai avant l'extraction" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "Retarder le codage après la fin de l'extraction du disque" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "Arrête le CDROM entre les pistes" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "Commande du filtre de fichier WAV" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "Commande du filtre pour le disque" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "Options" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "Codeur :" + +#: src/gripcfg.c:412 +msgid "Encoder executable" +msgstr "Programme de codage" + +#: src/gripcfg.c:417 +msgid "Encoder command-line" +msgstr "Ligne de commande du codeur" + +#: src/gripcfg.c:423 +msgid "Encode file extension" +msgstr "Extension du fichier codé" + +#: src/gripcfg.c:428 +msgid "Encode file format" +msgstr "Format du fichier codé" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "Codeur" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "Effacer les fichiers WAV après le codage" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "Insérer les informations dans la base de données SQL" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "Créer des fichiers M3U" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "Utiliser un chemin relatif dans les fichiers M3U" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "Format des fichiers M3U" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "Débit binaire du codage (kbits/sec)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "Nombre de processeurs à utiliser" + +#: src/gripcfg.c:477 +msgid "Encode 'nice' value" +msgstr "Valeur de 'nice' pour le codage" + +#: src/gripcfg.c:481 +msgid "Encode filter command" +msgstr "Commande du filtre pour le codage" + +#: src/gripcfg.c:505 +msgid "Add ID3 tags to encoded files" +msgstr "Ajouter les informations ID3 aux fichiers codés" + +#: src/gripcfg.c:511 +msgid "Add ID3v2 tags to encoded files" +msgstr "Ajouter les informations ID3v2 aux fichiers codés" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "N'ajouter les informations ID3 qu'aux fichiers de suffixe '.mp3'" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "Champ commentaire ID3" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "Codage du jeu de caractères ID3v1" + +#: src/gripcfg.c:532 +msgid "ID3v2 Character set encoding" +msgstr "Codage du jeu de caractères ID3v2" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "ID3" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "Serveur DB" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "Chemin du script CGI" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "Serveur primaire" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "Serveur secondaire" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "Mel pour la soumission DB" + +#: src/gripcfg.c:603 +msgid "DB Character set encoding" +msgstr "Codage du jeu de caractères DB" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "Utiliser les extensions freedb" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "Lancer la recherche de disque automatiquement" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "DiscDB" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "Utiliser un serveur proxy" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "Récupérer le serveur depuis la variable d'environnement 'http_proxy'" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "Serveur proxy" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "Port du proxy" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "Nom d'utilisateur du proxy" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "Mot de passe du proxy" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "Proxy" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "Adresse mel" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "Programme de mise à jour de CD" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "Ne pas passer les fichiers en minuscules" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "Autoriser les caractères 8 bits dans les noms de fichiers" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "Ne pas changer les espaces en blancs soulignés" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" +"Caractères à ne pas enlever\n" +"dans les noms de fichiers" + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "Montre l'icône dans la barre des tâches" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "Divers" + +#: src/gripcfg.c:819 +msgid "Error: Unable to save ripper config." +msgstr "Erreur : impossible de sauver la configuration de l'extracteur." + +#: src/gripcfg.c:890 +msgid "Error: Unable to save encoder config." +msgstr "Erreur : impossible de sauver la configuration du codeur." + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "L'état du périphérique vaut %d\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "" +"Le périphérique ne supporte pas la vérification de son état (CDS_NO_INFO " +"utilisé)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "Pas de disque\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "Erreur : impossible de lire le contenu du disque\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "Le périphérique ne supporte pas la vérification de son état\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "Impossible de débloquer: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "CDIOCEJECT" + +#: src/cdplay.c:83 +msgid "Cannot do lookup while ripping." +msgstr "Impossible de rechercher pendant l'extraction." + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "Disque inconnu" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "Piste %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "Recherche %s (via %s) pour le disque %02x.\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "Recherche %s pour le disque %02x.\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"Correspondance pour \"%s / %s\"\n" +"Téléchargement des données...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "Fait\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "Erreur à l'enregistrement des données du disque\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "Pas de correspondance\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +msgid "Length" +msgstr "Durée " + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "Pistes" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "Piste" + +#: src/cdplay.c:633 src/discedit.c:390 +msgid "Error saving disc data." +msgstr "Erreur à l'enregistrement des données du disque." + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "Changer le mode de lecture" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "Basculer la lecture en continu" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "Etat extraction" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "Joue la piste / Pause" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "Retour" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "Avance rapide" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "Aller à la piste précédente" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "Aller à la piste suivante" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "Changer les options de lecture" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "Disque suivant" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "Arrêter" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "Ejecter le disque" + +#: src/cdplay.c:962 +msgid "Scan Disc Contents" +msgstr "Analyse du disque" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "Basculer l'affichage du contrôle du volume" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "Basculer l'éditeur de disque" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "Démarrer/arrêter la recherche DiscDB" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "Basculer l'affichage des pistes" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Sortir de Grip" + +#: src/cdplay.c:1173 +msgid "Cannot fast forward while ripping." +msgstr "Avance rapide impossible pendant l'extraction." + +#: src/cdplay.c:1204 +msgid "Cannot rewind while ripping." +msgstr "Retour arrière impossible pendant l'extraction." + +#: src/cdplay.c:1235 +msgid "Cannot switch discs while ripping." +msgstr "Changement de disque impossible pendant l'extraction." + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "Ejection disque\n" + +#: src/cdplay.c:1257 +msgid "Cannot eject while ripping." +msgstr "Ejection impossible pendant l'extraction." + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "Disque présent -- éjection\n" + +#: src/cdplay.c:1334 +msgid "Cannot play while ripping." +msgstr "Lecture impossible pendant l'extraction." + +#: src/cdplay.c:1402 src/cdplay.c:1433 +msgid "Cannot switch tracks while ripping." +msgstr "Changement de piste impossible pendant l'extraction." + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "Vérification de la présence d'un nouveau disque\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "CDstat a trouvé un disque, vérification des pistes\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "Disque valide détecté !\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "Pas de piste de durée non-nulle\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "CDstat n'a pas trouvé de disque\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "Secteur courant: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "Pas de disque" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"Ce disque a été trouvé sur le serveur secondaire,\n" +"mais pas sur le serveur primaire.\n" +"Voulez-vous soumettre ces informations de disque ?" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +msgid "Error: Unable to create temporary file." +msgstr "Erreur : impossible de créer un fichier temporaire." + +#: src/cdplay.c:1947 +msgid "Error: Unable to write disc data." +msgstr "Erreur : impossible d'enregistrer les données du disque." + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "Envois de l'entrée à %s\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "Message système" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "l'URI est %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "La recherce est [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "Erreur %d lors du 'stat' de %s\n" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "Création du répertoire %s\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "Erreur : %s existe, mais c'est un fichier\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "Erreur : impossible d'ouvrir %s en écriture\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "Titre du disque" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "Nom de la piste" + +#: src/discedit.c:84 +msgid "W" +msgstr "E" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "Artiste" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "Genre ID3 :" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "Année" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "Artiste de la piste" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "Découpage :" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "Titre/Artiste" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "Artiste/Titre" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "Découper les caractères" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "Multi-artistes" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "Enregistrer les informations du disque" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "Soumettre les informations du disque" + +#: src/discedit.c:393 +msgid "No disc present." +msgstr "Pas de disque présent." + +#: src/discedit.c:543 +msgid "Cannot submit. No disc is present." +msgstr "Impossible de soumettre. Pas de disque présent." + +#: src/discedit.c:558 +msgid "You must enter a disc title." +msgstr "Donnez un titre au disque." + +#: src/discedit.c:565 +msgid "You must enter a disc artist." +msgstr "Donnez un artiste au disque." + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" +"Vous êtes sur le point de soumettre les informations de ce disque\n" +"à un serveur CDDB commercial, qui va ensuite être propriétaire de\n" +"celles-ci. Ces serveurs font du profit à partir de votre effort.\n" +"Nous vous suggérons plutot de soutenir les serveurs libres.\n" +"\n" +"Continuer ?" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" +"Vous êtes sur le point de soumettre les informations de ce disque\n" +"via email.\n" +"\n" +"Continuer ?" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "Sélection du genre" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"Soumettre des informations nécessite un genre différent\n" +"de 'inconnu'. Choisissez un genre DiscDB ci-dessous" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "Genre DiscDB" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "Soumettre" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "Annuler" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "Champ ID3 inconnu\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "" +"Erreur : impossible de changer le nom de fichier. Utilisateur %s inconnu\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "L'exécution a échoué\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "Erreur : type entrée eronné\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "Erreur : fichier de configuration invalide\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "Extraction + codage" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "Extraction et codage des pistes sélectionnées" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "Extraction seulement" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "Extraction sans coder les pistes sélectionnées" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "Annuler l'extraction et le codage" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "Tuer tous les processus d'extraction et de codage" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "Annuler seulement l'extraction" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "Tuer les processus d'extraction" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "Recherche DDJ" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "Insérer les informations du disque dans la base de données DigitalDJ" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "Extraction partielle de piste" + +#: src/rip.c:166 +msgid "Play" +msgstr "Jouer" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "Secteur courant : 0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "Extr : Repos" + +#: src/rip.c:209 +msgid "Enc: Trk 99 (99.9x)" +msgstr "Cod : Piste 99 (99.9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +msgid "Enc: Idle" +msgstr "Cod : Repos" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "Indicateurs généraux :" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "Secteur de début" + +#: src/rip.c:332 +msgid "End sector" +msgstr "Secteur de fin" + +#: src/rip.c:380 +#, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "Insertion de la piste %d dans la base de données SQL\n" + +#: src/rip.c:602 +msgid "Error: can't open m3u file." +msgstr "Erreur : impossible d'ouvrir le fichier M3U." + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "Dans ArrêtExtr\n" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "Taille totale codage en cours : %d\n" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "Extr : Piste %d (%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "Extr : %6.2f%%" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "Extraction terminée\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "Extraction partielle %d nombre de WAV %d\n" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "La piste suivante est la %d, le total est de %d\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "Cocher si vous avez besoin d'extraire une autre piste\n" + +#: src/rip.c:955 +#, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "Cod : Piste %d (%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "Cod : %6.2f%%" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "Codage terminé sur le CPU %d\n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "Destruction [%s]\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "Extraction terminée\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "SansArtiste" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "SansTitre" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" +"Pas de disque détecté dans le lecteur. Si vous avez un disque dans ce " +"lecteur, vérifiez la configuration du périphérique CDRom sous «Configuration-" +">CD»." + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" +"Programme d'extraction invalide.\n" +"Vérifier la configuration, et assurez vous de donnner le chemin complet vers " +"le programme d'extraction." + +#: src/rip.c:1287 +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" +"Programme de codage invalide.\n" +"Vérifier la configuration, et assurez vous de donnner le chemin complet vers " +"le programme de codage." + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"Pas de piste sélectionnée.\n" +"Extraction de tout le CD ?\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "Extraction de tout le CD\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "Dans ExtractionPisteSuivante\n" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "La première piste choisie est la %d\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "Extraction !\n" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "Pas d'accès en écriture au fichier WAV" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "Extraction piste %d vers %s\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "Extr : Piste %d (0.0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "Le fichier %s est déjà extrait. On passe au suivant...\n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "Plus d'espace disponible dans le répertoire destination" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "Appel à CDPRip\n" + +#: src/rip.c:1655 +#, c-format +msgid "Added track %d to %s list\n" +msgstr "Ajout de la piste %d dans la liste %s\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "Pas de CPU disponible\n" + +#: src/rip.c:1697 +#, c-format +msgid "Enc track %d\n" +msgstr "Cod piste %d\n" + +#: src/rip.c:1719 +msgid "No write access to write encoded file." +msgstr "Pas d'accès en écriture au fichier codé." + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "%i : Codage vers %s\n" + +#: src/rip.c:1734 +#, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "Cod : Piste %d (0.0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "Dans CalculeTout\n" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "Pas d'extraction en cours, on met à zéro les valeurs de codage\n" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "Taille total extraction : %d\n" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "Taille totale codage : %d\n" diff --git a/po/grip-2.2.pot b/po/grip-2.2.pot new file mode 100644 index 0000000..488f0da --- /dev/null +++ b/po/grip-2.2.pot @@ -0,0 +1,1185 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "" + +#: src/main.c:65 +msgid "Specify the config file to use (in your home dir)" +msgstr "" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "" + +#: src/grip.c:181 +msgid "Grip" +msgstr "" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" + +#: src/grip.c:395 +msgid "Status" +msgstr "" + +#: src/grip.c:410 +msgid "General" +msgstr "" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "" + +#: src/grip.c:440 src/gripcfg.c:496 +msgid "Encode" +msgstr "" + +#: src/grip.c:485 +msgid "Help" +msgstr "" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "" + +#: src/grip.c:546 +msgid "About" +msgstr "" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "" + +#: src/grip.c:922 +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "" + +#: src/grip.c:1016 +msgid "Error: Unable to save config file." +msgstr "" + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "" + +#: src/gripcfg.c:412 +msgid "Encoder executable" +msgstr "" + +#: src/gripcfg.c:417 +msgid "Encoder command-line" +msgstr "" + +#: src/gripcfg.c:423 +msgid "Encode file extension" +msgstr "" + +#: src/gripcfg.c:428 +msgid "Encode file format" +msgstr "" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "" + +#: src/gripcfg.c:477 +msgid "Encode 'nice' value" +msgstr "" + +#: src/gripcfg.c:481 +msgid "Encode filter command" +msgstr "" + +#: src/gripcfg.c:505 +msgid "Add ID3 tags to encoded files" +msgstr "" + +#: src/gripcfg.c:511 +msgid "Add ID3v2 tags to encoded files" +msgstr "" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "" + +#: src/gripcfg.c:532 +msgid "ID3v2 Character set encoding" +msgstr "" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "" + +#: src/gripcfg.c:603 +msgid "DB Character set encoding" +msgstr "" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "" + +#: src/gripcfg.c:819 +msgid "Error: Unable to save ripper config." +msgstr "" + +#: src/gripcfg.c:890 +msgid "Error: Unable to save encoder config." +msgstr "" + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "" + +#: src/cdplay.c:83 +msgid "Cannot do lookup while ripping." +msgstr "" + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "" + +#: src/cdplay.c:242 src/cdplay.c:334 +msgid "Length" +msgstr "" + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "" + +#: src/cdplay.c:633 src/discedit.c:390 +msgid "Error saving disc data." +msgstr "" + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "" + +#: src/cdplay.c:962 +msgid "Scan Disc Contents" +msgstr "" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "" + +#: src/cdplay.c:1173 +msgid "Cannot fast forward while ripping." +msgstr "" + +#: src/cdplay.c:1204 +msgid "Cannot rewind while ripping." +msgstr "" + +#: src/cdplay.c:1235 +msgid "Cannot switch discs while ripping." +msgstr "" + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "" + +#: src/cdplay.c:1257 +msgid "Cannot eject while ripping." +msgstr "" + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "" + +#: src/cdplay.c:1334 +msgid "Cannot play while ripping." +msgstr "" + +#: src/cdplay.c:1402 src/cdplay.c:1433 +msgid "Cannot switch tracks while ripping." +msgstr "" + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +msgid "Error: Unable to create temporary file." +msgstr "" + +#: src/cdplay.c:1947 +msgid "Error: Unable to write disc data." +msgstr "" + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "" + +#: src/discedit.c:84 +msgid "W" +msgstr "" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "" + +#: src/discedit.c:393 +msgid "No disc present." +msgstr "" + +#: src/discedit.c:543 +msgid "Cannot submit. No disc is present." +msgstr "" + +#: src/discedit.c:558 +msgid "You must enter a disc title." +msgstr "" + +#: src/discedit.c:565 +msgid "You must enter a disc artist." +msgstr "" + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "" + +#: src/rip.c:166 +msgid "Play" +msgstr "" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "" + +#: src/rip.c:209 +msgid "Enc: Trk 99 (99.9x)" +msgstr "" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +msgid "Enc: Idle" +msgstr "" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "" + +#: src/rip.c:332 +msgid "End sector" +msgstr "" + +#: src/rip.c:380 +#, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "" + +#: src/rip.c:602 +msgid "Error: can't open m3u file." +msgstr "" + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "" + +#: src/rip.c:955 +#, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" + +#: src/rip.c:1287 +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "" + +#: src/rip.c:1655 +#, c-format +msgid "Added track %d to %s list\n" +msgstr "" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "" + +#: src/rip.c:1697 +#, c-format +msgid "Enc track %d\n" +msgstr "" + +#: src/rip.c:1719 +msgid "No write access to write encoded file." +msgstr "" + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "" + +#: src/rip.c:1734 +#, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "" diff --git a/po/hu.gmo b/po/hu.gmo new file mode 100644 index 0000000..502c2b9 Binary files /dev/null and b/po/hu.gmo differ diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..5ba5cb1 --- /dev/null +++ b/po/hu.po @@ -0,0 +1,1261 @@ +# translation of hu_HU.po to Hungarian +# translation of grip_hu_HU.po to Hungarian +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Ferenc Veres , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hu_HU\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2004-06-06 23:58+0200\n" +"Last-Translator: Ferenc Veres \n" +"Language-Team: Hungarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.3\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "A főablak geometriája" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "GEOMETRIA" + +#: src/main.c:65 +msgid "Specify the config file to use (in your home dir)" +msgstr "Beállításfájl (a sajátkönyvtárban)" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "BEÁLLÍTÁS" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "A használni kívánt CDROM eszköz" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "ESZKÖZ" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "A használni kívánt általnos SCSI eszköz" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "Indítás \"apró\" (csak CD) módban" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "\"Helyi\" mód -- nincs zenei információ-letöltés az internetről" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "Ne legyen I/O átirányítás" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "Futtatás bőbeszédű (hibakereső) módban" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "Hiba: A %s eszköz inicializáslása sikertelen\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"Feldolgozás folyamatban.\n" +"Biztos, hogy megállítja?" + +#: src/grip.c:395 +msgid "Status" +msgstr "Állapot" + +#: src/grip.c:410 +msgid "General" +msgstr "Általános" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "Beolvasás" + +#: src/grip.c:440 src/gripcfg.c:496 +msgid "Encode" +msgstr "Tömörítés" + +#: src/grip.c:485 +msgid "Help" +msgstr "Súgó" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "Tartalomjegyzék" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "CD lejátszás" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "CD tömörítés" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "A Grip beállítása" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "Gyakori Kérdések" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "További segítség" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "Hibák bejelentése" + +#: src/grip.c:546 +msgid "About" +msgstr "Névjegy" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "" + +#: src/grip.c:922 +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"A beállításfájl elavult -- alapbeállítások használata.\n" +"A Grip-et újbóli beállítása szükséges.\n" +"Az elavult beállításfájl \"-old\" hozzáadásával elmentve." + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "a kiszolgáló: %s, kapu: %d\n" + +#: src/grip.c:1016 +#, fuzzy +msgid "Error: Unable to save config file." +msgstr "Hiba: A beállításfájl mentése sikertelen" + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "Beállítások" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "CDROM eszköz" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "Lejátszás folytatása kilépéskor és indításkor" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "Visszatekerés megállításkor" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "Inditás az első sávval ha nincs lejátszás" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "Automatikus lejátszás CD behelyezésekor" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "Újrakeverés minden visszajátszás előtt" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "Hibás kidobás kikerülése" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "Meghajtó lekérdezése új lemezekért" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "Lekérzdezési időköz (másodperc)" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "CD" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "Beolvasó:" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "Beolvasó futtatható program" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "Beolvasás parancssora" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "Paranoia mód kikapcsolása" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "Extra paranoia mód kikapcsolása" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "Karcolás mód kikapcsolása" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "detektálás" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "javítás" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "Jelszint igazítás kiszámítása" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "Beolvasás fájlformátuma" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "Általános SCSI eszköz" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "Beolvasó" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "Beolvasás \"nice\" értéke" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "Tömörítetlen .WAV fájlok max. száma" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "Automatikus beolvasás lemez behelyezésekor" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "Csipogás a beolvasás befejezésekor" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "Lemez automatkis kidobása" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "Automatikus kidobás késleltetése" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "Beolvasás késleltetése" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "Tömörítés a beolvasás befejezése után" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "CDROM megállítása a sávok között" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "WAV szűrő parancs" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "Lemez szűrő parancs" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "Beállítások" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "Tömörítő:" + +#: src/gripcfg.c:412 +msgid "Encoder executable" +msgstr "Tömörítő futtatható program" + +#: src/gripcfg.c:417 +msgid "Encoder command-line" +msgstr "Tömörítés parancssora" + +#: src/gripcfg.c:423 +#, fuzzy +msgid "Encode file extension" +msgstr "Freedb kiterjesztések használata" + +#: src/gripcfg.c:428 +msgid "Encode file format" +msgstr "Tömörítés fájlformátuma" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "Tömörítő" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "WAV fájlok törlése tömörítés után" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "Tárolás SQL adatbázisban" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "M3U fájlok létrehozása" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "Relatív útvonalak az M3U fájlokban" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "M3U fájlformátum" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "Tömörítés mértéke (kbit/sec)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "Felhasznált processzorok" + +#: src/gripcfg.c:477 +msgid "Encode 'nice' value" +msgstr "Tömörítés \"nice\" értéke" + +#: src/gripcfg.c:481 +msgid "Encode filter command" +msgstr "Tömörítés szűrő parancs" + +#: src/gripcfg.c:505 +msgid "Add ID3 tags to encoded files" +msgstr "ID3 információk hozzáadása" + +#: src/gripcfg.c:511 +msgid "Add ID3v2 tags to encoded files" +msgstr "ID3v2 információk hozzáadása" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "Csak .MP3 fájlokhoz" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "ID megjegyzés mező" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "ID3v1 karakterkódolás" + +#: src/gripcfg.c:532 +#, fuzzy +msgid "ID3v2 Character set encoding" +msgstr "ID3v1 karakterkódolás" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "ID3" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "Adatbázis-kiszolgáló" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "CGI útvonal" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "Elsődleges kiszolgáló" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "Másodlagos kiszolgáló" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "Adatbázis hozzáadási e-mail" + +#: src/gripcfg.c:603 +msgid "DB Character set encoding" +msgstr "Adatbázis karakterkódolás" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "Freedb kiterjesztések használata" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "Automatikus lemezkeresés" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "DiscDB" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "Proxy kiszolgáló használata" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "Beállítás a 'http_proxy' környezeti változóból" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "Proxy kiszolgáló" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "Proxy kapu" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "Proxy felhasználónév" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "Proxy jelszó" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "Proxy" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "E-mail cím" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "CD frissítő program" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "Ne alakítsa kisbetűssé a fájlneveket" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "ASCII 128 feletti karakterek engedélyezése" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "Ne alakítsa a szóközöket aláhúzás karakterré" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" +"Fájlnevekből nem kivágandó\n" +"karakterek" + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "Egyéb" + +#: src/gripcfg.c:819 +#, fuzzy +msgid "Error: Unable to save ripper config." +msgstr "Hiba: A beállításfájl mentése sikertelen" + +#: src/gripcfg.c:890 +#, fuzzy +msgid "Error: Unable to save encoder config." +msgstr "Hiba: A beállításfájl mentése sikertelen" + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "Meghajtó állapotbájt: %d\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "" +"A meghajtó nem támogatja az állapotlekérdezést (CDS_NO_INFO feltételezése)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "Nincs lemez\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "Hiba: a lemez tartalmának beolvasásáa közben\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "A meghajtó nem támogatja az állapotlekérdezést\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "Kinyitás sikertelen: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "CDIOEJECT" + +#: src/cdplay.c:83 +#, fuzzy +msgid "Cannot do lookup while ripping." +msgstr "Beolvasás közben nem lehet lekérdezést végezni" + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "Ismeretlen lemez" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "Sáv %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "%s lekérdezés (%s szerveren keresztül) a %02x lemezhez.\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "%s lekérdezés a %02x lemezhez.\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"Egyezés: \"%s / %s\"\n" +"Adatok letöltése...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "Kész\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "Hiba a lemezadatok mentése közben\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "Nincs egyezés\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +#, fuzzy +msgid "Length" +msgstr "Hossz " + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "Sávok" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "Sáv" + +#: src/cdplay.c:633 src/discedit.c:390 +#, fuzzy +msgid "Error saving disc data." +msgstr "Hiba a lemezadatok mentése közben" + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "Lejátszási mód váltása" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "Ismétlés ki/be" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "Beolvasás állapota" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "Sáv lejátszása / Szünet" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "Visszatekerés" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "Gyors Előre" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "Előző sáv" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "Következő sáv" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "Lejátszási mód váltási lehetőségek" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "Követlező lemez" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "Megállítás" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "Lemez kidobása" + +#: src/cdplay.c:962 +msgid "Scan Disc Contents" +msgstr "Lemeztartalom vizsgálata" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "Hangerőszabályzó ki/be" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "Lemezszerkesztő ki/be" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "DiskDB lekérdezés indítás/megszakítás" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "Sávlista ki/be" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Kilépés" + +#: src/cdplay.c:1173 +#, fuzzy +msgid "Cannot fast forward while ripping." +msgstr "Beolvasás közben nem lehet léptetni" + +#: src/cdplay.c:1204 +#, fuzzy +msgid "Cannot rewind while ripping." +msgstr "Beolvasás közben nem lehet léptetni" + +#: src/cdplay.c:1235 +#, fuzzy +msgid "Cannot switch discs while ripping." +msgstr "Beolvasás közben nem lehet lemezt váltani" + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "Lemezkidobás\n" + +#: src/cdplay.c:1257 +#, fuzzy +msgid "Cannot eject while ripping." +msgstr "Beolvasás közben nem lehet lemezt kidobni" + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "Van lemez -- kidobás\n" + +#: src/cdplay.c:1334 +#, fuzzy +msgid "Cannot play while ripping." +msgstr "Beolvasás közben nem lehet lejátszani" + +#: src/cdplay.c:1402 src/cdplay.c:1433 +#, fuzzy +msgid "Cannot switch tracks while ripping." +msgstr "Beolvasás közben nem lehet sávot váltani" + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "Új lemez keresése\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "CDStat új lemezt talált, sávok vizsgálata\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "Van lemez a meghajtóban!\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "Nem nemnulla hosszúságú sávok MIVAN\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "CDStat nem érzékel lemezt\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "Aktuális szektor: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "Nincs lemez" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"A lemezinformációk megtalálhatók a másodlagos szerveren,\n" +"de nincsenek meg az elsődlegesen.\n" +"\n" +"Kívánja beküldeni a lemezinformációkat?" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +#, fuzzy +msgid "Error: Unable to create temporary file." +msgstr "Hiba: Átmeneti fájl létrehozása sikertelen" + +#: src/cdplay.c:1947 +#, fuzzy +msgid "Error: Unable to write disc data." +msgstr "Hiba: Lemezadatok írása sikertelen" + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "Bejegyzés elküldés: %s\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "Rendszerüzenet" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "URI: %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "Lekérdezés: [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "%d lekérdezési hiba: %s\n" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "Könyvtár létrehozása: %s\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "Hiba: %s létezik, de fájl\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "Hiba: %s megnyitása írásra sikertelen\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "Lemez címe" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "Sáv címe" + +#: src/discedit.c:84 +msgid "W" +msgstr "W" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "Előadó" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "ID3 stílus:" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "Kiadási év" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "Sáv előadója" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "Darabolás:" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "Cím/Szerző" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "Szerző/Cím" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "Daraboló karakterek" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "Többszerzős" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "Mentés" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "Beküldés" + +#: src/discedit.c:393 +#, fuzzy +msgid "No disc present." +msgstr "Nincs lemez" + +#: src/discedit.c:543 +#, fuzzy +msgid "Cannot submit. No disc is present." +msgstr "" +"Sikertelen beküldés\n" +"Nincs lemez a meghajtóban" + +#: src/discedit.c:558 +#, fuzzy +msgid "You must enter a disc title." +msgstr "A lemez cím megadása kötelező" + +#: src/discedit.c:565 +#, fuzzy +msgid "You must enter a disc artist." +msgstr "Az előadó megadása kötelező" + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" +"Az lemezinformációk beküldésére készül\n" +"egy üzleti CDDB szerverre, amely ezután az\n" +"adatok felett rendelkezhet. Az üzemeltető a beküldött\n" +"adatokból anyagi hasznot nyer. Javasoljuk, hogy inkább egy szabad szerverre " +"küldje be az adatokat.\n" +"\n" +"Folytatás?" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" +"A lemezinformációkat e-mailben\n" +"fogja továbbítani.\n" +"\n" +"Folytatás?" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "Stílus választás" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"A beküldéshez egy az 'ismeretlen'-től eltérő stílus\n" +"kiválasztása szükséges, az alábbi listából" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "DiscDB stílus" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "Beküldés" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "Mégsem" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "ismeretlen ID3 mező\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "Hiba: fájlnév átalakítása sikertelen. Ismeretlen felhasználó: %s\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "Futtatás sikertelen\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "Hiba: Hibás bejegyzés típus\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "Hiba: Hibás beállításfájl\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "Beolvasás+Tömörítés" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "A kiválasztott sávok beolvasása és tömörítése" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "Csak beolvasás" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "A kiválasztott sávok beolvasása, nincs tömörítés" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "Megszakítás" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "Minden aktuális olvasási és tömörítési folyamat megszakítása" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "Beolvasás megszakítása" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "A beolvasó folyamat megszakítása" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "DDJ Lekérdezés" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "Lemezinformációk hozzáadása a DigitalDJ adatbázishoz" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "Sávtöredék beolvasása" + +#: src/rip.c:166 +msgid "Play" +msgstr "Lejátszás" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "Aktuális szektor: 0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "Olvasás: Vár" + +#: src/rip.c:209 +msgid "Enc: Trk 99 (99.9x)" +msgstr "Tömörítés: Sáv 99 (99.9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +msgid "Enc: Idle" +msgstr "Tömörítés: Vár" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "Teljes feldolgozás:" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "Kezdeti szektor" + +#: src/rip.c:332 +msgid "End sector" +msgstr "Végső szektor" + +#: src/rip.c:380 +#, fuzzy, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "Tárolás SQL adatbázisban" + +#: src/rip.c:602 +#, fuzzy +msgid "Error: can't open m3u file." +msgstr "Hiba: m3u fájl megnyitása sikertelen\n" + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "A KillRip-ben\n" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "Új teljes tömörítési méret: %d\n" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "Olvasás: Sáv %d (%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "Olvasás: %6.2f%%" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "Olvasás befejeződött\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "Részlet olvasása %d wavok száma %d\n" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "Következő sáv: %d, összes: %d\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "Következő sáv olvasás szükéségességének ellenőrzése\n" + +#: src/rip.c:955 +#, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "Tömörít: Sáv %d (%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "Tömörít: %6.2f%%" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "A %d. CPU-n a tömörítés befejezve\n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "Törlés: [%s]\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "Beolvasás befejezve\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "NincsSzerző" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "NincsCím" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" + +#: src/rip.c:1287 +#, fuzzy +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" +"Érvénytelen tömörítő program\n" +"Ellenőrizze a beállításokat" + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"Nincsnek sávok kiválasztva.\n" +"Teljes CD beolvasása?\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "Teljes CD beolvasása\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "RipNextTrack-ban\n" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "Első bejelölt sáv: %d\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "Beolvasás!\n" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "Nincs írásjog a wav fájl mentéséhez" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "Sáv olvasás: %d: %s\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "Olvasás: Sáv %d (0.0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "A %s fájl már előzőleg beolvasva. Kihagyás...\n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "Elfogyott a lemezterület a célkönyvtárban" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "CDPRip hívása\n" + +#: src/rip.c:1655 +#, c-format +msgid "Added track %d to %s list\n" +msgstr "A %d sáv hozzáadva a %s listához\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "Nincs szabad CPU\n" + +#: src/rip.c:1697 +#, c-format +msgid "Enc track %d\n" +msgstr "Tömörített sáv: %d\n" + +#: src/rip.c:1719 +#, fuzzy +msgid "No write access to write encoded file." +msgstr "Nincs írásjog a tömörített fájl mentéséhez" + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "%i: Tömörítés: %s\n" + +#: src/rip.c:1734 +#, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "Tömörít: Sáv %d (0.0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "CalculateAll-ban\n" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "Jelenleg nincs olvasás, tömörítési értékek nullázása\n" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "Teljes olvasási méret: %d\n" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "Teljes tömörített méret: %d\n" + +#~ msgid "Write tags in unicode" +#~ msgstr "Unicode formátumban" + +#~ msgid "File System Character set encoding" +#~ msgstr "Fájlrendszer karakterkódolás" + +#~ msgid "Keep application minimum size" +#~ msgstr "Minimális memóriahasználat" + +#~ msgid "Reply is [%s]\n" +#~ msgstr "Válasz: [%s]\n" + +#~ msgid "" +#~ "Invalid rip executable\n" +#~ "Check your rip config" +#~ msgstr "" +#~ "Érvénytelen beolvasó program\n" +#~ "Ellenőrizze a beállításokat" diff --git a/po/it.gmo b/po/it.gmo new file mode 100644 index 0000000..fcf9b15 Binary files /dev/null and b/po/it.gmo differ diff --git a/po/it.po b/po/it.po new file mode 100644 index 0000000..892bcac --- /dev/null +++ b/po/it.po @@ -0,0 +1,1235 @@ +# translation of it.po to Italiano +# translation of grip_it.po to Italiano +# This file is distributed under the same license as the PACKAGE package. +# Kostantino , 2005. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Kostantino , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: it\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2005-03-02 10:02+0100\n" +"Last-Translator: Kostantino \n" +"Language-Team: Italiano \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.9.1\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "Specifica la geometria della finestra principale" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "GEOMETRIA" + +#: src/main.c:65 +msgid "Specify the config file to use (in your home dir)" +msgstr "Specifica il file di configurazione da usare (nella tua cartella home)" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "CONFIGURAZIONE" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "Specifica il dispositivo cdrom da usare" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "DISPOSITIVO" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "Specifica il dispositivo scsi generico da usare" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "Lancia in modalità \"ridotto\" (solo cd)" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "" +"Modalità \"locale\" -- non cercare su internet le informazioni sul disco" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "Non fare la ridirezione I/O" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "Avvia in modo prolisso (correzione)" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "Errore: non è possibile inizializzare [%s]\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" +"Questa è una versione di sviluppo di Grip. Sei incoraggiato a ritornare " +"all'ultima più stabile versione se incontri dei problemi." + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "Grip è stato avviato con successo!\n" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"Sto svolgendo il lavoro richiesto!\n" +"Vuoi davvero chiudere tutto?" + +#: src/grip.c:395 +msgid "Status" +msgstr "Status" + +#: src/grip.c:410 +msgid "General" +msgstr "Generale" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "Estrazione" + +#: src/grip.c:440 src/gripcfg.c:496 +msgid "Encode" +msgstr "Codifica" + +#: src/grip.c:485 +msgid "Help" +msgstr "Aiuto" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "Indice generale" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "Riproduzione del CD" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "Estrazione del CD" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "Configura Grip" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "FAQ" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "Ottieni più aiuto" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "Riporta gli errori" + +#: src/grip.c:546 +msgid "About" +msgstr "Riguardo" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "Versione %s" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "Creato con Grip" + +#: src/grip.c:922 +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"Il tuo file di configurazione è scaduto: sono stati ristabiliti i valori " +"predefiniti.\n" +"Avrai bisogno di configurare Grip di nuovo.\n" +"Il tuo vecchio file di configurazione è stato salvato con l'estensione 'old'." + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "Il server è %s, la porta è %d\n" + +#: src/grip.c:1016 +msgid "Error: Unable to save config file." +msgstr "Errore: non è possibile salvare il file di configurazione." + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "Configurazione" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "Dispositivo CDRom" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "Non interrompere la riproduzione in uscita o all'avvio" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "Riavvolgi se fermato" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "Parti con la prima traccia se non in riproduzione" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "Riproduci automaticamente a disco inserito" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "Rimescola prima di ogni riproduzione" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "Intervieni sull'espulsione fallita" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "Controlla il dispositivo per un nuovo disco" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "Intervallo di controllo (secondi)" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "CD" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "Estrattore:" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "Eseguibile dell'estrattore" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "Linea di comando per estrarre" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "Disabilita Paranoia" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "Disabilita le opzioni extra di Paranoia" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "Disabilita scratch" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "rilevamento" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "riparazione" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "Calcola l'aggiustamento di guadagno" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "Estrai il formato del file" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "Dispositivo SCSI generico" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "Estrattore" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "Valore 'simpatico' dell'estrattore" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "Numero massimo di file .wav non codificati" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "Estrai automaticamente all'inserimento" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "Beep dopo aver estratto" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "Auto espulsione dopo aver estratto" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "Ritarda l'auto espulsione" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "Ritarda prima di estrarre" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "Ritarda la codifica finché il disco non è stato estratto" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "Ferma il dispositivo cdrom tra le tracce" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "Comando del filtro wav" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "Comando del filtro disco" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "Opzioni" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "Codificatore:" + +#: src/gripcfg.c:412 +msgid "Encoder executable" +msgstr "Eseguibile del codificatore" + +#: src/gripcfg.c:417 +msgid "Encoder command-line" +msgstr "Linea di comando del codificatore" + +#: src/gripcfg.c:423 +msgid "Encode file extension" +msgstr "Codifica l'estensione del file" + +#: src/gripcfg.c:428 +msgid "Encode file format" +msgstr "Codifica il formato del file" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "Codificatore" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "Cancella i file .wav dopo la codifica" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "Inserisci le informazione nell'archivio SQL" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "Crea i file .m3u" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "Usa i percorsi relativi nei files .m3u" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "Formato dei file M3U" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "Velocità di codifica (kbits/sec)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "Numero di CPU da usare" + +#: src/gripcfg.c:477 +msgid "Encode 'nice' value" +msgstr "Valore 'simpatico' del codificatore" + +#: src/gripcfg.c:481 +msgid "Encode filter command" +msgstr "Comando per il filtro del codificatore" + +#: src/gripcfg.c:505 +msgid "Add ID3 tags to encoded files" +msgstr "Aggiungi gli identificativi ID3 ai files codificati" + +#: src/gripcfg.c:511 +msgid "Add ID3v2 tags to encoded files" +msgstr "Aggiungi gli identificativi ID3v2 ai file codificati" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "Identificativo solo per i file terminanti in '.mp3'" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "Campo del commento ID3" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "Codifica dei caratteri ID3v1" + +#: src/gripcfg.c:532 +msgid "ID3v2 Character set encoding" +msgstr "Codifica dei caratteri ID3v2" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "ID3" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "Server DB" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "Percorso CGI" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "Server primario" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "Server secondario" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "Invia posta elettronica a DB Submit" + +#: src/gripcfg.c:603 +msgid "DB Character set encoding" +msgstr "Codifica dei caratteri DB" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "Usa le estensioni freedb" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "Esegui automaticamente le ricerche sul disco" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "DiscDB" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "Usa un server proxy" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "Individua il server dalla variabile d'ambiente 'http_proxy'" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "Server proxy" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "Porta proxy" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "Nome dell'utente per il proxy" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "Parola d'ordine per il proxy" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "Proxy" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "Indirizzo di posta elettronica" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "Programma di aggiornamento del CD" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "Non cambiare in minuscolo i nomi dei file" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "Abilita il bit alto nei nomi dei file" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "Non cambiare gli spazi in trattini" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" +"Caratteri da non ridurre\n" +"nei nomi di file" + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "Mostra l'icona del cassetto" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "Varie" + +#: src/gripcfg.c:819 +msgid "Error: Unable to save ripper config." +msgstr "" +"Errore: non è possibile salvare il file di configurazione dell'estrattore." + +#: src/gripcfg.c:890 +msgid "Error: Unable to save encoder config." +msgstr "" +"Errore: non è possibile salvare il file di configurazione del codificatore." + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "Lo stato del dispositivo è %d\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "" +"Il dispositivo non è abilitato al controllo sul \n" +"suo stato (assumi CDS_NO_INFO)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "Nessun disco\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "Errore: non riesco a leggere i contenuti del disco\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "Il dispositivo non è abilitato al controllo del suo stato\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "Lo sbloccaggio è fallito: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "CDIOCEJECT" + +#: src/cdplay.c:83 +msgid "Cannot do lookup while ripping." +msgstr "Non posso compiere alcuna ricerca durante un'estrazione." + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "Il disco è sconosciuto" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "Traccia %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "Ricerca %s (su %s) per il disco %02x.\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "Ricerca %s per il disco %02x.\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"E' stato trovato un riscontro per \"%s / %s\"\n" +"Sto scaricando i dati...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "Fatto\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "Si è verificato un errore salvando i dati del disco\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "Non è stato trovato alcun riscontro\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +msgid "Length" +msgstr "Lunghezza" + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "Tracce" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "Traccia" + +#: src/cdplay.c:633 src/discedit.c:390 +msgid "Error saving disc data." +msgstr "Si è verificato un errore mentre salvavo i dati del disco." + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "Modalità di esecuzione ciclica" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "Avvia/Ferma l'esecuzione ciclica" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "Stato dell'estrazione" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "Riproduci traccia / Pausa riproduzione" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "Riavvolgi" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "Avanti veloce" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "Vai alla traccia precedente" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "Vai alla traccia successiva" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "Mostra/Nascondi le opzioni in riproduzione" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "Prossimo disco" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "Ferma l'esecuzione" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "Espelli il disco" + +#: src/cdplay.c:962 +msgid "Scan Disc Contents" +msgstr "Esamina i contenuti del disco" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "Mostra/Nascondi il controllo del volume" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "Mostra/Nascondi l'editor del disco" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "Inizia/termina la ricerca DiscoDB" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "Mostra/Nascondi la visualizzazione delle tracce" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Esci da Grip" + +#: src/cdplay.c:1173 +msgid "Cannot fast forward while ripping." +msgstr "Con posso fare l'avanzamento veloce durante un'estrazione." + +#: src/cdplay.c:1204 +msgid "Cannot rewind while ripping." +msgstr "Non posso riavvolgere durante un'estrazione." + +#: src/cdplay.c:1235 +msgid "Cannot switch discs while ripping." +msgstr "Non posso cambiare dischi durante un'estrazione." + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "Espelli il disco\n" + +#: src/cdplay.c:1257 +msgid "Cannot eject while ripping." +msgstr "Non posso espellere alcun disco durante un'estrazione." + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "Ecco il disco... in espulsione\n" + +#: src/cdplay.c:1334 +msgid "Cannot play while ripping." +msgstr "Non posso riprodurre nulla durante un'estrazione." + +#: src/cdplay.c:1402 src/cdplay.c:1433 +msgid "Cannot switch tracks while ripping." +msgstr "Non posso cambiare traccia durante un'estrazione." + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "Controllo per un nuovo disco\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "StatusCD ha trovato un disco, controllo le tracce\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "Abbiamo un disco valido!\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "Nessuna traccia di lunghezza zero\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "StatusCD dice che non c'è alcun disco\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "Settore corrente: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "Nessun disco" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"Questo disco è stato trovato nel tuo server secondario,\n" +"ma non nel tuo server primario.\n" +"\n" +"Vuoi davvero inviare questa informazione riguardo il disco?" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +msgid "Error: Unable to create temporary file." +msgstr "Errore: non è possibile creare alcun file temporaneo." + +#: src/cdplay.c:1947 +msgid "Error: Unable to write disc data." +msgstr "Errore: non è possibile scrivere i dati del disco." + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "Notifica l'immissione a %s\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "Messaggio di sistema" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "URI è %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "La domanda è [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "Errore di stato %d su %s\n" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "Sto creando la cartella %s\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "Errore: %s esiste, ma è un file\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "Errore: non è possibile aprire %s in scrittura\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "Titolo del disco" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "Titolo della traccia" + +#: src/discedit.c:84 +msgid "W" +msgstr "W" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "Artista del disco" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "Genere ID3:" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "Anno del disco" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "Artista della traccia" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "Dividi:" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "Titolo/Artista" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "Artista/Titolo" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "Dividi i caratteri" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "Multiartista" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "Salva le informazioni del disco" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "Invia le informazioni del disco" + +#: src/discedit.c:393 +msgid "No disc present." +msgstr "Non è presente alcun disco." + +#: src/discedit.c:543 +msgid "Cannot submit. No disc is present." +msgstr "Non posso inviare nulla! Non è presente alcun disco." + +#: src/discedit.c:558 +msgid "You must enter a disc title." +msgstr "Devi immettere il titolo di un disco." + +#: src/discedit.c:565 +msgid "You must enter a disc artist." +msgstr "Devi immettere un'artista. " + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" +"Stai per inviare l'informazione riguardo al disco\n" +"ad un server CDDB commerciale, che diverrà\n" +"proprietario dei dati che tu invii. Questi server traggono\n" +"un profitto dai tuoi sforzi. Ti suggeriamo invece di\n" +"appoggiare i server liberi.\n" +"\n" +"Continuo?" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" +"Stai per inviare le informazioni\n" +"riguardo al disco via posta elettronica.\n" +"\n" +"Continuo?" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "Selezione del genere" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"L'invio richiede un genere diverso da 'sconosciuto'\n" +"Per favore scegli un genere DiscoDB più sotto" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "Genere DiscDB" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "Invia" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "Cancella" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "Il campo ID3 è sconosciuto\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "" +"Errore: non posso tradurre il nome del file. \n" +"Nessun utente come %s\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "L'esecuzione è fallita\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "Errore: è stata immessa una voce errata\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "Errore: il file di configurazione non è valido\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "Estrai e codifica" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "Estrai e codifica le tracce selezionate" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "Estrai solamente" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "Estrai ma non codificare le tracce selezionate" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "Interrompi l'estrazione e la codifica" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "Termina tutti i processi attivi di estrazione e codifica" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "Interrompi l'estrazione soltanto" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "Interrompi il processo di estrazione" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "Scansione DDJ" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "Inserisci le informazione del disco nell'archivio DigitalDJ" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "Estrai una traccia parziale" + +#: src/rip.c:166 +msgid "Play" +msgstr "Riproduci" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "Settore Corrente: 0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "Estrazione: in attesa" + +#: src/rip.c:209 +msgid "Enc: Trk 99 (99.9x)" +msgstr "Codifica: Trc 99 (99.9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +msgid "Enc: Idle" +msgstr "Codifica: in attesa" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "Indicatori complessivi:" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "Inizio del settore" + +#: src/rip.c:332 +msgid "End sector" +msgstr "Fine del settore" + +#: src/rip.c:380 +#, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "Sto inserendo la traccia %d nell'archivio DDJ\n" + +#: src/rip.c:602 +msgid "Error: can't open m3u file." +msgstr "Errore: non posso aprire il file m3u." + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "In TerminaRip\n" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "La dimensione del totale codificato ora è: %d\n" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "Estrai: Trc %d (%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "Estrai: %6.2f%%" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "L'estrazione è terminata\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "Estrai parzialmente %d numero wav %d\n" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "La prossima traccia è %d, il totale è %d\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "Controlla se dobbiamo estrarre un'altra traccia\n" + +#: src/rip.c:955 +#, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "Codifica: Trc %d (%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "Codifica: %6.2f%%" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "E' stata terminata la codifica sulla cpu %d \n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "Sto ritardando [%s]\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "L'estrazione è terminata\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "Nessun artista" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "Nessun titolo" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" +"Non è stato rilevato alcun disco nel lettore. Per favore, controlla le " +"impostazioni del tuo lettore CDRom in Config->CD se è presente un disco nel " +"dispositivo." + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" +"L'eseguibile dell'estrattore non è valido.\n" +"Controlla la tua configurazione ed assicurati che specifichi il percorso " +"completo all'eseguibile dell'estrattore." + +#: src/rip.c:1287 +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" +"L'eseguibile del codificatore non è valido.\n" +"Controlla la tua configurazione ed assicurati che specifichi il percorso " +"completo all'eseguibile del codificatore." + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"Non è stata selezionata alcuna traccia.\n" +"Devo estrarre l'intero CD?\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "Estrarre l'intero CD\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "In EstraiProssimaTraccia\n" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "La prima traccia controllata è %d\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "L'estrazione è andata!\n" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "Nessun accesso in scrittura al file .wav" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "Sto estraendo la traccia %d su %s\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "Estrai: Trc %d (0.0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "File %s è già stato estratto. Lo salto...\n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "Non c'è più spazio nella cartella d'uscita" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "Sto richiamando CDPRip\n" + +#: src/rip.c:1655 +#, c-format +msgid "Added track %d to %s list\n" +msgstr "La traccia %d è stata aggiunta alla lista %s\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "Non è disponibile nessuna cpu\n" + +#: src/rip.c:1697 +#, c-format +msgid "Enc track %d\n" +msgstr "Codifica la traccia %d\n" + +#: src/rip.c:1719 +msgid "No write access to write encoded file." +msgstr "Non vi sono accessi in scrittura al file codificato." + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "%i: Codifica su %s\n" + +#: src/rip.c:1734 +#, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "Codifica: Trc %d (0.0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "In Calcola Tutto\n" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "" +"Non stiamo estraendo nulla adesso, così azzeriamo i valori di codifica\n" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "La dimensione del totale estratto è: %d\n" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "La dimensione del totale codificato è: %d\n" diff --git a/po/ja.gmo b/po/ja.gmo new file mode 100644 index 0000000..b681d76 Binary files /dev/null and b/po/ja.gmo differ diff --git a/po/ja.po b/po/ja.po new file mode 100644 index 0000000..abd6932 --- /dev/null +++ b/po/ja.po @@ -0,0 +1,1247 @@ +# grip ja.po. +# Copyright (C) 2000-2004 Free Software Foundation, Inc. +# TAKEDA Hirofumi , 2001. +# Takeshi Aihana , 2000-2004. +# , no-wrap +# +msgid "" +msgstr "" +"Project-Id-Version: grip 3.1.9\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2004-04-04 12:27+0900\n" +"Last-Translator: Takeshi AIHANA \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "メインウィンドウの位置を指定する" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "GEOMETRY" + +#: src/main.c:65 +msgid "Specify the config file to use (in your home dir)" +msgstr "使用する (${HOME}配下にある) 設定ファイルを指定する" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "CONFIG" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "使用する CD-ROM デバイスを指定する" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "DEVICE" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "使用する汎用 SCSI デバイスを指定する" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "\"スモール\" モード (CD-ROM のみ) で起動する" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "\"ローカル\" モード -- インターネットから曲情報を問い合わせない" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "入力/出力の切替を行わない" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "詳細モード (デバッグ用) モードで起動する" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "エラー: [%s] を初期化できません\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" +"この Grip は開発版です。もし何か問題が発生した場合は、最新の安定版にインス" +"トールし直すことを強くおすすめします。" + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"処理中です。\n" +"本当に終了しますか?" + +#: src/grip.c:395 +msgid "Status" +msgstr "ステータス" + +#: src/grip.c:410 +msgid "General" +msgstr "全般" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "切り出し" + +#: src/grip.c:440 src/gripcfg.c:496 +msgid "Encode" +msgstr "エンコーダ" + +#: src/grip.c:485 +msgid "Help" +msgstr "ヘルプ" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "目次" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "音楽 CD の演奏" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "音楽 CD の切り出し" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "Grip の設定" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "FAQ" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "詳細なヘルプ" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "バグの報告" + +#: src/grip.c:546 +msgid "About" +msgstr "情報" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "バージョン %s" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "Created by Grip" + +#: src/grip.c:922 +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"設定ファイルの有効期限が過ぎています -- デフォルトに戻します。\n" +"Grip を再設定する必要があります。\n" +"古い設定ファイルに '-old' を付けて保存しました。" + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "サーバ: %s ポート番号: %d\n" + +#: src/grip.c:1016 +#, fuzzy +msgid "Error: Unable to save config file." +msgstr "エラー: 設定ファイルを保存できません" + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "設定" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "CD-ROM デバイス" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "終了時/起動時に再生割り込みをしない" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "終了時に巻き戻す" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "再生しない時に最初のトラックから開始する" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "ディスク挿入時に自動的に演奏する" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "再生する度にシャッフルする" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "不良時に取り出す" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "ディスク・ドライブを定期的に確認する" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "確認する間隔 (秒)" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "CD" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "切り出しツール:" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "実行ファイル" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "オプション" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "Paranoia を使用しない" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "拡張 Paranoia を使用しない" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "Scratch を使用しない" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "検出する" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "修復する" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "ゲインの調整値を計算する" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "ファイルの書式" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "一般的な SCSI デバイス" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "切り出し" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "優先度 (nice 値)" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "エンコーディングしない最大ファイル数" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "挿入時に自動的に切り出す" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "完了したらビープ音を鳴らす" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "完了したら自動的に取り出す" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "自動取り出しまでの待機時間" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "切り出す前に遅延する" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "切り出しが完了するまでエンコーディングを遅らせる" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "次のトラックに移動する際に CD-ROM を停止する" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "フィルタコマンド(WAV)" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "フィルタコマンド(DISK)" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "オプション" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "エンコーダ:" + +#: src/gripcfg.c:412 +msgid "Encoder executable" +msgstr "実行型式" + +#: src/gripcfg.c:417 +msgid "Encoder command-line" +msgstr "コマンドライン引数" + +#: src/gripcfg.c:423 +msgid "Encode file extension" +msgstr "ファイルの拡張子" + +#: src/gripcfg.c:428 +msgid "Encode file format" +msgstr "ファイルの書式" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "エンコーダ" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "完了後に .wav ファイルを削除する" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "SQLデータベースに追加する" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr ".m3uファイルを作成する" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr ".m3uファイルの中に関係するディレクトリを使用する" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "m3u ファイル書式" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "ビットレート (Kビット/秒)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "使用する CPU の数" + +#: src/gripcfg.c:477 +msgid "Encode 'nice' value" +msgstr "優先度 (nice 値)" + +#: src/gripcfg.c:481 +msgid "Encode filter command" +msgstr "フィルタ・コマンド" + +#: src/gripcfg.c:505 +msgid "Add ID3 tags to encoded files" +msgstr "ID3 タグを追加する" + +#: src/gripcfg.c:511 +msgid "Add ID3v2 tags to encoded files" +msgstr "ID3v2 タグを追加する" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "拡張子が '.mp3' の場合にのみタグを付ける" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "ID3 コメント" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "ID3v1 の文字エンコーディング" + +#: src/gripcfg.c:532 +msgid "ID3v2 Character set encoding" +msgstr "ID3v2 の文字エンコーディング" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "ID3" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "DB サーバ" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "CGI のパス" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "プライマリ" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "セカンダリ" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "DB 確認メール" + +#: src/gripcfg.c:603 +msgid "DB Character set encoding" +msgstr "DB の文字エンコーディング" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "FreeDB を使用する" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "ディスク情報を自動的に取得する" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "DiscDB" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "プロキシサーバを使う" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "環境変数 $http_proxy からサーバを取得する" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "サーバ名" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "ポート番号" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "ユーザ名" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "パスワード" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "プロキシ" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "E-Mail アドレス" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "CD 更新プログラム" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "ファイル名の半角英字を小文字にしない" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "ファイル名に日本語 (EUC-JP) を使用する" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "空白をアンダースコア (_) に変換しない" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" +"ファイル名として\n" +"許可する半角記号" + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "その他" + +#: src/gripcfg.c:819 +#, fuzzy +msgid "Error: Unable to save ripper config." +msgstr "エラー: 切り出しの設定を保存できません" + +#: src/gripcfg.c:890 +#, fuzzy +msgid "Error: Unable to save encoder config." +msgstr "エラー: エンコーディングの設定を保存できません" + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "ドライブの状態は %d です\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "" +"ドライブは状態チェックをサポートしていません (CDE_NO_INFOと思われます)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "ディスクがありません\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "エラー: ディスクの目次の読み取りに失敗しました\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "ドライブはデバイスの状態チェックをサポートしていません\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "アンロックに失敗: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "CDIOCEJECT" + +#: src/cdplay.c:83 +#, fuzzy +msgid "Cannot do lookup while ripping." +msgstr "切り出し中に検索はできません" + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "不明なディスク" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "トラック %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "%s (%s を経由 : ディスク %02x) の問い合わせ中です\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "%s (DISC %02x) の問い合わせ中です\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"\"%s / %s\" が一致しました\n" +"データのダウンロード中...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "完了\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "ディスクのデータ保存中にエラー\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "一致しませんでした\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +msgid "Length" +msgstr "演奏時間" + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "トラック" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "トラック" + +#: src/cdplay.c:633 src/discedit.c:390 +#, fuzzy +msgid "Error saving disc data." +msgstr "ディスクデータの保存中にエラー" + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "再生モードの切り替え" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "ループ再生の切り替え" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "切り出し状況" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "トラックの再生/演奏を一時停止します" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "巻き戻します" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "早送りします" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "前のトラックにジャンプします" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "次のトラックにジャンプします" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "再生オプションを切り替えます" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "次のディスク" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "演奏を停止します" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "ディスクを取り出します" + +#: src/cdplay.c:962 +msgid "Scan Disc Contents" +msgstr "ディスクの内容をスキャンします" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "ボリューム・コントロールに切り替えます" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "ディスク・エディタに切り替えます" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "DiscDB 検索を開始したり停止します" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "トラック番号表示に切り替えます" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Grip を終了します" + +#: src/cdplay.c:1173 +#, fuzzy +msgid "Cannot fast forward while ripping." +msgstr "切り出し中に早送りはできません" + +#: src/cdplay.c:1204 +#, fuzzy +msgid "Cannot rewind while ripping." +msgstr "切り出し中に巻き戻しはできません" + +#: src/cdplay.c:1235 +#, fuzzy +msgid "Cannot switch discs while ripping." +msgstr "切り出し中にディスクの交換はできません" + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "ディスクを取り出して下さい\n" + +#: src/cdplay.c:1257 +#, fuzzy +msgid "Cannot eject while ripping." +msgstr "切り出し中に取り出せません" + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "ディスクがあります -- 取り出し中\n" + +#: src/cdplay.c:1334 +#, fuzzy +msgid "Cannot play while ripping." +msgstr "切り出し中に再生はできません" + +#: src/cdplay.c:1402 src/cdplay.c:1433 +#, fuzzy +msgid "Cannot switch tracks while ripping." +msgstr "切り出し中にトラックの交換はできません" + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "新しいディスクをチェックする\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "CDStat はディスクを見つけました。トラックをチェックします\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "おかしなディスクがあります!\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "長さが 0 でないトラックがありません\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "CDStat よりディスクが無いとの報告です\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "現在のセクタ: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "ディスクがありません" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"このディスクはプライマリサーバではなく、\n" +"セカンダリサーバから見つかりました。\n" +"\n" +"このディスク情報を送信しますか?" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +#, fuzzy +msgid "Error: Unable to create temporary file." +msgstr "エラー: 作業用ファイルが作成できません" + +#: src/cdplay.c:1947 +#, fuzzy +msgid "Error: Unable to write disc data." +msgstr "エラー: ディスクデータを書き込めません" + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "エントリ %s をメール中です\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "システム・メッセージ" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "URI = %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "[%s] で検索\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "%d (%s) の Stat エラー\n" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "ディレクトリ %s が作成されました\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "エラー: %s が存在していますが、これはファイルです\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "エラー: 書き込みモードで %s ファイルを開けません\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "タイトル" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "トラック名" + +#: src/discedit.c:84 +msgid "W" +msgstr "W" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "演奏者" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "ジャンル:" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "制作年" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "演奏者" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "分割:" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "タイトル/演奏者" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "演奏家/タイトル" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "分割文字" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "複数の演奏者" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "ディスク情報の保存" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "ディスク情報を送信" + +#: src/discedit.c:393 +#, fuzzy +msgid "No disc present." +msgstr "ディスクがありません" + +#: src/discedit.c:543 +#, fuzzy +msgid "Cannot submit. No disc is present." +msgstr "" +"送信できません\n" +"現在、ディスクはありません" + +#: src/discedit.c:558 +#, fuzzy +msgid "You must enter a disc title." +msgstr "このディスクのタイトルを入力して下さい" + +#: src/discedit.c:565 +#, fuzzy +msgid "You must enter a disc artist." +msgstr "このディスクの演奏者を入力して下さい" + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" +"商用の CDDB サーバにディスク情報を送信すると\n" +"それらのサーバに利益を与えることになります。\n" +"\n" +"その代わりにフリーな CDDB サーバを構築することを\n" +"お勧めします。\n" +"\n" +"続行しますか?" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" +"E-Mailを使ってこのディスク情報を\n" +"送信できます\n" +"\n" +"続行しますか?" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "ジャンルの選択" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"'不明' 以外のジャンルを指定して下さい\n" +"以下の DiscDB ジャンルを一つ選択して下さい" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "DiscDB ジャンル" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "送信" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "キャンセル" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "不明な ID3 フィールド\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "エラー: ファイル名を変換できません。 %s というユーザはありません\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "実行に失敗しました\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "エラー: エントリの種類が不正です\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "エラー: 設定ファイルが正しくありません\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "一括作成" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "選択したトラックの切り出しとエンコーディングの両方を実行します" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "切り出しのみ実行" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "選択したトラックの切り出しのみ実行します" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "一括作成の中止" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "切り出しとエンコーディングの両方の処理を強制終了します" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "切り出し処理の中止" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "切り出し処理のみ強制終了します" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "DDJ スキャンの実行" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "ディスク情報を DigitalDJ データベースに追加します" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "トラックの一部を切り出す" + +#: src/rip.c:166 +msgid "Play" +msgstr "再生" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "現在のセクタ: 0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "切り出し: 待機中" + +#: src/rip.c:209 +msgid "Enc: Trk 99 (99.9x)" +msgstr "エンコーディング: 99曲目 (99.9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +msgid "Enc: Idle" +msgstr "エンコーディング: 待機中" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "全トラックの進捗:" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "開始セクタ" + +#: src/rip.c:332 +msgid "End sector" +msgstr "終了セクタ" + +#: src/rip.c:380 +#, fuzzy, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "SQLデータベースに追加する" + +#: src/rip.c:602 +#, fuzzy +msgid "Error: can't open m3u file." +msgstr "エラー: m3u ファイルを開けません\n" + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "切り出しの停止中\n" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "現在のエンコーディング合計サイズ: %d\n" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "切り出し: %d曲目 (%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "切り出し: %6.2f%%" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "切り出し終了\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "%d 分割で %d個のwavに切り出し\n" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "次のトラックは %d 全部で %d です\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "他のトラックを切り出す必要があるか確認して下さい\n" + +#: src/rip.c:955 +#, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "エンコーディング: %d曲目 (%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "エンコーディング: %6.2f%%" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "CPU %d でのエンコーディングが終了しました\n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "[%s] を削除中です\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "切り出し終了\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "演奏者なし" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "タイトルなし" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" + +#: src/rip.c:1287 +#, fuzzy +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" +"エンコーダが正しくありません。\n" +"切り出しの設定を確認して下さい。" + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"トラックが指定されていません。\n" +"音楽 CD 全体を切り出しますか?\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "音楽 CD 全体の切り出し\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "次のトラックを切り出し中\n" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "最初にチェックしたトラックは %d です\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "切り出し中止!\n" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "WAV ファイルに対する書き込み権限がありません" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "トラック %d を %s に切り出し中\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "切り出し: %d曲目 (0.0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "ファイル %s は既に切り出し済みです。スキップします...\n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "出力するために必要な空き容量がありません" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "CDPRipを呼び出しています。\n" + +#: src/rip.c:1655 +#, c-format +msgid "Added track %d to %s list\n" +msgstr "%d トラックを %s リストに追加しました\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "CPUに空きがありません\n" + +#: src/rip.c:1697 +#, c-format +msgid "Enc track %d\n" +msgstr "エンコーディングのトラック %d\n" + +#: src/rip.c:1719 +#, fuzzy +msgid "No write access to write encoded file." +msgstr "エンコーディング・ファイルに対する書き込み権限がありません" + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "%i: %s へエンコーディング中\n" + +#: src/rip.c:1734 +#, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "エンコーディング: %d曲目 (0.0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "全て計算中\n" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "現在、切り出ししていないので、エンコーディング値を 0にして下さい\n" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "切り出しの合計サイズ: %d\n" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "エンコーディングの合計サイズ: %d\n" + +#~ msgid "" +#~ "Invalid rip executable\n" +#~ "Check your rip config" +#~ msgstr "" +#~ "切り出しツールが正しくありません。\n" +#~ "切り出しの設定を確認して下さい。" diff --git a/po/nl.gmo b/po/nl.gmo new file mode 100644 index 0000000..a684ebd Binary files /dev/null and b/po/nl.gmo differ diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..bace428 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,1251 @@ +# Dutch translation of PACKAGE. +# Copyright (C) 2004 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Sander Brabander , 2004. +# +# +msgid "" +msgstr "" +"Project-Id-Version: nl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2004-07-29 11:16+0200\n" +"Last-Translator: Sander Brabander \n" +"Language-Team: Dutch\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "Geef de afmetingen van het hoofdscherm op" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "AFMETINGEN" + +#: src/main.c:65 +msgid "Specify the config file to use (in your home dir)" +msgstr "Geef het configuratiebestand op dat u wilt gebruiken (in uw home map)" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "CONFIGURATIE" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "Geef het cdrom apparaat op dat u wilt gebuiken" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "APPARAAT" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "Geef het algemene scsi apparaat op dat u wilt gebruiken" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "Start in \"kleine\" (alleen cd) modus" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "\"Locale\" modus -- zoek geen schijf info op het internet op" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "Gebruik geen I/O omleiding" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "Draai in verbale (debug) modus" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "Fout: Niet in staat om [%s] te starten\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" +"Dit is een ontwikkelingsversie van Grip, als u problemen tegenkomt, word u " +"aangemoedigd om terug te vallen op de laatste stabiele versie." + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "Grip is succesvol gestart\n" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"Werk is in uitvoering.\n" +"Weet u zeker dat u wilt afsluiten?" + +#: src/grip.c:395 +msgid "Status" +msgstr "Status" + +#: src/grip.c:410 +msgid "General" +msgstr "Algemeen" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "Rippen" + +#: src/grip.c:440 src/gripcfg.c:496 +msgid "Encode" +msgstr "Coderen" + +#: src/grip.c:485 +msgid "Help" +msgstr "Help" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "Inhoudsopgave" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "CD's afspelen" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "CD's rippen" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "Grip configureren" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "FAQ" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "Meer hulp krijgen" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "Bugs rapporteren" + +#: src/grip.c:546 +msgid "About" +msgstr "Over" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "Versie %s" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "Gemaakt door Grip" + +#: src/grip.c:922 +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"Uw configuratie bestand is verouderd -- aan het terugzetten van de " +"standaardconfiguratie.\n" +"U zal Grip opnieuw moeten configureren.\n" +"Uw oude configuratie bestand is opgeslagen met -old eraan toegevoegd." + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "server is %s, poort %d\n" + +#: src/grip.c:1016 +#, fuzzy +msgid "Error: Unable to save config file." +msgstr "Fout: Niet in staat om het configuratie bestand op te slaan" + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "Configuratie" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "CDRom apparaat" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "Onderbreek het terugspelen niet bij afsluiten/opstarten" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "Spoel terug na het stoppen" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "Start met het eerste nummer als er niets speelt" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "Auto-afspelen bij invoegen van een CD" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "Zet opnieuw in willekeurige volgorde vóór elke keer terugspelen" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "Werk om onjuiste uitwerpingen heen" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "Controleer cdspeler op nieuwe CD" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "Controleer interval (seconden)" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "CD" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "Ripper:" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "Rip uitvoerbestand" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "Rip commandoregel" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "Schakel paranoia uit" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "Schakel extra paranoia uit" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "Schakel scratch uit" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "detectie" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "herstel" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "Bereken winst aanpassing" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "Rip bestandsformaat" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "Algemeen SCSI apparaat" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "Ripper" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "Rip 'nette' waarde" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "Max niet-gecodeerde .wav's" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "Auto-rippen bij invoegen" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "Piep na het rippen" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "Auto-uitwerpen na rippen" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "Auto-uitwerpen vertraging" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "Vertraging voor het rippen" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "Vertraag coderen totdat de schijf is geript" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "Stop cdrom speler tussen de nummers" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "Wavfilter commando" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "Schijf filter commando" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "Opties" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "Coderingsprogramma:" + +#: src/gripcfg.c:412 +msgid "Encoder executable" +msgstr "Codeer uitvoerbestand" + +#: src/gripcfg.c:417 +msgid "Encoder command-line" +msgstr "Codeer commandoregel" + +#: src/gripcfg.c:423 +msgid "Encode file extension" +msgstr "Codeer bestandsextensie" + +#: src/gripcfg.c:428 +msgid "Encode file format" +msgstr "Codeer bestandsformaat" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "Coderingsprogramma" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "Verwijder .wav na het coderen" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "Voeg info in SQL database" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "Maak .m3u bestanden" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "Gebruik relatieve paden in .m3u bestanden" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "M3U bestandsformaat" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "Coderings bitrate (kbit/sec)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "Aantal CPU's om te gebruiken" + +#: src/gripcfg.c:477 +msgid "Encode 'nice' value" +msgstr "Codeer 'nette' waarde" + +#: src/gripcfg.c:481 +msgid "Encode filter command" +msgstr "Codeer filter commando" + +#: src/gripcfg.c:505 +msgid "Add ID3 tags to encoded files" +msgstr "Voeg ID3 tags toe aan gecodeerde bestanden" + +#: src/gripcfg.c:511 +msgid "Add ID3v2 tags to encoded files" +msgstr "Voeg ID3v2 tags toe aan gecodeerde bestanden" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "Merk alleen bestanden die eindigen op '.mp3'" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "ID3 commentaar veld" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "ID3v1 tekenverzameling coderen" + +#: src/gripcfg.c:532 +msgid "ID3v2 Character set encoding" +msgstr "ID3v2 tekenverzameling coderen" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "ID3" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "DB server" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "CGI pad" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "Primaire server" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "Secundaire server" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "DB email verzenden" + +#: src/gripcfg.c:603 +msgid "DB Character set encoding" +msgstr "DB tekenverzameling coderen" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "Gebruik freedb extensie" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "Voer het opzoeken van schijf automatisch uit" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "SchijfDB" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "Gebruik proxy server" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "Haal server van 'http_proxy' env. var" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "Proxy server" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "Proxy poort" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "Proxy gebruikersnaam" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "Proxy paswoord" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "Proxy" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "Email adres" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "CD update programma" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "Gebruik geen bestandsnamen in kleine letters" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "Sta hoge bits in bestandsnamen toe" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "Verander spaties niet naar lage streepjes" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" +"Tekens om niet te strippen\n" +"in bestandsnamen" + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "Diversen" + +#: src/gripcfg.c:819 +#, fuzzy +msgid "Error: Unable to save ripper config." +msgstr "Fout: Niet in staat om ripper configuratie op te slaan" + +#: src/gripcfg.c:890 +#, fuzzy +msgid "Error: Unable to save encoder config." +msgstr "Fout: Niet in staat om coderingsconfiguratie op te slaan" + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "Station status is %d\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "" +"Station ondersteund het controleren van de schijf status niet (vermoed " +"CD'S_GEEN_INFO)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "Geen schijf\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "Fout: Mislukt om schijf inhoud te lezen\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "Station ondersteund het controleren van station status niet\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "Ontsluiten mislukt: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "CDIOCUITWERPEN" + +#: src/cdplay.c:83 +#, fuzzy +msgid "Cannot do lookup while ripping." +msgstr "Kan niet opzoeken tijdens het rippen" + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "Onbekende schijf" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "Nummer %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "Aan het opvragen van %s (door %s) voor schijf %02x.\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "Opvragen van %s voor schijf %02x.\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"Overeenkomst voor \"%s / %s\"\n" +"Gegevens aan het downloaden...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "Klaar\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "Fout bij het opslaan van schijf gegevens\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "Geen overeenkomst\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +msgid "Length" +msgstr "Lengte" + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "Nummers" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "Nummer" + +#: src/cdplay.c:633 src/discedit.c:390 +#, fuzzy +msgid "Error saving disc data." +msgstr "Fout tijdens het opslaan van schijfgegevens" + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "Roteer afspeel modus" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "Schakel lus afspelen" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "Rip status" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "Speel nummer af / Pauzeer afspelen" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "Terugspoelen" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "Snelvooruit" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "Ga naar vorige nummer" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "Ga naar laatste nummer" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "Schakel afspeelmodus opties" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "Volgende disk" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "Stop afspelen" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "Werp schijf uit" + +#: src/cdplay.c:962 +msgid "Scan Disc Contents" +msgstr "Scan schijfinhoud" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "Schakel volumeregelaar" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "Schakel schijfbewerker" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "Begin opzoeken in SchijfDB/ Breek opzoeken in SchijfDB af" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "Schakel nummervenster" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Sluit Grip af" + +#: src/cdplay.c:1173 +#, fuzzy +msgid "Cannot fast forward while ripping." +msgstr "Kan niet snel vooruitspoelen tijdens rippen" + +#: src/cdplay.c:1204 +#, fuzzy +msgid "Cannot rewind while ripping." +msgstr "Kan niet terugspoelen tijdens rippen" + +#: src/cdplay.c:1235 +#, fuzzy +msgid "Cannot switch discs while ripping." +msgstr "Kan geen schijven verwisselen tijdens rippen" + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "Werp schijf uit\n" + +#: src/cdplay.c:1257 +#, fuzzy +msgid "Cannot eject while ripping." +msgstr "Kan niet uitwerpen tijdens rippen" + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "Heb de schijf -- bezig met uitwerpen\n" + +#: src/cdplay.c:1334 +#, fuzzy +msgid "Cannot play while ripping." +msgstr "Kan niet afspelen tijdens rippen" + +#: src/cdplay.c:1402 src/cdplay.c:1433 +#, fuzzy +msgid "Cannot switch tracks while ripping." +msgstr "Kan geen nummers wisselen tijdens rippen" + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "Bezig met checken voor een nieuwe schijf\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "CDStat heeft een schijf gevonden, bezig met checken van nummers\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "We hebben een geldige schijf!\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "Geen nummers met een niet-nul lengte\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "CDStat gaf aan dat er geen schijf is\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "Huidige sector: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "Geen disk" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"De schijf is gevonden op uw secundaire server,\n" +"maar niet op uw primaire server.\n" +"\n" +"Wilt u deze schijf informatie verzenden ?" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +#, fuzzy +msgid "Error: Unable to create temporary file." +msgstr "Fout: Niet in staat om tijdelijk bestand te maken" + +#: src/cdplay.c:1947 +#, fuzzy +msgid "Error: Unable to write disc data." +msgstr "Fout: Niet in staat om schijf gegevens te schrijven" + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "Bezig het item te mailen naar %s\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "Systeemmelding" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "URI is %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "Verzoek is [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "Stat fout %d op %s\n" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "Bezig met het maken van map %s\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "Fout: %s bestaat, maar is een bestand\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "Fout: Niet in staat %s te openen om te schrijven\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "Schijftitel" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "Titel" + +#: src/discedit.c:84 +msgid "W" +msgstr "W" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "Schijfartiest" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "ID3 genre:" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "Schijfjaar" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "Artiest" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "Splits:" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "Titel/Artiest" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "Artiest/Titel" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "Splits tekens" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "Multi-artiest" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "Sla schijfinfo op" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "Verzend schijfinfo" + +#: src/discedit.c:393 +#, fuzzy +msgid "No disc present." +msgstr "Geen schijf aanwezig" + +#: src/discedit.c:543 +#, fuzzy +msgid "Cannot submit. No disc is present." +msgstr "" +"Kan niet verzenden\n" +"Geen schijf aanwezig" + +#: src/discedit.c:558 +#, fuzzy +msgid "You must enter a disc title." +msgstr "U moet een schijftitel invoeren" + +#: src/discedit.c:565 +#, fuzzy +msgid "You must enter a disc artist." +msgstr "U moet een schijfartiest invoeren" + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" +"U staat op het punt deze schijfinformatie te versturen\n" +"naar een commerciele CDDB server, die dan\n" +"de data die u verstuurt zal beheren. Deze servers maken\n" +"winst uit uw moeite. We raden aan dat u\n" +"daarvoor in de plaats gratis servers ondersteund.\n" +"\n" +"Doorgaan?" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" +"U staat op het punt deze schijf\n" +"informatie te versturen via email.\n" +"\n" +"Doorgaan?" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "Genre selectie" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"Verzending vraagt om een genre anders dan 'onbekend'\n" +"Selecteer alstublieft een SchijfDB genre hieronder" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "SchijfDB genre" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "Versturen" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "Annuleer" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "onbekend ID3 veld\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "" +"Fout: niet in staat om bestandsnaam te vertalen. Geen gebruiker als %s\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "Uitvoering mislukt\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "Fout: Onjuist invoer type\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "Fout: Ongeldig configuratiebestand\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "Rippen+Coderen" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "Rippen en geselecteerde nummers coderen" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "Alleen rippen" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "Rippen maar geselecteerde nummers niet coderen" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "Breek rippen en coderen af" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "Beëindig alle actieve rip en codeer processen" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "Breek alleen rippen af" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "Beëindig rip proces" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "DDJ Scan" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "Voeg schijfinformatie toe aan de DigitalDJ database" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "Rip gedeelte van nummer" + +#: src/rip.c:166 +msgid "Play" +msgstr "Afspelen" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "Huidige sector: 0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "Rip: Inactief" + +#: src/rip.c:209 +msgid "Enc: Trk 99 (99.9x)" +msgstr "Cod: Nr 99 (99.9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +msgid "Enc: Idle" +msgstr "Cod: Inactief" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "Totaal overzicht indicatoren:" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "Start sector" + +#: src/rip.c:332 +msgid "End sector" +msgstr "Eind sector" + +#: src/rip.c:380 +#, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "Bezig met het invoegen van nummer %d in de ddj database\n" + +#: src/rip.c:602 +#, fuzzy +msgid "Error: can't open m3u file." +msgstr "Fout: kan m3u bestand niet openen\n" + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "In BeëindigRip\n" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "Nu is de totale codeer grootte: %d\n" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "Rippen: Nr %d (%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "Rippen: %6.2f%%" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "Rippen voltooid\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "Rip gedeelte van %d aantal wavs %d\n" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "Volgende nummer is %d, totaal is %d\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "Check of we een ander nummer moeten rippen\n" + +#: src/rip.c:955 +#, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "Cod: Nr %d (%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "Cod: %6.2f%%" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "Klaar met coderen op cpu %d\n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "Bezig met het verwijderen van [%s]\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "Rippen is voltooid\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "GeenArtiest" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "GeenTitel" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" + +#: src/rip.c:1287 +#, fuzzy +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" +"Ongeldig codeer uitvoerbestand\n" +"Check uw codeerconfiguratie" + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"Geen nummers geselecteerd.\n" +"Hele CD rippen?\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "Bezig met het rippen van de hele CD\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "In RipVolgendeNummer\n" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "Eerste gecheckte nummer is %d\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "Rip maar raak!\n" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "Geen schrijf toegang om wav bestand te schrijven" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "Bezig met het rippen van nummer %d naar %s\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "Rip: Nr %d (0.0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "Bestand %s is al geript. Aan het overslaan...\n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "Geen ruimte meer in uitvoer map" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "Bezig met aanroepen van CDPRip\n" + +#: src/rip.c:1655 +#, c-format +msgid "Added track %d to %s list\n" +msgstr "Nummer %d toegevoegd aan %s lijst\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "Geen vrije cpu's\n" + +#: src/rip.c:1697 +#, c-format +msgid "Enc track %d\n" +msgstr "Codeer nummer %d\n" + +#: src/rip.c:1719 +#, fuzzy +msgid "No write access to write encoded file." +msgstr "Geen schrijf toegang om gecodeerde bestand te schrijven" + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "%i: Bezig met coderen naar %s\n" + +#: src/rip.c:1734 +#, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "Cod: Nr %d (0.0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "In BerekenAlles\n" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "" +"We rippen nu niet, dus laten we de codeer waarden maar naar nul zetten\n" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "Totale rip grootte is: %d\n" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "Totale codeer grootte is: %d\n" + +#~ msgid "" +#~ "Invalid rip executable\n" +#~ "Check your rip config" +#~ msgstr "" +#~ "Ongeldig rip uitvoerbestand\n" +#~ "Check uw ripconfiguratie" diff --git a/po/pl_PL.gmo b/po/pl_PL.gmo new file mode 100644 index 0000000..62ff24f Binary files /dev/null and b/po/pl_PL.gmo differ diff --git a/po/pl_PL.po b/po/pl_PL.po new file mode 100644 index 0000000..59ae37d --- /dev/null +++ b/po/pl_PL.po @@ -0,0 +1,1226 @@ +# Polish translation of PACKAGE. +# Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Piotr Adamocha , 2005. +# +# +msgid "" +msgstr "" +"Project-Id-Version: pl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2005-03-10 11:22+0200\n" +"Last-Translator: Piotr Adamocha \n" +"Language-Team: Poland\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "Okre¶l wymiary g³ównego okna" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "WYMIARY" + +#: src/main.c:65 +msgid "Specify the config file to use (in your home dir)" +msgstr "Okre¶l plik konfiguracyjny do u¿ycia (w Twoim katalogu domowym)" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "KONFIGURACJA" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "Okre¶l napêd CD do u¿ycia" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "URZ¡DZENIE" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "Okre¶l standardowe urz±dzenie scsi do u¿ycia" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "Uruchom w trybie zminimalizowanym (tylko cd)" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "Tryb \"lokalny\" -- nie sprawdzaj danych o p³ycie w internecie" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "Nie u¿ywaj przekierowania I/O" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "Uruchom w trybie debugowania" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "B³±d: Nie mo¿na zainicjalizowaæ [%s]\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" +"To jest wersja rozwojona narzêdzia Grip. Je¿eli zauwa¿y³e¶ problemyspróbuj " +"u¿yæ ostatniej stabilnej wersji" + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "Uruchomienie Grip'a zakoñczy³o siê sukcesem\n" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"Program pracuje.\n" +"Czy na pewno chcesz zakoñczyæ?" + +#: src/grip.c:395 +msgid "Status" +msgstr "Status" + +#: src/grip.c:410 +msgid "General" +msgstr "G³ówny" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "Ripuj" + +#: src/grip.c:440 src/gripcfg.c:496 +msgid "Encode" +msgstr "Zakoduj" + +#: src/grip.c:485 +msgid "Help" +msgstr "Pomoc" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "Zawarto¶æ" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "Odgrywanie p³yt CD" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "Ripowanie p³yt CD" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "Konfiguracja Grip'a" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "FAQ" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "Wiêcej pomocy" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "Zg³aszanie b³êdów" + +#: src/grip.c:546 +msgid "About" +msgstr "O programie" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "Wersja %s" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "Stworzone w Grip" + +#: src/grip.c:922 +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"Twój plik konfiguracyjny jest za stary - przyjmujê ustawienia domy¶lne.\n" +"Bêdziesz musia³ skonfigurowaæ ponownie program Grip.\n" +"Twój stary plik konfiguracyjny zosta³ zapisany z do³±czeniem \"-old\" do " +"nazwy." + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "serwer to %s, port %d\n" + +#: src/grip.c:1016 +msgid "Error: Unable to save config file." +msgstr "B³±d: Nie mo¿na zapisaæ pliku konfiguracyjnego" + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "Konfiguracja" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "Napêd CD" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "Nie przerywaj grania podczas wyj¶cia/uruchomienia" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "Przewiñ kiedy zatrzymane" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "Rozpocznij od pierwszej ¶cie¿ki je¶li nie odtwarza" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "Auto-play podczas w³o¿enia dysku" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "Przetasuj przed ka¿dym odtwarzaniem" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "Obej¶cie b³êdu wysuniêcia" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "Sprawd¼ napêd w poszukiwaniu nowego dysku" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "Okres sprawdzania (w sekundach)" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "CD" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "Riper:" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "Program ripuj±cy" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "Linia komend ripowania" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "Wy³±cz tryb paranoia" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "Wy³±cz tryb extra paranoia" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "Wy³±cz zarysowanie" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "detekcja" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "naprawa" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "Oblicz regulacjê wzmocnienia" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "Format ripowanego pliku" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "Standardowe urz±dzenie SCSI" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "Ripper" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "'mi³a' warto¶æ ripowania" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "Maksymalna ilo¶æ niezakodowanych plików .wav" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "Auto-ripowanie podczas w³o¿enia" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "D¼wiêk po zripowaniu" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "Auto-wysuwanie po zripowaniu" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "Przerwa auto-wysuniêcia" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "Przerwa przed ripowaniem" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "Wstrzymaj kodowanie podczas ripowania dysku" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "Zatrzymuj napêd cd pomiêdzy ¶cie¿kami" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "Komenda filtra Wav" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "Komenda filtra dysku" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "Opcje" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "Program koduj±cy:" + +#: src/gripcfg.c:412 +msgid "Encoder executable" +msgstr "Plik programu koduj±cego:" + +#: src/gripcfg.c:417 +msgid "Encoder command-line" +msgstr "Linia komend prog. koduj±cego" + +#: src/gripcfg.c:423 +msgid "Encode file extension" +msgstr "Rozszerzenie kodowanego pliku" + +#: src/gripcfg.c:428 +msgid "Encode file format" +msgstr "Format kodowanego pliku" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "Usuñ .wav po kodowaniu" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "Wstaw informacjê do bazy SQL" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "Twórz pliki .m3u" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "U¿ywaj relatywnych ¶cie¿ek w plikach .m3u" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "Format pliku M3U" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "Próbkowanie kodowania (kbitów/sek)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "Ilo¶æ CPU do u¿ycia" + +#: src/gripcfg.c:477 +msgid "Encode 'nice' value" +msgstr "'mi³a' warto¶æ kodowania" + +#: src/gripcfg.c:481 +msgid "Encode filter command" +msgstr "Komenda filtra kodowania" + +#: src/gripcfg.c:505 +msgid "Add ID3 tags to encoded files" +msgstr "Dodaj tagi ID3 do zakodowanych plików" + +#: src/gripcfg.c:511 +msgid "Add ID3v2 tags to encoded files" +msgstr "Dodaj tagi ID3v2 do zakodowanych plików" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "Taguj tylko pliki z rozszerzeniem .mp3" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "Pole komentarza ID3" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "Kodowanie znaków ID3v1" + +#: src/gripcfg.c:532 +msgid "ID3v2 Character set encoding" +msgstr "Kodowanie znaków ID3v2" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "ID3" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "Serwer bazy danych" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "¦cie¿ka CGI" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "G³ówny serwer" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "Serwer pomocniczy" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "Email wysy³any do bazy danych" + +#: src/gripcfg.c:603 +msgid "DB Character set encoding" +msgstr "Kodowanie znaków bazy danych" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "U¿ywaj rozszerzeñ freedb" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "Automatycznie wykonuj sprawdzanie dysku" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "Baza danych p³yt" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "U¿yj serwera proxy" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "U¿yj serwera ze zmiennej ¶rod. 'http_proxy'" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "Serwer proxy" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "Port proxy" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "Nazwa u¿ytkownika dla proxy" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "Has³o dla proxy" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "Proxy" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "Adres email" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "Program uaktalniania CD" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "Nie zmieniaj nazw plików na ma³e litery" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "Dopu¶æ wysokie bity w nazwach plików" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "Nie zmianiaj spacji do podkre¶leñ" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" +"Znaki do usuniêcia\n" +"w plikach" + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "Poka¿ ikonê w tacce systemowej" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "Ró¿ne" + +#: src/gripcfg.c:819 +msgid "Error: Unable to save ripper config." +msgstr "B³±d: Nie mo¿na zapisaæ konfiguracji rippera." + +#: src/gripcfg.c:890 +msgid "Error: Unable to save encoder config." +msgstr "B³±d: Nie mo¿na zapisaæ konfiguracji enkodera." + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "Status napêdu: %d\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "Napêd nie obs³uguje sprawdzania statusu (przyjmij CDS_NO_INFO)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "Brak dysku\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "B³±d: Nie mo¿na odczytaæ zawarto¶ci dysku\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "Napêd nie obs³uguje sprawdzania stanu\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "Odblokowanie nie uda³o siê: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "CDIOCEJECT" + +#: src/cdplay.c:83 +msgid "Cannot do lookup while ripping." +msgstr "Nie mo¿na wykonaæ sprawdzenia podczas ripowania" + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "Nieznany dysk" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "¦cie¿ka %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "Zapytanie %s (przez %s) dla dysku %02x.\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "Zapytanie %s dla dysku %02x.\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"Dopasowano dla \"%s %s\"\n" +"Pobieram dane...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "Wykonano\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "B³±d podczas zapisywania danych dysku\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "Nie dopasowano\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +msgid "Length" +msgstr "D³ugo¶æ" + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "¦cie¿ki" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "¦cie¿ka" + +#: src/cdplay.c:633 src/discedit.c:390 +msgid "Error saving disc data." +msgstr "B³±d podczas zapisywania danych dysku" + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "Obróæ tryb odtwarzania" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "Zmieñ pêtle odtwarzania" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "Status ripowania" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "Odtwarzaj / Pauzuj ¶cie¿kê" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "Cofnij" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "Przewin do przodu" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "Do poprzedniej ¶cie¿ki" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "Do nastêpnej ¶cie¿ki" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "Zmieñ tryb odtwarzania" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "Nastêpny dysk" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "Zatrzymaj odtwarzanie" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "Wysuñ dysk" + +#: src/cdplay.c:962 +msgid "Scan Disc Contents" +msgstr "Skanuj zawarto¶æ dysku" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "Zmieñ sterowanie g³o¶no¶ci±" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "Zmieñ edytor dysku" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "Rozpocznij/przerwij sprawdzanie bazy danych dysków" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "Zmieñ wy¶wietlanie ¶cie¿ki" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Opu¶æ Grip" + +#: src/cdplay.c:1173 +msgid "Cannot fast forward while ripping." +msgstr "Nie mo¿na szybko przewijaæ podczas ripowania." + +#: src/cdplay.c:1204 +msgid "Cannot rewind while ripping." +msgstr "Nie mo¿na przewijaæ podczas ripowania." + +#: src/cdplay.c:1235 +msgid "Cannot switch discs while ripping." +msgstr "Nie mo¿na zmieniaæ dyskow podczas ripowania" + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "Wysuñ dysk\n" + +#: src/cdplay.c:1257 +msgid "Cannot eject while ripping." +msgstr "Nie mo¿na wysun±æ podczas ripowania." + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "Mam dysk -- wysuwanie\n" + +#: src/cdplay.c:1334 +msgid "Cannot play while ripping." +msgstr "Nie mo¿na odtwarzaæ podczas ripowania." + +#: src/cdplay.c:1402 src/cdplay.c:1433 +msgid "Cannot switch tracks while ripping." +msgstr "Nie mo¿na zmieniaæ ¶cie¿ek podczas ripowania." + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "Sprawd¼ w poszukiwaniu nowego dysku\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "CDStat znalaz³ dysk, trwa sprawdzanie ¶cie¿ek\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "Mamy prawid³owy dysk!\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "Brak niezerowych d³ugo¶ci ¶cie¿ek\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "CDStat zwróci³ komunikat o braku dysku\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "Aktualny sektor: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "Brak dysku" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"Dysk zosta³ znaleziony na pomocniczym serwerze,\n" +"ale nie na g³ównym serwerze.\n" +"\n" +"Czy chcesz wys³aæ informacje o dysku?" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +msgid "Error: Unable to create temporary file." +msgstr "B³±d: Nie mo¿na stworzyæ pliku tymczasowego." + +#: src/cdplay.c:1947 +msgid "Error: Unable to write disc data." +msgstr "B³±d: Nie mo¿na zapisaæ danych." + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "Wysy³am wiadomo¶æ do %s\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "Wiadomo¶æ systemowa" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "URI to %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "Kwerenda ma postaæ [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "B³±d %d w %s\n" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "Tworzê katalog %s\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "B³±d: %s istnieje, ale jest plikiem\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "B³±d: Nie mo¿na otworzyæ %s do zapisu\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "Tytu³ dysku" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "Nazwa ¶cie¿ki" + +#: src/discedit.c:84 +msgid "W" +msgstr "W" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "Wykonawca" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "Gatunek ID3:" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "Rok p³yty" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "Wykonawca ¶cie¿ki" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "Podziel:" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "Tytu³/Wykonawca" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "Wykonawca/Tytu³" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "Podziel znaki" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "Wielu wykonawców" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "Zapisz informacje o dysku" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "Wy¶lij informacje o dysku" + +#: src/discedit.c:393 +msgid "No disc present." +msgstr "Brak dysku." + +#: src/discedit.c:543 +msgid "Cannot submit. No disc is present." +msgstr "Nie mo¿na wys³aæ. Brak dysku." + +#: src/discedit.c:558 +msgid "You must enter a disc title." +msgstr "Musisz wpisaæ tytu³ p³yty." + +#: src/discedit.c:565 +msgid "You must enter a disc artist." +msgstr "Musisz wpisaæ wykonawcê p³yty." + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" +"Za chwilê wy¶lesz informacje o p³ycie\n" +"do komercyjnego serwera CDDB, który przejmie\n" +"dane przez Ciebie wys³ane. Takie serwery\n" +"zarabiaj± na Twojej pracy. Sugerujemy korzystanie\n" +"z darmowych serwerów.\n" +"\n" +"Kontynuowaæ?" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" +"Za chwilê wy¶lesz informacje o dysku\n" +"przez e-mail.\n" +"\n" +"Kontynuowaæ?" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "Wybór gatunku" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"Wys³anie wymaga gatunku ró¿nego od 'nieznany'\n" +"Poni¿ej wybierz gatunek DiscDB" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "Gatunek DiscDB" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "Wy¶lij" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "Anuluj" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "nieznane pole ID3\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "" +"B³±d: nie mo¿na przet³umaczyæ nazwy pliku. Nie ma takiego u¿ytkownika jak %" +"s\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "Wykonanie nie powiod³o siê\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "B³±d: Z³y rodzaj wpisu\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "B³±d: Nieprawid³owy plik konfiguracyjny\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "Ripuj i enkoduj" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "Ripuj i enkoduj wybrane ¶cie¿ki" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "Tylko ripuj" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "Ripuj, ale nie enkoduj wybranych ¶cie¿ek" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "Przerwij ripowanie i enk." + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "Zabij wszystkie aktywne procesy ripowania i enkodowania" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "Przerwij ripowanie" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "Zabij proces ripowania" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "Skan DDJ" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "Wstaw informacje o dysku do bazy danych DigitalDJ" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "Ripuj czê¶ciow± ¶cie¿kê" + +#: src/rip.c:166 +msgid "Play" +msgstr "Graj" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "Aktualny sektor: 0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "Rip: Bezczynny" + +#: src/rip.c:209 +msgid "Enc: Trk 99 (99.9x)" +msgstr "Enk: ¦¿k 99 (99.9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +msgid "Enc: Idle" +msgstr "Enk: Bezczynny" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "Ca³kowite wska¼niki:" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "Sektor pocz±tkowy" + +#: src/rip.c:332 +msgid "End sector" +msgstr "Sektor koñcowy" + +#: src/rip.c:380 +#, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "Wstawiam ¶cie¿kê nr %d do bazy danych DDJ\n" + +#: src/rip.c:602 +msgid "Error: can't open m3u file." +msgstr "B³±d: nie mo¿na otworzyæ pliku m3u." + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "Podczas zabijania procesu ripowania\n" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "Aktualnie ca³kowity rozmiar enkodowania wynosi: %d\n" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "Ripowanie: ¦¿k %d (%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "Ripowanie: %6.2f%%" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "Ripowanie zakoñczono\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "Ripuj czê¶æiowo %d liczbê wav'ów %d\n" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "Nastêpna ¶cie¿ka to %d, w sumie %d\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "Sprawd¼ czy potrzeba ripowaæ inn± ¶cie¿kê\n" + +#: src/rip.c:955 +#, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "Enk: ¦¿k %d (%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "Enk: %6.2f%%" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "Ukoñczono enkodowanie na procesorze %d\n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "Usuwanie [%s]\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "Ripowanie zakoñczono\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "Brak wykonawcy" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "Brak tytu³u" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" +"Nie wykryto p³yty w napêdzie. Je¿eli jednak p³yta jest w napêdzie sprawd¼ " +"ustawienia napêdu CD w Konfiguracji->CD" + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" +"Nieprawid³owy program ripuj±cy.\n" +"Sprawd¼ konfiguracjê ripowania i upewnij siê, ¿e poda³e¶ pe³n± ¶cie¿kê do " +"programu ripuj±cego." + +#: src/rip.c:1287 +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" +"Nieprawid³owy program enkoduj±cy.\n" +"Sprawd¼ konfiguracjê enkodowania i upewnij siê, ¿e poda³e¶ pe³n± ¶cie¿kê do " +"programu enkoduj±cego." + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"Nie wybrano ¶cie¿ek.\n" +"Zripowaæ ca³± p³ytê CD?\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "Ripowanie ca³ej p³yty CD\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "W nastêpnej ¶cie¿ce ripowania\n" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "Pierwsza sprawdzona ¶cie¿ka to %d\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "Rozpoczêto ripowanie!\n" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "Brak prawa zapisu do zapisywanego pliku wav" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "Ripowanie ¶cie¿ki %d do %s\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "Rip: ¦¿k %d (0.0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "Plik %s zosta³ wcze¶niej zripowany. Pomijam go...\n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "Brak miejsca w katalogu wyj¶ciowym" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "Wzywam CDPRip\n" + +#: src/rip.c:1655 +#, c-format +msgid "Added track %d to %s list\n" +msgstr "Dodano ¶cie¿kê %d do listy %s\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "Brak wolnych procesorów\n" + +#: src/rip.c:1697 +#, c-format +msgid "Enc track %d\n" +msgstr "Enk ¶cie¿kê %d\n" + +#: src/rip.c:1719 +msgid "No write access to write encoded file." +msgstr "Brak prawa zapisu do zapisu zenkodowanego pliku." + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "%i: Enkodowanie do %s\n" + +#: src/rip.c:1734 +#, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "Enk: ¦¿k %d (0.0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "W ca³kowitym przeliczeniu\n" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "Teraz nie ripujemy, wiêc zzerujmy warto¶ci enkodowania\n" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "Ca³kowity rozmiar ripowania: %d\n" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "Ca³kowity rozmiar enkodowania: %d\n" diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo new file mode 100644 index 0000000..46e6462 Binary files /dev/null and b/po/pt_BR.gmo differ diff --git a/po/pt_BR.po b/po/pt_BR.po new file mode 100644 index 0000000..494679a --- /dev/null +++ b/po/pt_BR.po @@ -0,0 +1,1310 @@ +# grip pt_BR.po. +# Copyright (C) 2000-2002 Free Software Foundation, Inc. +# Wellington Terumi Uemura , 2002. +# +# , no-wrap +# +msgid "" +msgstr "" +"Project-Id-Version: grip 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2002-05-09 07:52+0900\n" +"Last-Translator: Wellington Terumi Uemura \n" +"Language-Team: <@>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "Especifique o tamanho da janela principal" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "GEOMETRY" + +#: src/main.c:65 +#, fuzzy +msgid "Specify the config file to use (in your home dir)" +msgstr "Especifique a unidade de CD-ROM" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "Especifique a unidade de CD-ROM" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "DEVICE" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "Especifique uma unidade SCSI genérica para usar" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "Iniciar em modo minimizado \"somente cd\" " + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "Modo \"Local\" -- não procurar por informação de disco na net" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "Não faça direcionamento I/O" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "Rodar em modo detalhado (depurado)" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "Erro: Não é possível inicializar[%s]\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"Trabalho em progresso.\n" +"Realmente deseja sair?" + +#: src/grip.c:395 +#, fuzzy +msgid "Status" +msgstr "Estado da extração" + +#: src/grip.c:410 +msgid "General" +msgstr "" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "Extrair" + +#: src/grip.c:440 src/gripcfg.c:496 +#, fuzzy +msgid "Encode" +msgstr "Codificador" + +#: src/grip.c:485 +msgid "Help" +msgstr "Ajuda" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "Índice" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "Tocando CDs" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "Extraindo CDs" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "Configurando Grip" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "P&R" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "Buscando mais Ajuda" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "Relatando Erros" + +#: src/grip.c:546 +msgid "About" +msgstr "Sobre" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "" + +#: src/grip.c:922 +#, fuzzy +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"Seu arquivo de configuração está desatualizado -- restaurando arquivo para " +"configuração original \n" +"Você vai precisar reconfigurar o Grip\n" +"A sua configuração antiga foi arquivada em ~/.grip-old" + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "servidor é %s, porta %d\n" + +#: src/grip.c:1016 +#, fuzzy +msgid "Error: Unable to save config file." +msgstr "Erro: Não foi possível salvar o arquivo de configuração" + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "Configuração" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "Dispositivo de CD-ROM" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "Não pare de tocar quando sair/iniciar" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "Retroceder quando parar" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "Iniciar com a primeira pista se não estiver tocando" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "Tocar automáticamente quando inserir o disco" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "Reembaralhar as músicas antes de tocar" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "Tentar outra maneira de expulsar o CD" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "CD" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "Extrator:" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "Programa extrator" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "Comandos extras do extrator" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "Desabilitar paranoia" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "Desabilitar paranoia extra" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "Desabilitar scrach" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "detecção" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "reparar" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "Calcular ajuste de ganho" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "Extrair arquivo em formato" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "Dispositivo SCSI Genérico" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "Extrator" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "Extrair valor 'nice'" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "Máx .wav's não codificadas" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "Extrair automáticamente ao inserir" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "Alerta sonoro depois de extrair" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "Expulsar automáticamente após extrair" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "Atraso de expulsão automática" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "Comando para o filtro Wav" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "Comando para o filtro do Disco" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "Opções" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "Codificador:" + +#: src/gripcfg.c:412 +#, fuzzy +msgid "Encoder executable" +msgstr "MP3 executável" + +#: src/gripcfg.c:417 +#, fuzzy +msgid "Encoder command-line" +msgstr "linha de comando do MP3" + +#: src/gripcfg.c:423 +#, fuzzy +msgid "Encode file extension" +msgstr "Extrair arquivo em formato" + +#: src/gripcfg.c:428 +#, fuzzy +msgid "Encode file format" +msgstr "Extrair arquivo em formato" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "Codificador" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "Apagar .wav após a codificação" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "Inserir informações no banco de dados SQL" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "Criar arquivos .m3u" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "Informe o caminho completo no arquivo .m3u" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "Formato do arquivo M3U" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "Codificando com bitrate (kbits/seg)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "Quantidade de CPUs para usar na codificação" + +#: src/gripcfg.c:477 +#, fuzzy +msgid "Encode 'nice' value" +msgstr "Extrair valor 'nice'" + +#: src/gripcfg.c:481 +#, fuzzy +msgid "Encode filter command" +msgstr "Comando para o filtro do Disco" + +#: src/gripcfg.c:505 +#, fuzzy +msgid "Add ID3 tags to encoded files" +msgstr "Adcionar identificação ID3 nos arquivos de MP3" + +#: src/gripcfg.c:511 +#, fuzzy +msgid "Add ID3v2 tags to encoded files" +msgstr "Adcionar identificação ID3v2 nos arquivos de MP3" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "Comentários extras para ID3" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "" + +#: src/gripcfg.c:532 +#, fuzzy +msgid "ID3v2 Character set encoding" +msgstr "Apagar .wav após a codificação" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "ID3" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "Servidor de BD" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "Caminho do CGI" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "Servidor Primário" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "Servidor Secundário" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "Enviar email ao BD" + +#: src/gripcfg.c:603 +#, fuzzy +msgid "DB Character set encoding" +msgstr "Apagar .wav após a codificação" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "Usar extensões do FreeDB" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "Faz procura de disco automáticamente" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "DiscDB" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "Usar servidor proxy" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "Pegar servidor do 'http_proxy' env. var" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "Servidor proxy" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "Porta do proxy" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "Nome do usuário de proxy" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "Senha do proxy" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "Proxy" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "Endereço de E-Mail" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "Programa de atualização do CD" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "Não escrever o nome dos arquivos em minúsculas" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "Permitir altos bits nos arquivos" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "Não trocar espaços por _" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" +"Caracteres que não serão removidos\n" +"do nome dos arquivos" + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "Outros" + +#: src/gripcfg.c:819 +#, fuzzy +msgid "Error: Unable to save ripper config." +msgstr "Erro: Não foi possível salvar o arquivo de configuração" + +#: src/gripcfg.c:890 +#, fuzzy +msgid "Error: Unable to save encoder config." +msgstr "Erro: Não foi possível salvar o arquivo de configuração" + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "O estado da únidade é %d\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "" +"Esta únidade não tem suporte a verificação de estado (assume CDS_NO_INFO)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "Sem disco\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "Erro: Falha na leitura do conteúdo do disco\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "Esta únidade não tem suporte a verificação de estado\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "O destravamento falhou: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "CDIOCEJECT" + +#: src/cdplay.c:83 +#, fuzzy +msgid "Cannot do lookup while ripping." +msgstr "Não é possível procurar enquanto estiver extraindo" + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "Disco Desconhecido" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "Trilha %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "Perguntando %s (através de %s) por disco %02x.\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "Perguntando %s por disco %02x.\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"Pesquisa encontrada para \"%s / %s\"\n" +"Descarregando informações...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "Feito\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "Erro, gravando dados do disco\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "Nada foi encontrado\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +#, fuzzy +msgid "Length" +msgstr "Tamanho" + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "Trilhas" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "Trilha" + +#: src/cdplay.c:633 src/discedit.c:390 +#, fuzzy +msgid "Error saving disc data." +msgstr "Erro ao gravar dados do disco" + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "Rotacionar modo de reprodução" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "Ativar reprodução infinita" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "Estado da extração" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "Reproduzir trilha / Pausar reprodução" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "Retroceder" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "Avanço rápido" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "Voltar para a trilha anterior" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "Ir para a próxima trilha" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "Ativar opções do modo de reprodução" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "Próximo Disco" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "Parar reprodução" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "Expulsar disco" + +#: src/cdplay.c:962 +#, fuzzy +msgid "Scan Disc Contents" +msgstr "Índice" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "Ativar Controle de Volume" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "Ativar editor de disco" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "Inicializar/Abortar procura no BD para o disco" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "Mostrar Trilha" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Sair do Grip" + +#: src/cdplay.c:1173 +#, fuzzy +msgid "Cannot fast forward while ripping." +msgstr "Não é possível fazer avanço rápido enquanto estiver extraindo" + +#: src/cdplay.c:1204 +#, fuzzy +msgid "Cannot rewind while ripping." +msgstr "Não é possível retroceder enquanto estiver extraindo" + +#: src/cdplay.c:1235 +#, fuzzy +msgid "Cannot switch discs while ripping." +msgstr "Não é possível trocar de discos enquanto estiver extraindo" + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "Expulsar o disco\n" + +#: src/cdplay.c:1257 +#, fuzzy +msgid "Cannot eject while ripping." +msgstr "Não é possível expulsar o disco enquanto estiver extraindo" + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "Há disco -- expulsando\n" + +#: src/cdplay.c:1334 +#, fuzzy +msgid "Cannot play while ripping." +msgstr "Não é possível reproduzir enquanto estiver extraindo" + +#: src/cdplay.c:1402 src/cdplay.c:1433 +#, fuzzy +msgid "Cannot switch tracks while ripping." +msgstr "Não é possível trocar de trilha enquanto estiver extraindo" + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "Verificando se há um novo disco\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "O CDStat encontrou um disco, verificando trilhas \n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "Nós temos um disco válido!\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "Nenhuma trilha de tamanho não zero\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "O CDStat disse, sem disco\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "Setor atual: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "Sem Disco" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"Este disco foi encontrado no seu servidor secundário\n" +"mas não foi encontrado no seu servidor primário.\n" +"\n" +"Você Deseja enviar as informações deste disco?" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +#, fuzzy +msgid "Error: Unable to create temporary file." +msgstr "Erro: Não foi possível criar arquivo temporário" + +#: src/cdplay.c:1947 +#, fuzzy +msgid "Error: Unable to write disc data." +msgstr "Erro: Não foi possível escrever dados do disco" + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "Enviando entradas para %s\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "Mensagem do Sistema" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "URI é %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "Pesquisa é [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "Stat erro %d no %s\n" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "Criando diretório %s\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "Erro: o %s existe, mas é um arquivo\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "Erro: Não foi possível abrir o %s para escrita\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "Título do disco" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "Nome da Trilha" + +#: src/discedit.c:84 +msgid "W" +msgstr "" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "Disco artista" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "Gênero ID3:" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "Ano do disco" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "Trilha artista" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "Separar:" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "Título/Artista" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "Artista/Título" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "Separar caracteres" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "Multiplos Artistas" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "Salvar informação do disco" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "Enviar informação do disco" + +#: src/discedit.c:393 +#, fuzzy +msgid "No disc present." +msgstr "Nenhum disco presente" + +#: src/discedit.c:543 +#, fuzzy +msgid "Cannot submit. No disc is present." +msgstr "" +"Não é possível enviar\n" +"Nenhum disco está presente" + +#: src/discedit.c:558 +#, fuzzy +msgid "You must enter a disc title." +msgstr "Você deve inserir um Título para o disco" + +#: src/discedit.c:565 +#, fuzzy +msgid "You must enter a disc artist." +msgstr "Você deve inserir o nome do artista do disco " + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" +"Você esta a ponto de enviar as informações deste disco\n" +"para um servidor de CDDB comercial, o qual então \n" +"serão proprietários da informação que você enviar. Estes servidores ganham\n" +"dinheiro com o nosso esforço. Nós sugerimos a você\n" +"que use os servidores gratuitos.\n" +"\n" +"Deseja continuar?" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" +"Você está a ponto de enviar\n" +"as informações deste disco via E-Mail\n" +"\n" +"Deseja continuar?" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "Selecione o Gênero" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"Para enviar é necessário um outro gênero que não seja 'unknown' \n" +"Por favor, selecione um Gênero do disco na lista abaixo" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "Gênero do disco" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "Enviar" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "Cancelar" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "Campo ID3 desconhecido\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "" +"Erro: Não foi possível traduzir o nome do arquivo. Não existe usuário " +"chamado %s\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "Exec falhou\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "Erro: Tipo de entrada inválida\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "Erro: Arquivo de configuração inválido\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "Extrair e Codificar" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "Extrair e codificar as trilhas selecionadas" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "Só Extrair" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "Extrair mas não codificar as trilhas selecionadas" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "Abortar Extração e codificação" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "Matar todas as extrações ativas e processos de codificação" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "Abortar somente a extração" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "Matar o processo de extração" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "Pesquisa DDJ" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "Inserir a informação do disco no BD do DigitalDJ" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "Extrair parcialmente a trilha" + +#: src/rip.c:166 +msgid "Play" +msgstr "Reproduzir" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "Setor atual: 0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "Extração: Esperando" + +#: src/rip.c:209 +#, fuzzy +msgid "Enc: Trk 99 (99.9x)" +msgstr "MP3: Tri 99 (99.9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +#, fuzzy +msgid "Enc: Idle" +msgstr "MP3: Esperando" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "Inicio do Setor" + +#: src/rip.c:332 +msgid "End sector" +msgstr "Fim do setor" + +#: src/rip.c:380 +#, fuzzy, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "Inserir informações no banco de dados SQL" + +#: src/rip.c:602 +#, fuzzy +msgid "Error: can't open m3u file." +msgstr "Erro: Não foi possível abrir arquivo m3u\n" + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "Extraindo: Trilha %d (%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "Extração concluída\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "Extrair Parcialmente %d num wavs %d\n" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "Próxima Trilha é %d, o total é %d\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "Verificar se precisamos extrair outra trilha\n" + +#: src/rip.c:955 +#, fuzzy, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "MP3: Tri %d (%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "A codificação na CPU %d foi concluída\n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "Apagando [%s]\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "A extração foi concluída\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "Sem Artista" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "Sem Título" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" + +#: src/rip.c:1287 +#, fuzzy +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" +"Arquivo extrator inválido\n" +"Verifique a sua configuração de extração" + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"Nenhuma trilha selecionada.\n" +"Extrair o CD inteiro?\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "Extraindo o CD inteiro\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "Extrair trilha seguinte\n" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "A primeira trilha verificada é %d\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "Extraindo!\n" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "Sem acesso de escrita para escrever o arquivo wav " + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "Extraindo trilha %d para %s\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "Extraindo: Tri %d (0.0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "O arquivo %s já foi extraido. Pulando...\n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "Sem espaço no diretório de saída" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "Chamando CDPRi\n" + +#: src/rip.c:1655 +#, fuzzy, c-format +msgid "Added track %d to %s list\n" +msgstr "A trilha %d foi adcionada a lista de codificação\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "Nenhuma CPU livre\n" + +#: src/rip.c:1697 +#, fuzzy, c-format +msgid "Enc track %d\n" +msgstr "MP3 Trilha %d\n" + +#: src/rip.c:1719 +#, fuzzy +msgid "No write access to write encoded file." +msgstr "Sem acesso de escrita para escrever o arquivo MP3" + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "%i: Codificando para %s\n" + +#: src/rip.c:1734 +#, fuzzy, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "Extraindo: Tri %d (0.0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "" + +#~ msgid "" +#~ "Invalid rip executable\n" +#~ "Check your rip config" +#~ msgstr "" +#~ "Arquivo extrator inválido\n" +#~ "Verifique a sua configuração de extração" + +#~ msgid "Keep application minimum size" +#~ msgstr "Manter aplicativo minimizado" + +#~ msgid "Reply is [%s]\n" +#~ msgstr "Resposta é [%s]\n" + +#, fuzzy +#~ msgid "File System Character set encoding" +#~ msgstr "Apagar .wav após a codificação" + +#~ msgid "Could not parse geometry string `%s'" +#~ msgstr "Não foi possível passar a definição de geometria" + +#~ msgid "Aborted\n" +#~ msgstr "Abortado\n" + +#~ msgid "PL" +#~ msgstr "PL" + +#~ msgid "Exit GCD" +#~ msgstr "Sair do GCD" + +#~ msgid "MP3 file format" +#~ msgstr "Formato do arquivo MP3" + +#~ msgid "MP3 'nice' value" +#~ msgstr "Valor 'nice' do MP3" + +#~ msgid "MP3 filter command" +#~ msgstr "Comando de filtro para MP3" + +#~ msgid "MP3" +#~ msgstr "MP3" + +#~ msgid "" +#~ "Invalid MP3 executable\n" +#~ "Check your MP3 config" +#~ msgstr "" +#~ "O Arquivo MP3 é inválido\n" +#~ "Verifique a sua configuração do MP3" + +#~ msgid "MP3: Trk %d (0.0x)" +#~ msgstr "MP3: Tri %d (0.0x)" diff --git a/po/ru.gmo b/po/ru.gmo new file mode 100644 index 0000000..f9e7364 Binary files /dev/null and b/po/ru.gmo differ diff --git a/po/ru.po b/po/ru.po new file mode 100644 index 0000000..6214b98 --- /dev/null +++ b/po/ru.po @@ -0,0 +1,1262 @@ +# Grip is a ripper/encoder frontend +# Copyright (C) 2002 Free Software Foundation, Inc. +# Mishell Baranov , 2002. +# Michael Shigorin , 2003 (fixes) +# +msgid "" +msgstr "" +"Project-Id-Version: grip 3.1.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2003-08-29 11:36+0300\n" +"Last-Translator: Michael Shigorin \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=koi8-r\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "õËÁÖÉÔÅ ÇÅÏÍÅÔÒÉÀ ÇÌÁ×ÎÏÇÏ ÏËÎÁ" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "çåïíåôòéñ" + +#: src/main.c:65 +msgid "Specify the config file to use (in your home dir)" +msgstr "" +"õËÁÖÉÔÅ, ËÁËÏÊ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ ÉÓÐÏÌØÚÏ×ÁÔØ (× ÄÏÍÁÛÎÅÍ ËÁÔÁÌÏÇÅ)" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "ëïîæéç" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "õËÁÖÉÔÅ, ËÁËÏÅ ÕÓÔÒÏÊÓÔ×Ï CD-ROM ÉÓÐÏÌØÚÏ×ÁÔØ" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "õóôòïêóô÷ï" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "õËÁÖÉÔÅ, ËÁËÏÅ generic scsi-ÕÓÔÒÏÊÓÔ×Ï ÉÓÐÏÌØÚÏ×ÁÔØ" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "úÁÐÕÓË × \"ÍÁÌÅÎØËÏÍ\" ÒÅÖÉÍÅ (ÔÏÌØËÏ CD)" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "\"ìÏËÁÌØÎÙÊ\" ÒÅÖÉÍ -- ÎÅ ÉÓËÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÄÉÓËÅ × ÓÅÔÉ" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "îÅ ×ÙÐÏÌÎÑÔØ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÉÅ ××ÏÄÁ/×Ù×ÏÄÁ" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "úÁÐÕÓË × ÒÅÖÉÍÅ ÒÁÓÛÉÒÅÎÎÏÊ ÄÉÁÇÎÏÓÔÉËÉ (ÏÔÌÁÄÏÞÎÏÍ ÒÅÖÉÍÅ)" + +#: src/grip.c:181 +msgid "Grip" +msgstr "" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "ïÛÉÂËÁ: ÎÅ×ÏÚÍÏÖÎÏ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØ [%s]\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"òÁÂÏÔÁ ÎÅ ÚÁ×ÅÒÛÅÎÁ.\n" +"äÅÊÓÔ×ÉÔÅÌØÎÏ ÐÒÅÒ×ÁÔØ?" + +#: src/grip.c:395 +#, fuzzy +msgid "Status" +msgstr "óÔÁÔÕÓ ÉÚ×ÌÅÞÅÎÉÑ" + +#: src/grip.c:410 +msgid "General" +msgstr "ïÂÝÅÅ" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "éÚ×ÌÅÞÅÎÉÅ" + +#: src/grip.c:440 src/gripcfg.c:496 +msgid "Encode" +msgstr "óÖÁÔÉÅ" + +#: src/grip.c:485 +msgid "Help" +msgstr "ðÏÍÏÝØ" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "óÏÄÅÒÖÁÎÉÅ" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "ðÒÏÉÇÒÙ×ÁÎÉÅ CD" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "éÚ×ÌÅÞÅÎÉÅ ÔÒÅËÏ×" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "ëÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÅ Grip" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "äÁÌØÎÅÊÛÁÑ ÉÎÆÏÒÍÁÃÉÑ" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "óÏÏÂÝÉÔØ Ï ÏÛÉÂËÅ" + +#: src/grip.c:546 +msgid "About" +msgstr "ï ÐÒÏÇÒÁÍÍÅ" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "" + +#: src/grip.c:922 +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"÷ÁÛ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ ÕÓÔÁÒÅÌ -- ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÐÏ ÕÍÏÌÞÁÎÉÀ.\n" +"÷ÁÍ ÎÕÖÎÏ ÐÅÒÅËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ Grip.\n" +"÷ÁÛ ÓÔÁÒÙÊ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ ÚÁÐÉÓÁÎ Ó ÄÏÂÁ×ÌÅÎÉÅÍ -old." + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "ÓÅÒ×ÅÒ %s, ÐÏÒÔ %d\n" + +#: src/grip.c:1016 +#, fuzzy +msgid "Error: Unable to save config file." +msgstr "ïÛÉÂËÁ: ÎÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ" + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "ëÏÎÆÉÇÕÒÁÃÉÑ" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "õÓÔÒÏÊÓÔ×Ï CD-ROM" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "îÅ ÐÒÅËÒÁÝÁÔØ ÐÒÏÉÇÒÙ×ÁÎÉÅ ÐÒÉ ×ÙÈÏÄÅ/ÓÔÁÒÔÅ" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "ðÅÒÅÍÏÔÁÔØ ÐÒÉ ÏÓÔÁÎÏ×ËÅ" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "óÔÁÒÔÏ×ÁÔØ Ó ÐÅÒ×ÏÇÏ ÔÒÅËÁ, ÅÓÌÉ ÎÅ ÐÒÏÉÇÒÙ×ÁÅÔÓÑ" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "á×ÔÏÍÁÔÉÞÅÓËÉ ÐÒÏÉÇÒÙ×ÁÔØ ÐÒÉ ÕÓÔÁÎÏ×ËÅ ÄÉÓËÁ" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "ðÅÒÅÍÅÛÉ×ÁÔØ ÐÅÒÅÄ ËÁÖÄÙÍ ÐÒÏÉÇÒÙ×ÁÎÉÅÍ" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "ïÂÈÏÄÉÔØ ÎÅÐÒÁ×ÉÌØÎÙÊ ×ÙÂÒÏÓ ÄÉÓËÁ" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "ïÐÒÁÛÉ×ÁÔØ ÄÉÓËÏ×ÏÄ ÎÁ ÎÁÌÉÞÉÅ ÎÏ×ÏÇÏ ÄÉÓËÁ" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "éÎÔÅÒ×ÁÌ ÏÐÒÏÓÁ (ÓÅË)" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "ðÒÏÇÒÁÍÍÁ ÉÚ×ÌÅÞÅÎÉÑ:" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "éÓÐÏÌÎÉÍÙÊ ÆÁÊÌ" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "ëÏÍÁÎÄÎÁÑ ÓÔÒÏËÁ" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "ïÔËÌÀÞÉÔØ \"ÐÁÒÁÎÏÊÀ\"" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "ïÔËÌÀÞÉÔØ ÄÏÐÏÌÎÉÔÅÌØÎÕÀ ÐÁÒÁÎÏÊÀ" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "ãÁÒÁÐÉÎÙ" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "ÎÅ ÏÐÒÅÄÅÌÑÔØ" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "ÎÅ ×ÏÓÓÔÁÎÏ×ÌÉ×ÁÔØ" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "÷ÙÞÉÓÌÉÔØ ËÏÜÆÆÉÃÉÅÎÔ ÕÓÉÌÅÎÉÑ" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "æÏÒÍÁÔ ÉÚ×ÌÅÞÅÎÎÏÇÏ ÆÁÊÌÁ" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "Generic SCSI-ÕÓÔÒÏÊÓÔ×Ï" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "ðÒÏÇÒÁÍÍÁ ÉÚ×ÌÅÞÅÎÉÑ" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "úÎÁÞÅÎÉÅ 'nice' ÄÌÑ ÉÚ×ÌÅÞÅÎÉÑ" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "íÁËÓÉÍÕÍ ÎÅÓÖÁÔÙÈ wav'Ï×" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "á×ÔÏÓÔÁÒÔ ÐÒÉ ÕÓÔÁÎÏ×ËÅ ÄÉÓËÁ" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "óÉÇÎÁÌ ÐÏÓÌÅ ÏÓ×ÏÂÏÖÄÅÎÉÑ ÄÉÓËÁ" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "á×ÔÏ×ÙÂÒÏÓ ÐÏÓÌÅ ÏÓ×ÏÂÏÖÄÅÎÉÑ ÄÉÓËÁ" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "úÁÄÅÒÖËÁ ×ÙÂÒÏÓÁ" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "úÁÄÅÒÖËÁ ÐÅÒÅÄ ÓÔÁÒÔÏÍ" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "ïÓÔÁÎÁ×ÌÉ×ÁÔØ ÄÉÓË ÍÅÖÄÕ ÔÒÅËÁÍÉ" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "ëÏÍÁÎÄÁ wav-ÆÉÌØÔÒÁ" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "ëÏÍÁÎÄÁ ÆÉÌØÔÒÁ ÄÉÓËÏ×" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "ïÐÃÉÉ" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "ðÒÏÇÒÁÍÍÁ ÓÖÁÔÉÑ:" + +#: src/gripcfg.c:412 +msgid "Encoder executable" +msgstr "éÓÐÏÌÎÉÍÙÊ ÆÁÊÌ" + +#: src/gripcfg.c:417 +msgid "Encoder command-line" +msgstr "ëÏÍÁÎÄÎÁÑ ÓÔÒÏËÁ" + +#: src/gripcfg.c:423 +#, fuzzy +msgid "Encode file extension" +msgstr "æÏÒÍÁÔ ÓÖÁÔÏÇÏ ÆÁÊÌÁ" + +#: src/gripcfg.c:428 +msgid "Encode file format" +msgstr "æÏÒÍÁÔ ÓÖÁÔÏÇÏ ÆÁÊÌÁ" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "ðÒÏÇÒÁÍÍÁ ÓÖÁÔÉÑ" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "õÄÁÌÑÔØ .wav ÐÏÓÌÅ ËÏÄÉÒÏ×ÁÎÉÑ" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "÷ÎÏÓÉÔØ ÉÎÆÏÒÍÁÃÉÀ × âä" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "óÏÚÄÁ×ÁÔØ m3u-ÆÁÊÌÙ" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "éÓÐÏÌØÚÏ×ÁÔØ ÏÔÎÏÓÉÔÅÌØÎÙÅ ÐÕÔÉ × m3u-ÆÁÊÌÁÈ" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "æÏÒÍÁÔ m3u-ÆÁÊÌÁ" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "âÉÔÒÅÊÔ (ËÂÉÔ/ÓÅË)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "óËÏÌØËÏ ÐÒÏÃÅÓÓÏÒÏ× ÉÓÐÏÌØÚÏ×ÁÔØ" + +#: src/gripcfg.c:477 +msgid "Encode 'nice' value" +msgstr "úÎÁÞÅÎÉÅ 'nice' ÄÌÑ ÓÖÁÔÉÑ" + +#: src/gripcfg.c:481 +msgid "Encode filter command" +msgstr "ëÏÍÁÎÄÁ ÆÉÌØÔÒÁ ÓÖÁÔÉÑ" + +#: src/gripcfg.c:505 +msgid "Add ID3 tags to encoded files" +msgstr "äÏÂÁ×ÌÑÔØ ÔÜÇÉ ID3 × ÓÖÁÔÙÅ ÆÁÊÌÙ" + +#: src/gripcfg.c:511 +msgid "Add ID3v2 tags to encoded files" +msgstr "äÏÂÁ×ÌÑÔØ ÔÜÇÉ ID3v2 × ÓÖÁÔÙÅ ÆÁÊÌÙ" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "ôÜÇÉ ÔÏÌØËÏ × mp3-ÆÁÊÌÁÈ" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "ðÏÌÅ ËÏÍÍÅÎÔÁÒÉÑ ID3" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "" + +#: src/gripcfg.c:532 +#, fuzzy +msgid "ID3v2 Character set encoding" +msgstr "õÄÁÌÑÔØ .wav ÐÏÓÌÅ ËÏÄÉÒÏ×ÁÎÉÑ" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "óÅÒ×ÅÒ âä" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "ðÕÔØ CGI" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "ïÓÎÏ×ÎÏÊ ÓÅÒ×ÅÒ" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "÷ÔÏÒÉÞÎÙÊ ÓÅÒ×ÅÒ" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "Email ÄÌÑ ÏÔÓÙÌËÉ × DB" + +#: src/gripcfg.c:603 +#, fuzzy +msgid "DB Character set encoding" +msgstr "õÄÁÌÑÔØ .wav ÐÏÓÌÅ ËÏÄÉÒÏ×ÁÎÉÑ" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "éÓÐÏÌØÚÏ×ÁÔØ ÒÁÓÛÉÒÅÎÉÑ freedb" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "÷ÙÐÏÌÎÑÔØ ÐÏÉÓË ÄÉÓËÁ Á×ÔÏÍÁÔÉÞÅÓËÉ" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "CDDB" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "éÓÐÏÌØÚÏ×ÁÔØ ÐÒÏËÓÉ-ÓÅÒ×ÅÒ" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "÷ÚÑÔØ ÉÚ ÐÅÒÅÍÅÎÎÏÊ ÏËÒÕÖÅÎÉÑ 'http_proxy'" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "óÅÒ×ÅÒ" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "ðÏÒÔ" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "éÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "ðÁÒÏÌØ" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "ðÒÏËÓÉ" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "áÄÒÅÓ Email" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "ðÒÏÇÒÁÍÍÁ ÏÂÎÏ×ÌÅÎÉÑ CD" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "îÅ ÐÒÉ×ÏÄÉÔØ Ë ÎÉÖÎÅÍÕ ÒÅÇÉÓÔÒÕ ÉÍÅÎÁ ÆÁÊÌÏ×" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "òÁÚÒÅÛÉÔØ ÒÕÓÓËÉÅ ÂÕË×Ù × ÉÍÅÎÁÈ" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "îÅ ÚÁÍÅÎÑÔØ ÐÒÏÂÅÌÙ ÎÁ ÐÏÄÞÅÒËÉ×ÁÎÉÅ" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" +"îÅ ÕÄÁÌÑÔØ ÜÔÉ ÓÉÍ×ÏÌÙ\n" +"× ÉÍÅÎÁÈ ÆÁÊÌÏ×" + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "òÁÚÎÏÅ" + +#: src/gripcfg.c:819 +#, fuzzy +msgid "Error: Unable to save ripper config." +msgstr "ïÛÉÂËÁ: ÎÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ" + +#: src/gripcfg.c:890 +#, fuzzy +msgid "Error: Unable to save encoder config." +msgstr "ïÛÉÂËÁ: ÎÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ" + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "óÏÓÔÏÑÎÉÅ ÐÒÉ×ÏÄÁ %d\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "ðÒÉ×ÏÄ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÐÒÏ×ÅÒËÕ ÓÏÓÔÏÑÎÉÑ ÐÒÉ×ÏÄÁ (CDS_NO_INFO)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "îÅÔ ÄÉÓËÁ\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "ïÛÉÂËÁ: îÅ ÕÄÁÅÔÓÑ ÓÞÉÔÁÔØ ÓÏÄÅÒÖÉÍÏÅ ÄÉÓËÁ\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "ðÒÉ×ÏÄ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÐÒÏ×ÅÒËÕ ÓÏÓÔÏÑÎÉÑ\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "îÅ ÕÄÁÌÏÓØ ÒÁÚÂÌÏËÉÒÏ×ÁÔØ: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "" + +#: src/cdplay.c:83 +#, fuzzy +msgid "Cannot do lookup while ripping." +msgstr "îÅ×ÏÚÍÏÖÎÏ ×ÙÐÏÌÎÉÔØ ÚÁÐÒÏÓ ×Ï ×ÒÅÍÑ ÉÚ×ÌÅÞÅÎÉÑ" + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÄÉÓË" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "ôÒÅË %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "úÁÐÒÏÓ %s (ÞÅÒÅÚ %s) ÄÌÑ ÄÉÓËÁ %02x.\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "úÁÐÒÏÓ %s ÄÌÑ ÄÉÓËÁ %02x.\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"óÏ×ÐÁÄÅÎÉÅ ÄÌÑ \"%s / %s\"\n" +"úÁÇÒÕÚËÁ ÄÁÎÎÙÈ...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "÷ÓÅ\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "ïÛÉÂËÁ ÓÏÈÒÁÎÉÑ ÄÁÎÎÙÈ Ï ÄÉÓËÅ\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "îÅÔ ÓÏ×ÐÁÄÅÎÉÑ\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +#, fuzzy +msgid "Length" +msgstr "ðÒÏÄÏÌÖÉÔÅÌØÎÏÓÔØ " + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "ôÒÅËÉ" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "ôÒÅË" + +#: src/cdplay.c:633 src/discedit.c:390 +#, fuzzy +msgid "Error saving disc data." +msgstr "ïÛÉÂËÁ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ Ï ÄÉÓËÅ" + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "ðÏÒÑÄÏË ÐÒÏÉÇÒÙ×ÁÎÉÑ" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "ãÉËÌÉÞÅÓËÏÅ ÐÒÏÉÇÒÙ×ÁÎÉÅ" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "óÔÁÔÕÓ ÉÚ×ÌÅÞÅÎÉÑ" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "éÇÒÁÔØ ÔÒÅË / ðÁÕÚÁ" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "ðÅÒÅÍÏÔÁÔØ ÎÁÚÁÄ" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "ðÅÒÅÍÏÔÁÔØ ×ÐÅÒÅÄ" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "ðÅÒÅÊÔÉ Ë ÐÒÅÄÉÄÕÝÅÍÕ ÔÒÅËÕ" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "ðÅÒÅÊÔÉ Ë ÓÌÅÄÕÀÝÅÍÕ ÔÒÅËÕ" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "ðÅÒÅËÌÀÞÅÎÉÅ ÏÐÃÉÊ ÐÒÏÉÇÒÙ×ÁÎÉÑ" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "óÌÅÄÕÀÝÉÊ ÄÉÓË" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "ïÓÔÁÎÏ×ÉÔØ ÐÒÏÉÇÒÙ×ÁÎÉÅ" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "÷ÙÂÒÏÓ ÄÉÓËÁ" + +#: src/cdplay.c:962 +msgid "Scan Disc Contents" +msgstr "óËÁÎÉÒÏ×ÁÎÉÅ ÓÏÄÅÒÖÉÍÏÇÏ ÄÉÓËÁ" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "òÅÇÕÌÑÔÏÒ ÇÒÏÍËÏÓÔÉ" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "òÅÄÁËÔÏÒ ÄÉÓËÁ" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "éÎÉÃÉÉÒÏ×ÁÔØ/ÏÂÏÒ×ÁÔØ ÚÁÐÒÏÓ Ë CDDB" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "ðÅÒÅËÌÀÞÅÎÉÅ ÒÅÖÉÍÁ ÏÔÏÂÒÁÖÅÎÉÑ" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "÷ÙÈÏÄ ÉÚ Grip" + +#: src/cdplay.c:1173 +#, fuzzy +msgid "Cannot fast forward while ripping." +msgstr "îÅÌØÚÑ ÐÅÒÅÍÁÔÙ×ÁÔØ ×Ï ×ÒÅÍÑ ÉÚ×ÌÅÞÅÎÉÑ" + +#: src/cdplay.c:1204 +#, fuzzy +msgid "Cannot rewind while ripping." +msgstr "îÅÌØÚÑ ÐÅÒÅÍÁÔÙ×ÁÔØ ×Ï ×ÒÅÍÑ ÉÚ×ÌÅÞÅÎÉÑ" + +#: src/cdplay.c:1235 +#, fuzzy +msgid "Cannot switch discs while ripping." +msgstr "îÅÌØÚÑ ÓÍÅÎÉÔØ ÄÉÓË ×Ï ×ÒÅÍÑ ÉÚ×ÌÅÞÅÎÉÑ" + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "÷ÙÂÒÏÓ ÄÉÓËÁ\n" + +#: src/cdplay.c:1257 +#, fuzzy +msgid "Cannot eject while ripping." +msgstr "îÅÌØÚÑ ×ÙÂÒÏÓÉÔØ ÄÉÓË ×Ï ×ÒÅÍÑ ÉÚ×ÌÅÞÅÎÉÑ" + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "éÍÅÀ ÄÉÓË -- ×ÙÂÒÁÓÙ×ÁÀ\n" + +#: src/cdplay.c:1334 +#, fuzzy +msgid "Cannot play while ripping." +msgstr "îÅÌØÚÑ ×ÏÓÐÒÏÉÚ×ÏÄÉÔØ ÄÉÓË ×Ï ×ÒÅÍÑ ÉÚ×ÌÅÞÅÎÉÑ" + +#: src/cdplay.c:1402 src/cdplay.c:1433 +#, fuzzy +msgid "Cannot switch tracks while ripping." +msgstr "îÅÌØÚÑ ÓÍÅÎÉÔØ ÔÒÅË ×Ï ×ÒÅÍÑ ÉÚ×ÌÅÞÅÎÉÑ" + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "ðÒÏ×ÅÒËÁ ÎÁ ÎÁÌÉÞÉÅ ÎÏ×ÏÇÏ ÄÉÓËÁ\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "CDStat ÏÂÎÁÒÕÖÉÌ ÄÉÓË, ÐÏÉÓË ÔÒÅËÏ×\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "õ ÎÁÓ ÐÒÁ×ÉÌØÎÙÊ ÄÉÓË!\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "ïÔÓÕÓÔ×ÕÀÔ ÎÅÐÕÓÔÙÅ ÔÒÅËÉ\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "CDStat ÓËÁÚÁÌ ÞÔÏ ÄÉÓËÁ ÎÅÔ\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "ôÅËÕÝÉÊ ÓÅËÔÏÒ: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "îÅÔ ÄÉÓËÁ" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"üÔÏÔ ÄÉÓË ÂÙÌ ÎÁÊÄÅÎ ÎÁ ×ÔÏÒÉÞÎÏÍ ÓÅÒ×ÅÒÅ,\n" +"ÎÏ ÎÅ ÎÁ ÐÅÒ×ÉÞÎÏÍ ÓÅÒ×ÅÒÅ.\n" +"\n" +"èÏÔÉÔÅ ÏÔÏÓÌÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÎÅÍ?" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +#, fuzzy +msgid "Error: Unable to create temporary file." +msgstr "ïÛÉÂËÁ: ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ" + +#: src/cdplay.c:1947 +#, fuzzy +msgid "Error: Unable to write disc data." +msgstr "ïÛÉÂËÁ: ÎÅ×ÏÚÍÏÖÎÏ ÚÁÐÉÓÁÔØ ÄÁÎÎÙÅ Ï ÄÉÓËÅ" + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "ïÔÓÙÌËÁ ÄÁÎÎÙÈ ÎÁ %s\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "óÉÓÔÅÍÎÏÅ ÓÏÏÂÝÅÎÉÅ" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "URI - %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "úÁÐÒÏÓ [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "óÏÚÄÁÎÉÅ ËÁÔÁÌÏÇÁ %s\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "ïÛÉÂËÁ: %s ÓÕÝÅÓÔ×ÕÅÔ, ÎÏ ÜÔÏ ÆÁÊÌ\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "ïÛÉÂËÁ: ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ %s ÄÌÑ ÚÁÐÉÓÉ\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "îÁÚ×ÁÎÉÅ CD" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "éÍÑ ÔÒÅËÁ" + +#: src/discedit.c:84 +msgid "W" +msgstr "" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "éÓÐÏÌÎÉÔÅÌØ" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "óÔÉÌØ ID3:" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "çÏÄ ÄÉÓËÁ" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "éÓÐÏÌÎ. ÔÒÅËÁ" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "òÁÚÂÉÅÎÉÅ:" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "îÁÚ×ÁÎÉÅ/éÓÐ." + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "éÓÐ./îÁÚ×ÁÎÉÅ" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "óÉÍ×ÏÌÙ ÒÁÚÄÅÌÅÎÉÑ:" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "óÂÏÒÎÉË" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "óÏÒÈÒÁÎÉÔØ ÉÎÆ. Ï ÄÉÓËÅ" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "ïÔÏÓÌÁÔØ ÉÎÆÏÒÍÁÃÉÀ" + +#: src/discedit.c:393 +#, fuzzy +msgid "No disc present." +msgstr "îÅ ÕÓÔÁÎÏ×ÌÅÎ ÄÉÓË" + +#: src/discedit.c:543 +#, fuzzy +msgid "Cannot submit. No disc is present." +msgstr "" +"îÅ ÍÏÇÕ ÏÔÏÓÌÁÔØ\n" +"îÅ ÕÓÔÁÎÏ×ÌÅÎ ÄÉÓË" + +#: src/discedit.c:558 +#, fuzzy +msgid "You must enter a disc title." +msgstr "÷Ù ÄÏÌÖÎÙ ××ÅÓÔÉ ÎÁÚ×ÁÎÉÅ ÄÉÓËÁ" + +#: src/discedit.c:565 +#, fuzzy +msgid "You must enter a disc artist." +msgstr "÷Ù ÄÏÌÖÎÙ ××ÅÓÔÉ ÉÓÐÏÌÎÉÔÅÌÑ" + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" +"÷Ù ÐÙÔÁÅÔÅÓØ ÏÔÏÓÌÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÜÔÏÍ ÄÉÓËÅ\n" +"× ËÏÍÍÅÒÞÅÓËÉÊ CDDB-ÓÅÒ×ÅÒ, ËÏÔÏÒÙÊ ÔÅÐÅÒØ ÂÕÄÅÔ\n" +"×ÌÁÄÅÔØ ×ÁÛÉÍÉ ÏÔÏÓÌÁÎÎÙÍÉ ÄÁÎÎÙÍÉ. üÔÉ ÓÅÒ×ÅÒÙ\n" +"ÐÏÌÕÞÁÀÔ ÄÏÈÏÄÙ ÏÔ ×ÁÛÉÈ ÕÓÉÌÉÊ. íÙ ÐÒÅÄÌÁÇÁÅÍ\n" +"ÐÏÄÄÅÒÖÉ×ÁÔØ Ó×ÏÂÏÄÎÙÅ ÓÅÒ×ÅÒÙ.\n" +"\n" +"ðÒÏÄÏÌÖÉÔØ?" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" +"÷Ù ÏÔÐÒÁ×ÌÑÅÔÅ ÜÔÕ ÉÎÆÏÒÍÁÃÉÀ\n" +"Ï ÄÉÓËÅ ÞÅÒÅÚ e-mail.\n" +"\n" +"ðÒÏÄÏÌÖÉÔØ?" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "÷ÙÂÏÒ ÖÁÎÒÁ" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"ïÔÐÒÁ×ËÁ ÔÒÅÂÕÅÔ ÖÁÎÒ, ÏÔÌÉÞÎÙÊ ÏÔ 'unknown'\n" +"ðÏÖÁÌÕÊÓÔÁ, ×ÙÂÅÒÉÔÅ ÎÉÖÅÓÌÅÄÕÀÝÉÊ ÖÁÎÒ" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "öÁÎÒ" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "ïÔÐÒÁ×ÉÔØ" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "ïÔÍÅÎÉÔØ" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "ÎÅÉÚ×ÅÓÔÎÏÅ ÐÏÌÅ ID3\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "" +"ïÛÉÂËÁ: ÎÅ×ÏÚÍÏÖÎÏ ÐÅÒÅ×ÅÓÔÉ ÉÍÑ ÆÁÊÌÁ. ðÏÌØÚÏ×ÁÔÅÌØ %s ÎÅ ÓÕÝÅÓÔ×ÕÅÔ\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "Exec ÎÅ ÕÄÁÌÓÑ\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "ïÛÉÂËÁ: ðÌÏÈÏÊ ÔÉÐ ÚÁÐÉÓÉ\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "ïÛÉÂËÁ: ðÌÏÈÏÊ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "éÚ×ÌÅÞØ É ÓÖÁÔØ" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "éÚ×ÌÅÞØ É ÓÖÁÔØ ×ÙÂÒÁÎÎÙÅ ÔÒÅËÉ" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "ôÏÌØËÏ ÉÚ×ÌÅÞØ" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "éÚ×ÌÅÞØ, ÎÏ ÎÅ ÓÖÉÍÁÔØ ×ÙÂÒÁÎÎÙÅ ÔÒÅËÉ" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "ðÒÅÒ×ÁÔØ ×ÓÅ" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "õÂÉÔØ ×ÓÅ ÁËÔÉ×ÎÙÅ ÐÒÏÃÅÓÓÙ ÉÚ×ÌÅÞÅÎÉÑ É ÓÖÁÔÉÑ" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "ðÒÅÒ×ÁÔØ ÉÚ×ÌÅÞÅÎÉÅ" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "õÎÉÞÔÏÖÉÔØ ÐÒÏÃÅÓÓ ÉÚ×ÌÅÞÅÎÉÑ" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "ðÏÉÓË DDJ" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "÷ÓÔÁ×ÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÄÉÓËÅ × ÂÁÚÕ ÄÁÎÎÙÈ DigitalDJ" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "éÚ×ÌÅÞØ ÞÁÓÔØ ÔÒÅËÁ" + +#: src/rip.c:166 +msgid "Play" +msgstr "ðÒÏÉÇÒÁÔØ" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "ôÅËÕÝÉÊ ÓÅËÔÏÒ: 0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "éÚ×ÌÅÞÅÎÉÅ: ÓÔÏÐ" + +#: src/rip.c:209 +msgid "Enc: Trk 99 (99.9x)" +msgstr "óÖÁÔÉÅ: ôÒÅË 99 (99.9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +msgid "Enc: Idle" +msgstr "óÖÁÔÉÅ: ÓÔÏÐ" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "ïÂÝÅÅ ÓÏÓÔÏÑÎÉÅ" + +# src/rip.c:280 +#: src/rip.c:327 +msgid "Start sector" +msgstr "îÁÞ. ÓÅËÔÏÒ" + +# src/rip.c:285 +#: src/rip.c:332 +msgid "End sector" +msgstr "ëÏÎ. ÓÅËÔÏÒ" + +#: src/rip.c:380 +#, fuzzy, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "÷ÎÏÓÉÔØ ÉÎÆÏÒÍÁÃÉÀ × âä" + +#: src/rip.c:602 +#, fuzzy +msgid "Error: can't open m3u file." +msgstr "ïÛÉÂËÁ: ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ m3u-ÆÁÊÌ\n" + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "ôÅËÕÝÉÊ ÒÁÚÍÅÒ: %d\n" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "éÚ×ÌÅÞÅÎÉÅ: ÔÒÅË %d (%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "éÚ×ÌÅÞÅÎÉÅ: %6.2f%%" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "éÚ×ÌÅÞÅÎÉÅ ÏËÏÎÞÅÎÏ\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "þÁÓÔÉÞÎÏÅ %d ÉÚ×ÌÅÞÅÎÉÅ ÎÅÓËÏÌØËÉÈ %d wav\n" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "óÌÅÄÕÀÝÉÊ ÔÒÅË %d, ×ÓÅÇÏ %d\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "ðÒÏ×ÅÒÉÔØ, ÄÏÌÖÎÙ ÌÉ ÍÙ ÉÚ×ÌÅÞØ ÄÒÕÇÏÊ ÔÒÅË\n" + +#: src/rip.c:955 +#, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "óÖÁÔÉÅ: ÔÒÅË %d (%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "óÖÁÔÉÅ: %6.2f%%" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "úÁËÏÎÞÅÎÏ ÓÖÁÔÉÅ ÎÁ ÐÒÏÃÅÓÓÏÒÅ %d\n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "õÄÁÌÅÎÉÅ [%s]\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "éÚ×ÌÅÞÅÎÉÅ ÏËÏÎÞÅÎÏ\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "âÅÚéÓÐÏÌÎÉÔÅÌÑ" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "âÅÚîÁÚ×ÁÎÉÑ" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" + +#: src/rip.c:1287 +#, fuzzy +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" +"îÅ×ÅÒÎÙÊ ÉÓÐÏÌÎÉÍÙÊ ÆÁÊÌ ÐÒÏÇÒÁÍÍÙ ÓÖÁÔÉÑ\n" +"ðÒÏ×ÅÒØÔÅ ËÏÎÆÉÇÕÒÁÃÉÀ" + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"îÅÔ ×ÙÂÒÁÎÎÙÈ ÔÒÅËÏ×.\n" +"éÚ×ÌÅÞØ ×ÓÅ?\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "éÚ×ÌÅÞÅÎÉÅ ×ÓÅÈ ÔÒÅËÏ×\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "ðÅÒ×ÙÊ ÏÔÍÅÞÅÎÎÙÊ ÔÒÅË %d\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "éÚ×ÌÅËÁÀ!\n" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "îÅÔ ÄÏÓÔÕÐÁ ÎÁ ÚÁÐÉÓØ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ wav-ÆÁÊÌÁ" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "éÚ×ÌÅÞÅÎÉÅ ÔÒÅËÁ %d × %s\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "óÖÁÔÉÅ: ÔÒÅË %d (0.0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "æÁÊÌ %s ÂÙÌ ÕÖÅ ÐÏÌÕÞÅÎ. ðÒÏÐÕÓËÁÀ...\n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "îÅÔ ÍÅÓÔÁ × ËÁÔÁÌÏÇÅ ÄÌÑ ÚÁÐÉÓÉ" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "÷ÙÚÏ× CDPRip\n" + +#: src/rip.c:1655 +#, fuzzy, c-format +msgid "Added track %d to %s list\n" +msgstr "äÏÂÁ×ÌÅÎ ÔÒÅË %d × ÓÐÉÓÏË ÓÖÁÔÉÑ\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "îÅÔ Ó×ÏÂÏÄÎÙÈ ÐÒÏÃÅÓÓÏÒÏ×\n" + +#: src/rip.c:1697 +#, c-format +msgid "Enc track %d\n" +msgstr "óÖÁÔØ ÔÒÅË %d\n" + +#: src/rip.c:1719 +#, fuzzy +msgid "No write access to write encoded file." +msgstr "îÅÔ ÄÏÓÔÕÐÁ ÎÁ ÚÁÐÉÓØ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÖÁÔÏÇÏ ÆÁÊÌÁ" + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "%i: ÓÖÁÔÉÅ × %s\n" + +#: src/rip.c:1734 +#, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "óÖÁÔÉÅ: ÔÒÅË %d (0.0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "ïÂÝÉÊ ÏÂßÅÍ ÉÚ×ÌÅÞÅÎÎÏÇÏ: %d\n" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "ïÂÝÉÊ ÏÂßÅÍ ÓÖÁÔÏÇÏ: %d\n" + +#~ msgid "" +#~ "Invalid rip executable\n" +#~ "Check your rip config" +#~ msgstr "" +#~ "îÅ×ÅÒÎÙÊ ÉÓÐÏÌÎÉÍÙÊ ÆÁÊÌ ÐÒÏÇÒÁÍÍÙ ÉÚ×ÌÅÞÅÎÉÑ\n" +#~ "ðÒÏ×ÅÒØÔÅ ËÏÎÆÉÇÕÒÁÃÉÀ" + +#~ msgid "Keep application minimum size" +#~ msgstr "õÄÅÒÖÉ×ÁÔØ ÍÉÎÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÐÒÉÌÏÖÅÎÉÑ" + +#~ msgid "Reply is [%s]\n" +#~ msgstr "ïÔ×ÅÔ [%s]\n" + +#, fuzzy +#~ msgid "File System Character set encoding" +#~ msgstr "õÄÁÌÑÔØ .wav ÐÏÓÌÅ ËÏÄÉÒÏ×ÁÎÉÑ" diff --git a/po/stamp-cat-id b/po/stamp-cat-id new file mode 100644 index 0000000..9788f70 --- /dev/null +++ b/po/stamp-cat-id @@ -0,0 +1 @@ +timestamp diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo new file mode 100644 index 0000000..5daba30 Binary files /dev/null and b/po/zh_CN.gmo differ diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 0000000..a99e7f9 --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,1288 @@ +# Chinese (simplified) translation for Grip +# Copyright (C) 2002 Free Software Foundation, Inc. +# Merlin Ma , 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: grip 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2002-04-25 19:20+0800\n" +"Last-Translator: Merlin Ma \n" +"Language-Team: Chinese (simplified) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=gb2312\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "Ö¸¶¨Ö÷´°¿ÚµÄλÖü¸ºÎÊôÐÔ" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "¼¸ºÎÊôÐÔ" + +#: src/main.c:65 +msgid "Specify the config file to use (in your home dir)" +msgstr "ÇëÖ¸¶¨ÒªÊ¹ÓõÄÅäÖÆÎļþ(ÔÚÄúµÄÖ÷Ŀ¼ÖÐ)" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "Ö¸¶¨ CDROM É豸" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "É豸" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "Ö¸¶¨ÒªÊ¹Óõij£¹æ SCSI É豸" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "ÔËÐÐÓÚСģʽ (CD-only)" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "ÔËÐÐÓÚ±¾µØģʽ©¤©¤²»²éѯÍøÂç" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "²»×ö I/O Öض¨Ïò" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "ÔËÐÐÓÚ³ý´íģʽ" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "´íÎó: ÎÞ·¨³õʼ»¯ [%s]\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"ÕýÔÚ¹¤×÷ÖС£\n" +"ÕæµÄÒª¹Ø±ÕÂð£¿" + +#: src/grip.c:395 +#, fuzzy +msgid "Status" +msgstr "×¥¹ì״̬" + +#: src/grip.c:410 +msgid "General" +msgstr "" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "×¥¹ì" + +#: src/grip.c:440 src/gripcfg.c:496 +msgid "Encode" +msgstr "±àÂë" + +#: src/grip.c:485 +msgid "Help" +msgstr "°ïÖú" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "Ŀ¼" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "²¥·Å CD" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "CD ×¥¹ì" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "ÅäÖà Grip" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "³£¼ûÎÊÌâ½â´ð" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "»ñµÃ¸ü¶à°ïÖú" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "±¨¸æ´íÎó" + +#: src/grip.c:546 +msgid "About" +msgstr "¹ØÓÚ" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "" + +#: src/grip.c:922 +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"ÄúµÄÅäÖÃÎļþÒѾ­¹ýÆÚ©¤©¤ÖØÐÂÉ趨Ϊȱʡֵ¡£\n" +"Äú¿ÉÄÜÐèÒªÖØÐÂÅäÖà Grip¡£\n" +"¾ÉµÄÅäÖÃÎļþÒѾ­±»¸½¼Ó -old ×÷ΪÎļþÃû±£´æ." + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "·þÎñÆ÷ÊÇ %s, ¶Ë¿Ú %d\n" + +#: src/grip.c:1016 +#, fuzzy +msgid "Error: Unable to save config file." +msgstr "´íÎó: ÎÞ·¨±£´æÅäÖÃÎļþ" + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "ÅäÖÃ" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "CDROM É豸" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "Í˳öºÍÆô¶¯µÄʱºò²»ÖжϷÅÒô" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "ֹͣʱºóÍ˵½ÇúÊ×" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "Èç¹ûûÓпªÊ¼²¥·ÅÔò´ÓµÚÒ»Ê׿ªÊ¼" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "CD ²åÈëʱ×Ô¶¯²¥·Å" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "ÿ´Î²¥·ÅÇ°ÖØдòÂÒ²¥·Å´ÎÐò" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "ÐÞÕý´íÎóµÄµ¯³ö" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "¹âÅÌ" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "×¥¹ì¹¤¾ß:" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "×¥¹ì³ÌÐò" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "×¥¹ìÆ÷ÔËÐвÎÊý" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "½ûÓà paranoia" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "½ûÓÃÍⲿ paranoia" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "½ûÓòÁºÛ" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "Õì²â" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "ÐÞ¸´" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "¼ÆËãÔöÒæµ÷Õû" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "×¥¹ìÎļþ¸ñʽ" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "³£¹æ SCSI É豸" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "×¥¹ì¹¤¾ß" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "×¥¹ì 'nice' ÓÅÏÈÖµ" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "×î´ó´ý±àÂëµÄ .wav ÎļþÊý" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "¹âÅ̲åÈë×Ô¶¯×¥¹ì" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "×¥¹ìÍê³ÉºóÏìÁå" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "×¥¹ìÍê³Éºó×Ô¶¯µ¯³ö¹âÅÌ" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "×Ô¶¯µ¯³öÑÓ³Ù" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "WAV ¹ýÂËÆ÷ÃüÁî" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "¹âÅ̹ýÂËÆ÷ÃüÁî" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "Ñ¡Ïî" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "±àÂëÆ÷:" + +#: src/gripcfg.c:412 +msgid "Encoder executable" +msgstr "±àÂëÆ÷³ÌÐò" + +#: src/gripcfg.c:417 +msgid "Encoder command-line" +msgstr "±àÂëÆ÷ÃüÁîÐÐ" + +#: src/gripcfg.c:423 +#, fuzzy +msgid "Encode file extension" +msgstr "±àÂëÎļþ¸ñʽ" + +#: src/gripcfg.c:428 +msgid "Encode file format" +msgstr "±àÂëÎļþ¸ñʽ" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "±àÂëÆ÷" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "±àÂëºóɾ³ý .wav Îļþ" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "²åÈëÐÅÏ¢µ½ SQL Êý¾Ý¿â" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "´´½¨ .m3u Îļþ" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "ÔÚ .m3u ÎļþÖÐʹÓÃÏà¶Ô·¾¶" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "M3U Îļþ¸ñʽ" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "±àÂë±ÈÌØÂÊ (kbits/sec)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "CPU ʹÓÃÊýÄ¿" + +#: src/gripcfg.c:477 +msgid "Encode 'nice' value" +msgstr "±àÂë 'nice' ÓÅÏÈÖµ" + +#: src/gripcfg.c:481 +msgid "Encode filter command" +msgstr "±àÂë¹ýÂËÆ÷ÃüÁî" + +#: src/gripcfg.c:505 +msgid "Add ID3 tags to encoded files" +msgstr "ÌîÈë ID3 ±êÇ©µ½±àÂëºóµÄÎļþ" + +#: src/gripcfg.c:511 +msgid "Add ID3v2 tags to encoded files" +msgstr "ÌîÈë ID3v2 ±êÇ©µ½±àÂëºóµÄÎļþ" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "½ö½«±êǩдµ½ .mp3 ½áβµÄÎļþ" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "ID3 ×¢ÊÍÐÅÏ¢" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "" + +#: src/gripcfg.c:532 +#, fuzzy +msgid "ID3v2 Character set encoding" +msgstr "±àÂëºóɾ³ý .wav Îļþ" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "±êÇ©" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "Êý¾Ý¿â·þÎñÆ÷" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "CGI ·¾¶" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "Ö÷·þÎñÆ÷" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "´Ó·þÎñÆ÷" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "DB Ìá½»µç×ÓÓʼþ" + +#: src/gripcfg.c:603 +#, fuzzy +msgid "DB Character set encoding" +msgstr "±àÂëºóɾ³ý .wav Îļþ" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "ʹÓà FreeDB À©Õ¹" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "×Ô¶¯½øÐйâÅ̲éѯ" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "CDÊý¾Ý¿â" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "ʹÓôúÀí·þÎñÆ÷" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "´Ó¡®http_proxy¡¯±äÁ¿Ö¸¶¨´úÀí·þÎñÆ÷" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "´úÀí·þÎñÆ÷" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "´úÀí·þÎñÆ÷¶Ë¿Ú" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "´úÀí·þÎñÆ÷Óû§Ãû" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "´úÀí·þÎñÆ÷¿ÚÁî" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "´úÀí·þÎñÆ÷" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "µç×ÓÓʼþ" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "CD ¸üгÌÐò" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "²»Òª½«ÎļþÃûת»»³ÉСд×Öĸ" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "ÔÊÐíÎļþÃûµÄ¸ß8λ" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "²»Òª½«¿Õ¸ñת»»³ÉÏ»®Ïß" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" +"ÎļþÃûÖв»È¥³ýµÄ×Ö·û\n" +" " + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "ÔÓÏî" + +#: src/gripcfg.c:819 +#, fuzzy +msgid "Error: Unable to save ripper config." +msgstr "´íÎó: ÎÞ·¨±£´æÅäÖÃÎļþ" + +#: src/gripcfg.c:890 +#, fuzzy +msgid "Error: Unable to save encoder config." +msgstr "´íÎó: ÎÞ·¨±£´æÅäÖÃÎļþ" + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "Çý¶¯Æ÷״̬ÊÇ %d\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "Çý¶¯Æ÷²»Ö§³Ö״̬¼ì²â (¼Ù¶¨ CDS_NO_INFO)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "ÎÞ¹âÅÌ\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "´íÎó: ¶ÁÈ¡¹âÅÌĿ¼ʧ°Ü\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "Çý¶¯Æ÷²»Ö§³Ö״̬¼ì²â\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "½âËøʧ°Ü: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "" + +#: src/cdplay.c:83 +#, fuzzy +msgid "Cannot do lookup while ripping." +msgstr "ÎÞ·¨ÔÚ×¥¹ì¹ý³ÌÖвéѯ" + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "δ֪¹âÅÌ" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "Track %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "ÕýÔÚ (ͨ¹ý %2$s) Ïò %1$s ²éѯ¹âÅÌ %3$02x¡£\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "ÕýÔÚÏò %s ²éѯ¹âÅÌ %02x¡£\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"ÕýÔÚÆ¥Åä \"%s / %s\"\n" +"ÕýÔÚÏÂÔØÊý¾Ý...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "Íê³É\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "±£´æ¹âÅÌÊý¾Ý´íÎó\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "²»Æ¥Åä\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +#, fuzzy +msgid "Length" +msgstr "³¤¶È" + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "ÇúÄ¿" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "ÇúÄ¿" + +#: src/cdplay.c:633 src/discedit.c:390 +#, fuzzy +msgid "Error saving disc data." +msgstr "±£´æ¹âÅÌÐÅÏ¢´íÎó" + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "Ñ­»·²¥·Åģʽ" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "Çл»Ñ­»·²¥·Å" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "×¥¹ì״̬" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "²¥·Å/ÔÝÍ£" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "µ¹ÍË" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "¿ì½ø" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "ÉÏÒ»Çú" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "ÏÂÒ»Çú" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "Çл»·ÅÒôģʽѡÏî" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "ÏÂÒ»¹âÅÌ" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "Í£Ö¹·ÅÒô" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "µ¯³ö¹âÅÌ" + +#: src/cdplay.c:962 +msgid "Scan Disc Contents" +msgstr "ɨÃè¹âÅÌÄÚÈÝ" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "Çл»ÒôÁ¿¿ØÖÆ" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "Çл»¹âÅ̱༭Æ÷" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "³õʼ»¯/È¡Ïû¹âÅ̲éѯ" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "Çл»ÇúÄ¿ÏÔʾ" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Í˳ö Grip" + +#: src/cdplay.c:1173 +#, fuzzy +msgid "Cannot fast forward while ripping." +msgstr "×¥¹ì¹ý³ÌÖв»ÄÜ¿ì½ø" + +#: src/cdplay.c:1204 +#, fuzzy +msgid "Cannot rewind while ripping." +msgstr "×¥¹ì¹ý³ÌÖв»Äܵ¹ÍË" + +#: src/cdplay.c:1235 +#, fuzzy +msgid "Cannot switch discs while ripping." +msgstr "×¥¹ì¹ý³ÌÖв»ÄÜÇл»¹âÅÌ" + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "µ¯³ö¹âÅÌ\n" + +#: src/cdplay.c:1257 +#, fuzzy +msgid "Cannot eject while ripping." +msgstr "²»ÄÜÔÚ×¥¹ì¹ý³ÌÖе¯³ö¹âÅÌ" + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "ÓйâÅÌ©¤©¤ÕýÔÚµ¯³ö\n" + +#: src/cdplay.c:1334 +#, fuzzy +msgid "Cannot play while ripping." +msgstr "×¥¹ì¹ý³ÌÖв»Äܲ¥·Å" + +#: src/cdplay.c:1402 src/cdplay.c:1433 +#, fuzzy +msgid "Cannot switch tracks while ripping." +msgstr "×¥¹ì¹ý³ÌÖв»ÄܸıäÇúÄ¿" + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "ÕýÔÚ¼ì²éйâÅÌ\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "CDStat ·¢ÏÖ¹âÅÌ£¬ÕýÔÚ¼ì²éÇúÄ¿\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "¹âÅ̺Ϸ¨!\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "ûÓзÇÁ㳤¶ÈµÄÇúÄ¿\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "CDStat ˵ÎÞ¹âÅÌ\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "µ±Ç°ÉÈÇø: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "ÎÞ¹âÅÌ" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"´Ë¹âÅÌÐÅÏ¢ÔÚ´Ó·þÎñÆ÷ÖÐÕÒµ½£¬\n" +"µ«ÊÇûÓÐÔÚÖ÷·þÎñÆ÷ÖÐÕÒµ½¡£\n" +"\n" +"ÄúÊÇ·ñÏëÌá½»´Ë¹âÅÌÐÅÏ¢£¿" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +#, fuzzy +msgid "Error: Unable to create temporary file." +msgstr "´íÎó: ÎÞ·¨´´½¨ÁÙʱÎļþ" + +#: src/cdplay.c:1947 +#, fuzzy +msgid "Error: Unable to write disc data." +msgstr "´íÎó: ÎÞ·¨Ð´¹âÅÌÊý¾Ý" + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "·¢ËÍÓʼþµ½ %s\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "ϵͳÏûÏ¢" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "URI ÊÇ %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "²éѯÊÇ [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "״̬´íÎó %d ÔÚ %s\n" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "´´½¨Ä¿Â¼ %s\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "´íÎó: %s ÒѾ­´æÔÚ, µ«È´ÊÇÒ»¸öÎļþ\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "´íÎó: ÎÞ·¨´ò¿ª %s ½øÐÐд²Ù×÷\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "¹âÅ̱êÌâ" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "Òô¹ìÇúÃû" + +#: src/discedit.c:84 +msgid "W" +msgstr "" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "¹âÅÌ×÷Õß" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "ID3Àà±ð:" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "³öÆ·ÈÕÆÚ" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "ÇúÄ¿×÷Õß" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "·Ö¸î:" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "±êÌâ/×÷Õß" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "×÷Õß/±êÌâ" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "·Ö¸î·û" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "¶à×÷Õß" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "±£´æ¹âÅÌÐÅÏ¢" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "Ìá½»¹âÅÌÐÅÏ¢" + +#: src/discedit.c:393 +#, fuzzy +msgid "No disc present." +msgstr "ûÓйâÅÌ" + +#: src/discedit.c:543 +#, fuzzy +msgid "Cannot submit. No disc is present." +msgstr "" +"²»ÄÜÌá½»\n" +"ûÓйâÅÌ" + +#: src/discedit.c:558 +#, fuzzy +msgid "You must enter a disc title." +msgstr "Äú±ØÐëÊäÈë¹âÅ̱êÌâ" + +#: src/discedit.c:565 +#, fuzzy +msgid "You must enter a disc artist." +msgstr "Äú±ØÐëÊäÈë×÷ÕßÃû³Æ" + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" +"Äú½«Òª½«ÕâÕŹâÅ̵ÄÐÅÏ¢Ìá½»µ½\n" +"Ò»¸öÉÌÒµµÄ CDDB ·þÎñÆ÷ÉÏÈ¥, ËûÃǽ«Õ¼ÓÐ\n" +"ÄúËùÊäÈëµÄÐÅÏ¢. ÕâЩ·þÎñÆ÷½«½è´Ë»ñµÃ\n" +"ÀûÒæ. ÎÒÃǽ¨ÒéÄú¶à¶àÖ§³ÖÄÄЩÃâ·ÑµÄ·þÎñÆ÷\n" +"À´È¡¶ø´úÖ®. \n" +"\n" +"Äú»¹Òª¼ÌÐøÂð?" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" +"Äú½«Í¨¹ýµç×ÓÓʼþÀ´\n" +"Ìá½»´Ë¹âÅÌÐÅÏ¢.\n" +"\n" +"¼ÌÐøÂð?" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "Ñ¡ÔñÀà±ð" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"ÄúÐèÒªÖ¸¶¨¾ßÌåµÄÒôÀÖÀà±ð\n" +"Çë´ÓÏÂÁÐÑ¡ÔñÒ»¸ö DiscDB Àà±ð" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "DiscDB Àà±ð" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "Ìá½»" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "È¡Ïû" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "δ֪µÄ ID3 Óò\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "´íÎó: ÎÞ·¨×ª»»ÎļþÃû¡£ÎÞ´ËÓû§ %s\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "Ö´ÐÐʧ°Ü\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "´íÎó: »µµÄÏîÀàÐÍ\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "´íÎó: ·Ç·¨µÄÅäÖÃÎļþ\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "×¥¹ìºó±àÂë" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "×¥¹ìºÍ±àÂëÑ¡ÖеÄÇúÄ¿" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "Ö»×¥¹ì" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "Ö»×¥¹ì²»±àÂë" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "Í£Ö¹×¥¹ìºÍ±àÂë" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "ɱµôËùÓÐ×¥¹ìºÍ±àÂë½ø³Ì" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "½öÈ¡Ïû×¥¹ì" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "ɱµô×¥¹ì½ø³Ì" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "DDJ ɨÃè" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "²åÈë¹âÅÌÐÅÏ¢µ½ DigitalDJ Êý¾Ý¿â" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "ץȡ²¿·ÖÒô¹ì" + +#: src/rip.c:166 +msgid "Play" +msgstr "·ÅÒô" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "µ±Ç°ÉÈÇø: 0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "×¥¹ì: ¿ÕÏÐ" + +#: src/rip.c:209 +msgid "Enc: Trk 99 (99.9x)" +msgstr "±àÂë: ÇúÄ¿ 99 (99.9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +msgid "Enc: Idle" +msgstr "±àÂë: ¿ÕÏÐ" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "ÆðʼÉÈÇø" + +#: src/rip.c:332 +msgid "End sector" +msgstr "ÖÕÖ¹ÉÈÇø" + +#: src/rip.c:380 +#, fuzzy, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "²åÈëÐÅÏ¢µ½ SQL Êý¾Ý¿â" + +#: src/rip.c:602 +#, fuzzy +msgid "Error: can't open m3u file." +msgstr "´íÎó: ²»ÄÜ´ò¿ª m3u Îļþ\n" + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "×¥¹ì: ÇúÄ¿ %d (%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "Íê³É×¥¹ì\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "ÏÂÒ»Ê×ÊÇ %d, ×ܹ² %d Ê×\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "¼ì²éÊÇ·ñÐèҪץȡÆäËûÇúÄ¿\n" + +#: src/rip.c:955 +#, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "±àÂë: ÇúÄ¿ %d (%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "Íê³É±àÂëÔÚ´¦ÀíÆ÷ %d\n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "ÕýÔÚɾ³ý [%s]\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "×¥¹ìÍê³É\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "ÎÞ×÷Õß" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "ÎÞ±êÌâ" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" + +#: src/rip.c:1287 +#, fuzzy +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" +"·Ç·¨µÄ±àÂë³ÌÐò\n" +"Çë¼ì²éÄãµÄ±àÂëÆ÷ÉèÖÃ" + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"ûÓÐÑ¡ÔñÇúÄ¿¡£\n" +"ץȡÕûÕŹâÅÌÂð£¿\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "ÕýÔÚץȡÕûÕŹâÅÌ\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "ÔÚץȡÏÂÒ»¹ì\n" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "µÚÒ»¸ö¼ì²éµÄÇúÄ¿ÊÇ %d\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "ûÓÐд wav ÎļþµÄȨÏÞ" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "ÕýÔÚץȡÇúÄ¿ %d µ½ %s\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "×¥¹ì: ÇúÄ¿ %d (0.0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "Îļþ %s ÒѾ­×¥¹ý¡£Ìø¹ý...\n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "Êä³öĿ¼¿Õ¼ä²»×ã" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "µ÷Óà CDPRip\n" + +#: src/rip.c:1655 +#, fuzzy, c-format +msgid "Added track %d to %s list\n" +msgstr "Ìí¼ÓÇúÄ¿ %d µ½±àÂë¶ÓÁÐ\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "ûÓпÕÏеĴ¦ÀíÆ÷\n" + +#: src/rip.c:1697 +#, c-format +msgid "Enc track %d\n" +msgstr "±àÂë ÇúÄ¿ %d\n" + +#: src/rip.c:1719 +#, fuzzy +msgid "No write access to write encoded file." +msgstr "ûÓÐд±àÂëºóµÄÎļþµÄȨÏÞ" + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "%i: ±àÂëµ½ %s\n" + +#: src/rip.c:1734 +#, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "±àÂë: ÇúÄ¿ %d (0.0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "" + +#~ msgid "" +#~ "Invalid rip executable\n" +#~ "Check your rip config" +#~ msgstr "" +#~ "·Ç·¨µÄ×¥¹ì³ÌÐò\n" +#~ "Çë¼ì²éÄãµÄ×¥¹ìÆ÷ÉèÖÃ" + +#~ msgid "Keep application minimum size" +#~ msgstr "±£³ÖÓ¦ÓóÌÐò´°¿Ú×îС³ß´ç" + +#~ msgid "Reply is [%s]\n" +#~ msgstr "»Ø¸´ÊÇ [%s]\n" + +#, fuzzy +#~ msgid "File System Character set encoding" +#~ msgstr "±àÂëºóɾ³ý .wav Îļþ" + +#~ msgid "Could not parse geometry string `%s'" +#~ msgstr "ÎÞ·¨´¦Àí¼¸ºÎÊôÐÔ×Ö´®¡®%s¡¯" + +#~ msgid "Aborted\n" +#~ msgstr "È¡Ïû\n" + +#~ msgid "Exit GCD" +#~ msgstr "Í˳ö GCD" + +#~ msgid "MP3 file format" +#~ msgstr "MP3 Îļþ¸ñʽ" + +#~ msgid "MP3 'nice' value" +#~ msgstr "±àÂëÆ÷ 'nice' ÓÅÏȼ¶" + +#~ msgid "MP3 filter command" +#~ msgstr "MP3 ¹ýÂËÆ÷ÃüÁî" + +#~ msgid "MP3" +#~ msgstr "±àÂë" + +#~ msgid "" +#~ "Invalid MP3 executable\n" +#~ "Check your MP3 config" +#~ msgstr "" +#~ "·Ç·¨µÄ±àÂë³ÌÐò\n" +#~ "Çë¼ì²éÄãµÄ±àÂëÆ÷ÉèÖÃ" + +#~ msgid "MP3: Trk %d (0.0x)" +#~ msgstr "±àÂë: ÇúÄ¿ %d (0.0x)" diff --git a/po/zh_HK.gmo b/po/zh_HK.gmo new file mode 100644 index 0000000..3ba424f Binary files /dev/null and b/po/zh_HK.gmo differ diff --git a/po/zh_HK.po b/po/zh_HK.po new file mode 100644 index 0000000..45627cf --- /dev/null +++ b/po/zh_HK.po @@ -0,0 +1,1291 @@ +# Chinese (traditional) translation for Grip +# Copyright (C) 2002 Free Software Foundation, Inc. +# Merlin Ma , 2002. +# Anthony Fok , 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: grip 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2002-04-25 18:30+0800\n" +"Last-Translator: Anthony Fok \n" +"Language-Team: Chinese (traditional) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=big5\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "«ü©w¥Dµøµ¡ªº¦ì¸m´X¦óÄÝ©Ê" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "´X¦óÄÝ©Ê" + +#: src/main.c:65 +#, fuzzy +msgid "Specify the config file to use (in your home dir)" +msgstr "«ü©w­n¨Ï¥Îªº CDROM ¸Ë¸m" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "«ü©w­n¨Ï¥Îªº CDROM ¸Ë¸m" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "¸Ë¸m" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "«ü©w­n¨Ï¥Îªº³q¥Î SCSI ¸Ë¸m" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "¥H¡u¤p«¬¡v (CD-only) ¼Ò¦¡±Ò°Ê" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "¥H¡u¥»¦a¡v¼Ò¦¡¢w¢w¤£¤Wºô¸ô¬d¸ß¸ê°T" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "¤£°µ I/O ­«©w¦V" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "¥H°£¿ù¼Ò¦¡°õ¦æ" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "¿ù»~: µLªkªì©l¤Æ [%s]\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"¥¿¦b¤u§@¤¤¡C\n" +"¯uªº­nÃö³¬¶Ü¡H" + +#: src/grip.c:395 +#, fuzzy +msgid "Status" +msgstr "§ì­yª¬ºA" + +#: src/grip.c:410 +msgid "General" +msgstr "" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "§ì­y" + +#: src/grip.c:440 src/gripcfg.c:496 +#, fuzzy +msgid "Encode" +msgstr "½s½X¾¹" + +#: src/grip.c:485 +msgid "Help" +msgstr "»¡©ú" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "¥Ø¿ý" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "¼½©ñ CD" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "CD §ì­y" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "³]©w Grip" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "±`¨£°ÝÃD¸Ñµª" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "¨ú±o§ó¦h»²§U" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "³ø§i¿ù»~" + +#: src/grip.c:546 +msgid "About" +msgstr "Ãö©ó" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "" + +#: src/grip.c:922 +#, fuzzy +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"±zªº³]©wÀɤw¸g¹L´Á¢w¢w­«·s³]©w¬°¹w³]­È¡C\n" +"±z¥i¯à»Ý­n­«·s³]©w Grip¡C\n" +"ªº³]©wÀɤw¸g³QÀx¦s¬° ~/.grip-old¡C" + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "¦øªA¾¹¬O %s¡A³s±µ°ð %d\n" + +#: src/grip.c:1016 +#, fuzzy +msgid "Error: Unable to save config file." +msgstr "¿ù»~: µLªkÀx¦s³]©wÀÉ" + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "³]©w" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "CDROM ¸Ë¸m" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "Â÷¶}©Î±Ò°Êªº®É­Ô¤£¤¤Â_¼½©ñ" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "°±¤î®É«á°h¨ì¦±­º" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "¦pªG¨S¦³¶}©l¼½©ñ«h±q²Ä¤@­º¶}©l" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "CD ´¡¤J®É¦Û°Ê¼½©ñ" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "¨C¦¸¼½©ñ«e­«·s¥´¶Ã¼½©ñ¦¸§Ç" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "­×¥¿¿ù»~ªº¼u¥X" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "¥úºÐ" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "§ì­y¤u¨ã:" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "§ì­yµ{¦¡" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "§ì­y¾¹°õ¦æ°Ñ¼Æ" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "°±¥Î paranoia" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "°±¥Î¥~³¡ paranoia" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "°±¥ÎÀ¿²ª" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "°»´ú" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "­×´_" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "­pºâ¼W¯q½Õ¾ã" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "§ì­yÀɮ׮榡" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "³q¥Î SCSI ¸Ë¸m" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "§ì­y¤u¨ã" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "§ì­y 'nice' Àu¥ý­È" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "³Ì¤j«Ý½s½Xªº .wav ÀÉ®×¼Æ" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "¥úºÐ´¡¤J¦Û°Ê§ì­y" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "§ì­y§¹¦¨«áÅT¹a" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "§ì­y§¹¦¨«á¦Û°Ê¼u¥X¥úºÐ" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "¦Û°Ê¼u¥X©µ¿ð" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "WAV ¹LÂo¾¹©R¥O" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "¥úºÐ¹LÂo¾¹©R¥O" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "¿ï¶µ" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "½s½X¾¹:" + +#: src/gripcfg.c:412 +#, fuzzy +msgid "Encoder executable" +msgstr "½s½X¾¹µ{¦¡" + +#: src/gripcfg.c:417 +#, fuzzy +msgid "Encoder command-line" +msgstr "½s½X¾¹°õ¦æ°Ñ¼Æ" + +#: src/gripcfg.c:423 +#, fuzzy +msgid "Encode file extension" +msgstr "§ì­yÀɮ׮榡" + +#: src/gripcfg.c:428 +#, fuzzy +msgid "Encode file format" +msgstr "§ì­yÀɮ׮榡" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "½s½X¾¹" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "½s½X«á§R°£ .wav ÀÉ®×" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "§â¸ê°T´¡¤J SQL ¸ê®Æ®w" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "«Ø¥ß .m3u ÀÉ®×" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "¦b .m3u Àɮפ¤¨Ï¥Î¬Û¹ï¸ô®|" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "M3U Àɮ׮榡" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "½s½X¦ì¤¸²v (kbits/sec)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "CPU ¨Ï¥Î¼Æ¥Ø" + +#: src/gripcfg.c:477 +#, fuzzy +msgid "Encode 'nice' value" +msgstr "§ì­y 'nice' Àu¥ý­È" + +#: src/gripcfg.c:481 +#, fuzzy +msgid "Encode filter command" +msgstr "¥úºÐ¹LÂo¾¹©R¥O" + +#: src/gripcfg.c:505 +#, fuzzy +msgid "Add ID3 tags to encoded files" +msgstr "¶ñ¤J ID3 ¼ÐÅÒ¨ì MP3 ÀÉ®×" + +#: src/gripcfg.c:511 +#, fuzzy +msgid "Add ID3v2 tags to encoded files" +msgstr "¶ñ¤J ID3v2 ¼ÐÅÒ¨ì MP3 ÀÉ®×" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "ID3 µùÄÀ¸ê°T" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "" + +#: src/gripcfg.c:532 +#, fuzzy +msgid "ID3v2 Character set encoding" +msgstr "½s½X«á§R°£ .wav ÀÉ®×" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "¼ÐÅÒ" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "¸ê®Æ®w¦øªA¾¹" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "CGI ¸ô®|" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "¥D¦øªA¾¹" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "¦¸¦øªA¾¹" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "DB ´£¥æ¹q¤l¶l¥ó" + +#: src/gripcfg.c:603 +#, fuzzy +msgid "DB Character set encoding" +msgstr "½s½X«á§R°£ .wav ÀÉ®×" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "¨Ï¥Î FreeDB ÂX®i" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "¦Û°Ê¶i¦æ¥úºÐ¬d¸ß" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "CD¸ê®Æ®w" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "¨Ï¥Î¥N²z¦øªA¾¹" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "±q 'http_proxy' Àô¹ÒÅܼƫü©w¥N²z¦øªA¾¹" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "¥N²z¦øªA¾¹" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "¥N²z¦øªA¾¹³s±µ°ð" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "¥N²z¦øªA¾¹¨Ï¥ÎªÌ¦WºÙ" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "¥N²z¦øªA¾¹±K½X" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "¥N²z¦øªA¾¹" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "¹q¤l¶l¥ó" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "CD §ó·sµ{¦¡" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "¤£­n±NÀɮצWÂà´«¦¨¤p¼g¦r¥À" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "¤¹³\ÀɦW§t°ª 8 ¦ì¦r¤¸" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "¤£­n±NªÅ®æÂà´«¦¨©³½u" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" +"ÀɦW¤¤¤£¥h°£ªº¦r²Å\n" +" " + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "Âø¶µ" + +#: src/gripcfg.c:819 +#, fuzzy +msgid "Error: Unable to save ripper config." +msgstr "¿ù»~: µLªkÀx¦s³]©wÀÉ" + +#: src/gripcfg.c:890 +#, fuzzy +msgid "Error: Unable to save encoder config." +msgstr "¿ù»~: µLªkÀx¦s³]©wÀÉ" + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "ÅX°Ê¾¹ª¬ºA¬O %d\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "ÅX°Ê¾¹¤£¤ä´©ª¬ºAÀË´ú (°²©w CDS_NO_INFO)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "µL¥úºÐ\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "¿ù»~: Ū¨ú¥úºÐ¥Ø¿ý¥¢±Ñ\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "ÅX°Ê¾¹¤£¤ä«ùª¬ºAÀË´ú\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "¸ÑÂꥢ±Ñ: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "" + +#: src/cdplay.c:83 +#, fuzzy +msgid "Cannot do lookup while ripping." +msgstr "µLªk¦b§ì­y¹Lµ{¤¤¬d¸ß" + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "¥¼ª¾¥úºÐ" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "Track %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "¥¿¦b (³z¹L %2$s) ¦V %1$s ¬d¸ß¥úºÐ %3$02x¡C\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "¥¿¦b¦V %s ¬d¸ß¥úºÐ %02x¡C\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"¥¿¦b¤Ç°t \"%s / %s\"\n" +"¥¿¦b¤U¸ü¸ê®Æ...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "§¹¦¨\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "Àx¦s¥úºÐ¸ê®Æ¿ù»~\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "¤£¤Ç°t\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +#, fuzzy +msgid "Length" +msgstr "ªø«×" + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "¦±¥Ø" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "¦±¥Ø" + +#: src/cdplay.c:633 src/discedit.c:390 +#, fuzzy +msgid "Error saving disc data." +msgstr "Àx¦s¥úºÐ¸ê°T¿ù»~" + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "´`Àô¼½©ñ¼Ò¦¡" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "¤Á´«´`Àô¼½©ñ" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "§ì­yª¬ºA" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "¼½©ñ/¼È°±" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "­Ë°h" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "§Ö¶i" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "¤W¤@¦±" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "¤U¤@¦±" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "¤Á´«¼½©ñ¼Ò¦¡¿ï¶µ" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "¤U¤@¥úºÐ" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "°±¤î¼½©ñ" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "¼u¥X¥úºÐ" + +#: src/cdplay.c:962 +#, fuzzy +msgid "Scan Disc Contents" +msgstr "¥Ø¿ý" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "¤Á´«­µ¶q±±¨î" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "¤Á´«¥úºÐ½s¿è¾¹" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "ªì©l¤Æ/¨ú®ø¥úºÐ¬d¸ß" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "¤Á´«¦±¥ØÅã¥Ü" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Â÷¶} Grip" + +#: src/cdplay.c:1173 +#, fuzzy +msgid "Cannot fast forward while ripping." +msgstr "§ì­y¹Lµ{¤¤¤£¯à§Ö¶i" + +#: src/cdplay.c:1204 +#, fuzzy +msgid "Cannot rewind while ripping." +msgstr "§ì­y¹Lµ{¤¤¤£¯à­Ë°h" + +#: src/cdplay.c:1235 +#, fuzzy +msgid "Cannot switch discs while ripping." +msgstr "§ì­y¹Lµ{¤¤¤£¯à¤Á´«¥úºÐ" + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "¼u¥X¥úºÐ\n" + +#: src/cdplay.c:1257 +#, fuzzy +msgid "Cannot eject while ripping." +msgstr "¤£¯à¦b§ì­y¹Lµ{¤¤¼u¥X¥úºÐ" + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "¦³¥úºÐ¢w¢w¥¿¦b¼u¥X\n" + +#: src/cdplay.c:1334 +#, fuzzy +msgid "Cannot play while ripping." +msgstr "§ì­y¹Lµ{¤¤¤£¯à¼½©ñ" + +#: src/cdplay.c:1402 src/cdplay.c:1433 +#, fuzzy +msgid "Cannot switch tracks while ripping." +msgstr "§ì­y¹Lµ{¤¤¤£¯à§ïÅܦ±¥Ø" + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "¥¿¦bÀˬd·s¥úºÐ\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "CDStat µo²{¥úºÐ¡A¥¿¦bÀˬd¦±¥Ø\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "¥úºÐ¦³®Ä¡I\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "¨S¦³«D¹sªø«×ªº¦±¥Ø\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "CDStat »¡µL¥úºÐ\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "·í«e®°°Ï: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "µL¥úºÐ" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"¦¹¥úºÐ¸ê°T¦b¦¸¦øªA¾¹¤¤§ä¨ì¡A\n" +"¦ý¬O¨S¦³¦b¥D¦øªA¾¹¤¤§ä¨ì¡C\n" +"\n" +"±z¬O§_·Q´£¥æ¦¹¥úºÐ¸ê°T¡H" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +#, fuzzy +msgid "Error: Unable to create temporary file." +msgstr "¿ù»~: µLªk«Ø¥ß¼È¦sÀÉ" + +#: src/cdplay.c:1947 +#, fuzzy +msgid "Error: Unable to write disc data." +msgstr "¿ù»~: µLªk¼g¤J¥úºÐ¸ê®Æ" + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "µo°e¶l¥ó¨ì %s\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "¨t²Î®ø®§" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "URI ¬O %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "¬d¸ß¬O [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "ª¬ºA¿ù»~ %d ¦b %s\n" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "«Ø¥ß¥Ø¿ý %s\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "¿ù»~: %s ¤w¸g¦s¦b¡A¦ý«o¬O¤@­ÓÀÉ®×\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "¿ù»~: µLªk¶}±Ò %s ¶i¦æ¼g¤J\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "¥úºÐ¼ÐÃD" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "­µ­y¦±¦W" + +#: src/discedit.c:84 +msgid "W" +msgstr "" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "¥úºÐ§@ªÌ" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "ID3 Ãþ§O:" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "¥X«~¤é´Á" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "¦±¥Ø§@ªÌ" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "¤À³Î:" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "¼ÐÃD/§@ªÌ" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "§@ªÌ/¼ÐÃD" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "¤À³Î²Å" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "¦h§@ªÌ" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "Àx¦s¥úºÐ¸ê°T" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "´£¥æ¥úºÐ¸ê°T" + +#: src/discedit.c:393 +#, fuzzy +msgid "No disc present." +msgstr "¨S¦³¥úºÐ" + +#: src/discedit.c:543 +#, fuzzy +msgid "Cannot submit. No disc is present." +msgstr "" +"¤£¯à´£¥æ\n" +"¨S¦³¥úºÐ" + +#: src/discedit.c:558 +#, fuzzy +msgid "You must enter a disc title." +msgstr "±z¥²¶·¿é¤J¥úºÐ¼ÐÃD" + +#: src/discedit.c:565 +#, fuzzy +msgid "You must enter a disc artist." +msgstr "±z¥²¶·¿é¤J¤@­Ó§@ªÌ" + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "¿ï¾ÜÃþ§O" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"±z»Ý­n«ü©w¨ãÅ骺­µ¼ÖÃþ§O\n" +"½Ð±q¤U¦C¿ï¾Ü¤@­Ó DiscDB Ãþ§O" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "DiscDB Ãþ§O" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "´£¥æ" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "¨ú®ø" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "¥¼ª¾ªº ID3 °ì\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "¿ù»~: µLªkÂà´«ÀɦW¡CµL¦¹¨Ï¥ÎªÌ %s\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "°õ¦æ¥¢±Ñ\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "¿ù»~: Ãaªº¶µ¥ØÃþ«¬\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "¿ù»~: µL®Äªº³]©wÀÉ\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "§ì­y«á½s½X" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "§ì­y©M½s½X¿ï¤¤ªº¦±¥Ø" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "¥u§ì­y" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "¥u§ì­y¤£½s½X" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "°±¤î§ì­y©M½s½X" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "±þ±¼©Ò¦³§ì­y©M½s½X¶iµ{" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "¥u¨ú®ø§ì­y" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "±þ±¼§ì­y¶iµ{" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "DDJ ±½´y" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "§â¥úºÐ¸ê°T´¡¤J DigitalDJ ¸ê®Æ®w" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "§ì¨ú³¡¤À­µ­y" + +#: src/rip.c:166 +msgid "Play" +msgstr "¼½©ñ" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "¥Ø«e®°°Ï: 0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "§ì­y: ¶¢¸m" + +#: src/rip.c:209 +#, fuzzy +msgid "Enc: Trk 99 (99.9x)" +msgstr "½s½X: ¦±¥Ø 99 (99.9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +#, fuzzy +msgid "Enc: Idle" +msgstr "½s½X: ¶¢¸m" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "°_©l®°°Ï" + +#: src/rip.c:332 +msgid "End sector" +msgstr "²×¤î®°°Ï" + +#: src/rip.c:380 +#, fuzzy, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "§â¸ê°T´¡¤J SQL ¸ê®Æ®w" + +#: src/rip.c:602 +#, fuzzy +msgid "Error: can't open m3u file." +msgstr "¿ù»~: ¤£¯à¶}±Ò m3u ÀÉ®×\n" + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "§ì­y: ¦±¥Ø %d (%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "§¹¦¨§ì­y\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "¤U¤@­º¬O %d¡AÁ`¦@ %d ­º\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "Àˬd¬O§_»Ý­n§ì¨ú¨ä¥L¦±¥Ø\n" + +#: src/rip.c:955 +#, fuzzy, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "½s½X: ¦±¥Ø %d (%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "§¹¦¨½s½X¦b³B²z¾¹ %d\n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "¥¿¦b§R°£ [%s]\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "§ì­y§¹¦¨\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "µL§@ªÌ" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "µL¼ÐÃD" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" + +#: src/rip.c:1287 +#, fuzzy +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" +"µL®Äªº§ì­yµ{¦¡\n" +"½ÐÀˬd§Aªº§ì­y¾¹³]©w" + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"¨S¦³¿ï¾Ü¦±¥Ø¡C\n" +"§ì¨ú¾ã¤ù¥úºÐ¶Ü¡H\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "¥¿¦b§ì¨ú¾ã¤ù¥úºÐ\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "¦b§ì¨ú¤U¤@­y\n" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "²Ä¤@­ÓÀˬdªº¦±¥Ø¬O %d\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "¨S¦³¼g¤J wav ÀɮתºÅv­­" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "¥¿¦b§ì¨ú¦±¥Ø %d ¨ì %s\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "§ì­y: ¦±¥Ø %d (0.0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "ÀÉ®× %s ¤w¸g§ì¹L¡C¸õ¹L...\n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "¿é¥X¥Ø¿ýªÅ¶¡¤£¨¬" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "©I¥s CDPRip\n" + +#: src/rip.c:1655 +#, fuzzy, c-format +msgid "Added track %d to %s list\n" +msgstr "²K¥[¦±¥Ø %d ¨ì½s½X¶¤¦C\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "¨S¦³¶¢¸mªº³B²z¾¹\n" + +#: src/rip.c:1697 +#, fuzzy, c-format +msgid "Enc track %d\n" +msgstr "MP3 ¦±¥Ø %d\n" + +#: src/rip.c:1719 +#, fuzzy +msgid "No write access to write encoded file." +msgstr "¨S¦³¼g¤J mp3 ÀɮתºÅv­­" + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "%i: ½s½X¨ì %s\n" + +#: src/rip.c:1734 +#, fuzzy, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "§ì­y: ¦±¥Ø %d (0.0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "" + +#~ msgid "" +#~ "Invalid rip executable\n" +#~ "Check your rip config" +#~ msgstr "" +#~ "µL®Äªº§ì­yµ{¦¡\n" +#~ "½ÐÀˬd§Aªº§ì­y¾¹³]©w" + +#~ msgid "Keep application minimum size" +#~ msgstr "«O«ùÀ³¥Îµ{¦¡µøµ¡³Ì¤p¤Ø¤o" + +#~ msgid "Reply is [%s]\n" +#~ msgstr "¦^ÂЬO [%s]\n" + +#, fuzzy +#~ msgid "File System Character set encoding" +#~ msgstr "½s½X«á§R°£ .wav ÀÉ®×" + +#~ msgid "Could not parse geometry string `%s'" +#~ msgstr "µLªk¸ÑªR´X¦óÄݩʦr¦ê¡¥%s¡¦" + +#~ msgid "Aborted\n" +#~ msgstr "¨ú®ø\n" + +#~ msgid "Exit GCD" +#~ msgstr "Â÷¶} GCD" + +#~ msgid "MP3 file format" +#~ msgstr "MP3 Àɮ׮榡" + +#~ msgid "MP3 'nice' value" +#~ msgstr "½s½X¾¹ 'nice' Àu¥ý¯Å" + +#~ msgid "MP3 filter command" +#~ msgstr "MP3 ¹LÂo¾¹©R¥O" + +#~ msgid "MP3" +#~ msgstr "½s½X" + +#~ msgid "" +#~ "Invalid MP3 executable\n" +#~ "Check your MP3 config" +#~ msgstr "" +#~ "µL®Äªº½s½Xµ{¦¡\n" +#~ "½ÐÀˬd§Aªº½s½X¾¹³]©w" + +#~ msgid "MP3: Trk %d (0.0x)" +#~ msgstr "½s½X: ¦±¥Ø %d (0.0x)" diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo new file mode 100644 index 0000000..3ba424f Binary files /dev/null and b/po/zh_TW.gmo differ diff --git a/po/zh_TW.po b/po/zh_TW.po new file mode 100644 index 0000000..45627cf --- /dev/null +++ b/po/zh_TW.po @@ -0,0 +1,1291 @@ +# Chinese (traditional) translation for Grip +# Copyright (C) 2002 Free Software Foundation, Inc. +# Merlin Ma , 2002. +# Anthony Fok , 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: grip 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-06-25 11:23-0700\n" +"PO-Revision-Date: 2002-04-25 18:30+0800\n" +"Last-Translator: Anthony Fok \n" +"Language-Team: Chinese (traditional) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=big5\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/main.c:56 +msgid "Specify the geometry of the main window" +msgstr "«ü©w¥Dµøµ¡ªº¦ì¸m´X¦óÄÝ©Ê" + +#: src/main.c:57 +msgid "GEOMETRY" +msgstr "´X¦óÄÝ©Ê" + +#: src/main.c:65 +#, fuzzy +msgid "Specify the config file to use (in your home dir)" +msgstr "«ü©w­n¨Ï¥Îªº CDROM ¸Ë¸m" + +#: src/main.c:66 +msgid "CONFIG" +msgstr "" + +#: src/main.c:74 +msgid "Specify the cdrom device to use" +msgstr "«ü©w­n¨Ï¥Îªº CDROM ¸Ë¸m" + +#: src/main.c:75 src/main.c:84 +msgid "DEVICE" +msgstr "¸Ë¸m" + +#: src/main.c:83 +msgid "Specify the generic scsi device to use" +msgstr "«ü©w­n¨Ï¥Îªº³q¥Î SCSI ¸Ë¸m" + +#: src/main.c:92 +msgid "Launch in \"small\" (cd-only) mode" +msgstr "¥H¡u¤p«¬¡v (CD-only) ¼Ò¦¡±Ò°Ê" + +#: src/main.c:101 +msgid "\"Local\" mode -- do not look up disc info on the net" +msgstr "¥H¡u¥»¦a¡v¼Ò¦¡¢w¢w¤£¤Wºô¸ô¬d¸ß¸ê°T" + +#: src/main.c:110 +msgid "Do not do I/O redirection" +msgstr "¤£°µ I/O ­«©w¦V" + +#: src/main.c:119 +msgid "Run in verbose (debug) mode" +msgstr "¥H°£¿ù¼Ò¦¡°õ¦æ" + +#: src/grip.c:181 +msgid "Grip" +msgstr "Grip" + +#: src/grip.c:238 +#, c-format +msgid "Error: Unable to initialize [%s]\n" +msgstr "¿ù»~: µLªkªì©l¤Æ [%s]\n" + +#: src/grip.c:324 +msgid "" +"This is a development version of Grip. If you encounter problems, you are " +"encouraged to revert to the latest stable version." +msgstr "" + +#: src/grip.c:330 +msgid "Grip started successfully\n" +msgstr "" + +#: src/grip.c:344 +msgid "" +"Work is in progress.\n" +"Really shut down?" +msgstr "" +"¥¿¦b¤u§@¤¤¡C\n" +"¯uªº­nÃö³¬¶Ü¡H" + +#: src/grip.c:395 +#, fuzzy +msgid "Status" +msgstr "§ì­yª¬ºA" + +#: src/grip.c:410 +msgid "General" +msgstr "" + +#: src/grip.c:425 src/gripcfg.c:362 src/cdplay.c:251 src/cdplay.c:345 +#: src/rip.c:95 +msgid "Rip" +msgstr "§ì­y" + +#: src/grip.c:440 src/gripcfg.c:496 +#, fuzzy +msgid "Encode" +msgstr "½s½X¾¹" + +#: src/grip.c:485 +msgid "Help" +msgstr "»¡©ú" + +#: src/grip.c:490 +msgid "Table Of Contents" +msgstr "¥Ø¿ý" + +#: src/grip.c:496 +msgid "Playing CDs" +msgstr "¼½©ñ CD" + +#: src/grip.c:502 +msgid "Ripping CDs" +msgstr "CD §ì­y" + +#: src/grip.c:508 +msgid "Configuring Grip" +msgstr "³]©w Grip" + +#: src/grip.c:514 +msgid "FAQ" +msgstr "±`¨£°ÝÃD¸Ñµª" + +#: src/grip.c:520 +msgid "Getting More Help" +msgstr "¨ú±o§ó¦h»²§U" + +#: src/grip.c:526 +msgid "Reporting Bugs" +msgstr "³ø§i¿ù»~" + +#: src/grip.c:546 +msgid "About" +msgstr "Ãö©ó" + +#: src/grip.c:565 +#, c-format +msgid "Version %s" +msgstr "" + +#: src/grip.c:905 +msgid "Created by Grip" +msgstr "" + +#: src/grip.c:922 +#, fuzzy +msgid "" +"Your config file is out of date -- resetting to defaults.\n" +"You will need to re-configure Grip.\n" +"Your old config file has been saved with -old appended." +msgstr "" +"±zªº³]©wÀɤw¸g¹L´Á¢w¢w­«·s³]©w¬°¹w³]­È¡C\n" +"±z¥i¯à»Ý­n­«·s³]©w Grip¡C\n" +"ªº³]©wÀɤw¸g³QÀx¦s¬° ~/.grip-old¡C" + +#: src/grip.c:995 +#, c-format +msgid "server is %s, port %d\n" +msgstr "¦øªA¾¹¬O %s¡A³s±µ°ð %d\n" + +#: src/grip.c:1016 +#, fuzzy +msgid "Error: Unable to save config file." +msgstr "¿ù»~: µLªkÀx¦s³]©wÀÉ" + +#: src/gripcfg.c:105 +msgid "Config" +msgstr "³]©w" + +#: src/gripcfg.c:113 +msgid "CDRom device" +msgstr "CDROM ¸Ë¸m" + +#: src/gripcfg.c:118 +msgid "Don't interrupt playback on exit/startup" +msgstr "Â÷¶}©Î±Ò°Êªº®É­Ô¤£¤¤Â_¼½©ñ" + +#: src/gripcfg.c:122 +msgid "Rewind when stopped" +msgstr "°±¤î®É«á°h¨ì¦±­º" + +#: src/gripcfg.c:127 +msgid "Startup with first track if not playing" +msgstr "¦pªG¨S¦³¶}©l¼½©ñ«h±q²Ä¤@­º¶}©l" + +#: src/gripcfg.c:132 +msgid "Auto-play on disc insert" +msgstr "CD ´¡¤J®É¦Û°Ê¼½©ñ" + +#: src/gripcfg.c:137 +msgid "Reshuffle before each playback" +msgstr "¨C¦¸¼½©ñ«e­«·s¥´¶Ã¼½©ñ¦¸§Ç" + +#: src/gripcfg.c:142 +msgid "Work around faulty eject" +msgstr "­×¥¿¿ù»~ªº¼u¥X" + +#: src/gripcfg.c:147 +msgid "Poll disc drive for new disc" +msgstr "" + +#: src/gripcfg.c:151 +msgid "Poll interval (seconds)" +msgstr "" + +#: src/gripcfg.c:159 +msgid "CD" +msgstr "¥úºÐ" + +#: src/gripcfg.c:175 +msgid "Ripper:" +msgstr "§ì­y¤u¨ã:" + +#: src/gripcfg.c:220 +msgid "Ripping executable" +msgstr "§ì­yµ{¦¡" + +#: src/gripcfg.c:225 +msgid "Rip command-line" +msgstr "§ì­y¾¹°õ¦æ°Ñ¼Æ" + +#: src/gripcfg.c:236 +msgid "Disable paranoia" +msgstr "°±¥Î paranoia" + +#: src/gripcfg.c:241 +msgid "Disable extra paranoia" +msgstr "°±¥Î¥~³¡ paranoia" + +#: src/gripcfg.c:247 +msgid "Disable scratch" +msgstr "°±¥ÎÀ¿²ª" + +#: src/gripcfg.c:251 +msgid "detection" +msgstr "°»´ú" + +#: src/gripcfg.c:255 +msgid "repair" +msgstr "­×´_" + +#: src/gripcfg.c:263 +msgid "Calculate gain adjustment" +msgstr "­pºâ¼W¯q½Õ¾ã" + +#: src/gripcfg.c:271 +msgid "Rip file format" +msgstr "§ì­yÀɮ׮榡" + +#: src/gripcfg.c:275 +msgid "Generic SCSI device" +msgstr "³q¥Î SCSI ¸Ë¸m" + +#: src/gripcfg.c:283 +msgid "Ripper" +msgstr "§ì­y¤u¨ã" + +#: src/gripcfg.c:292 +msgid "Rip 'nice' value" +msgstr "§ì­y 'nice' Àu¥ý­È" + +#: src/gripcfg.c:296 +msgid "Max non-encoded .wav's" +msgstr "³Ì¤j«Ý½s½Xªº .wav ÀÉ®×¼Æ" + +#: src/gripcfg.c:302 +msgid "Auto-rip on insert" +msgstr "¥úºÐ´¡¤J¦Û°Ê§ì­y" + +#: src/gripcfg.c:306 +msgid "Beep after rip" +msgstr "§ì­y§¹¦¨«áÅT¹a" + +#: src/gripcfg.c:316 +msgid "Auto-eject after rip" +msgstr "§ì­y§¹¦¨«á¦Û°Ê¼u¥X¥úºÐ" + +#: src/gripcfg.c:320 +msgid "Auto-eject delay" +msgstr "¦Û°Ê¼u¥X©µ¿ð" + +#: src/gripcfg.c:328 +msgid "Delay before ripping" +msgstr "" + +#: src/gripcfg.c:333 +msgid "Delay encoding until disc is ripped" +msgstr "" + +#: src/gripcfg.c:338 +msgid "Stop cdrom drive between tracks" +msgstr "" + +#: src/gripcfg.c:342 +msgid "Wav filter command" +msgstr "WAV ¹LÂo¾¹©R¥O" + +#: src/gripcfg.c:347 +msgid "Disc filter command" +msgstr "¥úºÐ¹LÂo¾¹©R¥O" + +#: src/gripcfg.c:355 src/gripcfg.c:489 +msgid "Options" +msgstr "¿ï¶µ" + +#: src/gripcfg.c:377 +msgid "Encoder:" +msgstr "½s½X¾¹:" + +#: src/gripcfg.c:412 +#, fuzzy +msgid "Encoder executable" +msgstr "½s½X¾¹µ{¦¡" + +#: src/gripcfg.c:417 +#, fuzzy +msgid "Encoder command-line" +msgstr "½s½X¾¹°õ¦æ°Ñ¼Æ" + +#: src/gripcfg.c:423 +#, fuzzy +msgid "Encode file extension" +msgstr "§ì­yÀɮ׮榡" + +#: src/gripcfg.c:428 +#, fuzzy +msgid "Encode file format" +msgstr "§ì­yÀɮ׮榡" + +#: src/gripcfg.c:436 +msgid "Encoder" +msgstr "½s½X¾¹" + +#: src/gripcfg.c:446 +msgid "Delete .wav after encoding" +msgstr "½s½X«á§R°£ .wav ÀÉ®×" + +#: src/gripcfg.c:451 +msgid "Insert info into SQL database" +msgstr "§â¸ê°T´¡¤J SQL ¸ê®Æ®w" + +#: src/gripcfg.c:455 +msgid "Create .m3u files" +msgstr "«Ø¥ß .m3u ÀÉ®×" + +#: src/gripcfg.c:460 +msgid "Use relative paths in .m3u files" +msgstr "¦b .m3u Àɮפ¤¨Ï¥Î¬Û¹ï¸ô®|" + +#: src/gripcfg.c:464 +msgid "M3U file format" +msgstr "M3U Àɮ׮榡" + +#: src/gripcfg.c:469 +msgid "Encoding bitrate (kbits/sec)" +msgstr "½s½X¦ì¤¸²v (kbits/sec)" + +#: src/gripcfg.c:473 +msgid "Number of CPUs to use" +msgstr "CPU ¨Ï¥Î¼Æ¥Ø" + +#: src/gripcfg.c:477 +#, fuzzy +msgid "Encode 'nice' value" +msgstr "§ì­y 'nice' Àu¥ý­È" + +#: src/gripcfg.c:481 +#, fuzzy +msgid "Encode filter command" +msgstr "¥úºÐ¹LÂo¾¹©R¥O" + +#: src/gripcfg.c:505 +#, fuzzy +msgid "Add ID3 tags to encoded files" +msgstr "¶ñ¤J ID3 ¼ÐÅÒ¨ì MP3 ÀÉ®×" + +#: src/gripcfg.c:511 +#, fuzzy +msgid "Add ID3v2 tags to encoded files" +msgstr "¶ñ¤J ID3v2 ¼ÐÅÒ¨ì MP3 ÀÉ®×" + +#: src/gripcfg.c:517 +msgid "Only tag files ending in '.mp3'" +msgstr "" + +#: src/gripcfg.c:521 +msgid "ID3 comment field" +msgstr "ID3 µùÄÀ¸ê°T" + +#: src/gripcfg.c:526 +msgid "ID3v1 Character set encoding" +msgstr "" + +#: src/gripcfg.c:532 +#, fuzzy +msgid "ID3v2 Character set encoding" +msgstr "½s½X«á§R°£ .wav ÀÉ®×" + +#: src/gripcfg.c:540 +msgid "ID3" +msgstr "¼ÐÅÒ" + +#: src/gripcfg.c:557 src/gripcfg.c:577 +msgid "DB server" +msgstr "¸ê®Æ®w¦øªA¾¹" + +#: src/gripcfg.c:561 src/gripcfg.c:581 +msgid "CGI path" +msgstr "CGI ¸ô®|" + +#: src/gripcfg.c:568 +msgid "Primary Server" +msgstr "¥D¦øªA¾¹" + +#: src/gripcfg.c:588 +msgid "Secondary Server" +msgstr "¦¸¦øªA¾¹" + +#: src/gripcfg.c:598 +msgid "DB Submit email" +msgstr "DB ´£¥æ¹q¤l¶l¥ó" + +#: src/gripcfg.c:603 +#, fuzzy +msgid "DB Character set encoding" +msgstr "½s½X«á§R°£ .wav ÀÉ®×" + +#: src/gripcfg.c:608 +msgid "Use freedb extensions" +msgstr "¨Ï¥Î FreeDB ÂX®i" + +#: src/gripcfg.c:613 +msgid "Perform disc lookups automatically" +msgstr "¦Û°Ê¶i¦æ¥úºÐ¬d¸ß" + +#: src/gripcfg.c:621 +msgid "DiscDB" +msgstr "CD¸ê®Æ®w" + +#: src/gripcfg.c:630 +msgid "Use proxy server" +msgstr "¨Ï¥Î¥N²z¦øªA¾¹" + +#: src/gripcfg.c:637 +msgid "Get server from 'http_proxy' env. var" +msgstr "±q 'http_proxy' Àô¹ÒÅܼƫü©w¥N²z¦øªA¾¹" + +#: src/gripcfg.c:641 +msgid "Proxy server" +msgstr "¥N²z¦øªA¾¹" + +#: src/gripcfg.c:645 +msgid "Proxy port" +msgstr "¥N²z¦øªA¾¹³s±µ°ð" + +#: src/gripcfg.c:649 +msgid "Proxy username" +msgstr "¥N²z¦øªA¾¹¨Ï¥ÎªÌ¦WºÙ" + +#: src/gripcfg.c:655 +msgid "Proxy password" +msgstr "¥N²z¦øªA¾¹±K½X" + +#: src/gripcfg.c:663 +msgid "Proxy" +msgstr "¥N²z¦øªA¾¹" + +#: src/gripcfg.c:672 +msgid "Email address" +msgstr "¹q¤l¶l¥ó" + +#: src/gripcfg.c:676 +msgid "CD update program" +msgstr "CD §ó·sµ{¦¡" + +#: src/gripcfg.c:681 +msgid "Do not lowercase filenames" +msgstr "¤£­n±NÀɮצWÂà´«¦¨¤p¼g¦r¥À" + +#: src/gripcfg.c:686 +msgid "Allow high bits in filenames" +msgstr "¤¹³\ÀɦW§t°ª 8 ¦ì¦r¤¸" + +#: src/gripcfg.c:691 +msgid "Replace incompatible characters by hexadecimal numbers" +msgstr "" + +#: src/gripcfg.c:696 +msgid "Do not change spaces to underscores" +msgstr "¤£­n±NªÅ®æÂà´«¦¨©³½u" + +#: src/gripcfg.c:701 +msgid "" +"Characters to not strip\n" +"in filenames" +msgstr "" +"ÀɦW¤¤¤£¥h°£ªº¦r²Å\n" +" " + +#: src/gripcfg.c:706 +msgid "Show tray icon" +msgstr "" + +#: src/gripcfg.c:713 +msgid "Misc" +msgstr "Âø¶µ" + +#: src/gripcfg.c:819 +#, fuzzy +msgid "Error: Unable to save ripper config." +msgstr "¿ù»~: µLªkÀx¦s³]©wÀÉ" + +#: src/gripcfg.c:890 +#, fuzzy +msgid "Error: Unable to save encoder config." +msgstr "¿ù»~: µLªkÀx¦s³]©wÀÉ" + +#: src/cddev.c:174 src/cddev.c:601 +#, c-format +msgid "Drive status is %d\n" +msgstr "ÅX°Ê¾¹ª¬ºA¬O %d\n" + +#: src/cddev.c:176 +msgid "Drive doesn't support drive status check (assume CDS_NO_INFO)\n" +msgstr "ÅX°Ê¾¹¤£¤ä´©ª¬ºAÀË´ú (°²©w CDS_NO_INFO)\n" + +#: src/cddev.c:179 +msgid "No disc\n" +msgstr "µL¥úºÐ\n" + +#: src/cddev.c:281 src/cddev.c:290 src/cddev.c:307 src/cddev.c:334 +msgid "Error: Failed to read disc contents\n" +msgstr "¿ù»~: Ū¨ú¥úºÐ¥Ø¿ý¥¢±Ñ\n" + +#: src/cddev.c:604 +msgid "Drive doesn't support drive status check\n" +msgstr "ÅX°Ê¾¹¤£¤ä«ùª¬ºAÀË´ú\n" + +#: src/cddev.c:625 src/cddev.c:629 +#, c-format +msgid "Unlock failed: %d" +msgstr "¸ÑÂꥢ±Ñ: %d" + +#: src/cddev.c:633 +msgid "CDIOCEJECT" +msgstr "" + +#: src/cdplay.c:83 +#, fuzzy +msgid "Cannot do lookup while ripping." +msgstr "µLªk¦b§ì­y¹Lµ{¤¤¬d¸ß" + +#. "misc" +#: src/cdplay.c:120 +msgid "Unknown Disc" +msgstr "¥¼ª¾¥úºÐ" + +#: src/cdplay.c:124 +#, c-format +msgid "Track %02d" +msgstr "Track %02d" + +#: src/cdplay.c:184 +#, c-format +msgid "Querying %s (through %s) for disc %02x.\n" +msgstr "¥¿¦b (³z¹L %2$s) ¦V %1$s ¬d¸ß¥úºÐ %3$02x¡C\n" + +#: src/cdplay.c:189 +#, c-format +msgid "Querying %s for disc %02x.\n" +msgstr "¥¿¦b¦V %s ¬d¸ß¥úºÐ %02x¡C\n" + +#: src/cdplay.c:206 +#, c-format +msgid "" +"Match for \"%s / %s\"\n" +"Downloading data...\n" +msgstr "" +"¥¿¦b¤Ç°t \"%s / %s\"\n" +"¥¿¦b¤U¸ü¸ê®Æ...\n" + +#: src/cdplay.c:214 +msgid "Done\n" +msgstr "§¹¦¨\n" + +#: src/cdplay.c:218 +msgid "Error saving disc data\n" +msgstr "Àx¦s¥úºÐ¸ê®Æ¿ù»~\n" + +#: src/cdplay.c:224 +msgid "No match\n" +msgstr "¤£¤Ç°t\n" + +#: src/cdplay.c:242 src/cdplay.c:334 +#, fuzzy +msgid "Length" +msgstr "ªø«×" + +#: src/cdplay.c:299 +msgid "Tracks" +msgstr "¦±¥Ø" + +#: src/cdplay.c:323 +msgid "Track" +msgstr "¦±¥Ø" + +#: src/cdplay.c:633 src/discedit.c:390 +#, fuzzy +msgid "Error saving disc data." +msgstr "Àx¦s¥úºÐ¸ê°T¿ù»~" + +#: src/cdplay.c:704 +msgid "Rotate play mode" +msgstr "´`Àô¼½©ñ¼Ò¦¡" + +#: src/cdplay.c:724 +msgid "Toggle loop play" +msgstr "¤Á´«´`Àô¼½©ñ" + +#: src/cdplay.c:802 src/rip.c:230 +msgid "Rip status" +msgstr "§ì­yª¬ºA" + +#: src/cdplay.c:869 +msgid "Play track / Pause play" +msgstr "¼½©ñ/¼È°±" + +#: src/cdplay.c:880 +msgid "Rewind" +msgstr "­Ë°h" + +#: src/cdplay.c:891 +msgid "FastForward" +msgstr "§Ö¶i" + +#: src/cdplay.c:901 +msgid "Go to previous track" +msgstr "¤W¤@¦±" + +#: src/cdplay.c:910 +msgid "Go to next track" +msgstr "¤U¤@¦±" + +#: src/cdplay.c:919 +msgid "Toggle play mode options" +msgstr "¤Á´«¼½©ñ¼Ò¦¡¿ï¶µ" + +#: src/cdplay.c:929 +msgid "Next Disc" +msgstr "¤U¤@¥úºÐ" + +#: src/cdplay.c:943 +msgid "Stop play" +msgstr "°±¤î¼½©ñ" + +#: src/cdplay.c:953 +msgid "Eject disc" +msgstr "¼u¥X¥úºÐ" + +#: src/cdplay.c:962 +#, fuzzy +msgid "Scan Disc Contents" +msgstr "¥Ø¿ý" + +#: src/cdplay.c:970 +msgid "Toggle Volume Control" +msgstr "¤Á´«­µ¶q±±¨î" + +#: src/cdplay.c:979 +msgid "Toggle disc editor" +msgstr "¤Á´«¥úºÐ½s¿è¾¹" + +#: src/cdplay.c:989 +msgid "Initiate/abort DiscDB lookup" +msgstr "ªì©l¤Æ/¨ú®ø¥úºÐ¬d¸ß" + +#: src/cdplay.c:999 +msgid "Toggle track display" +msgstr "¤Á´«¦±¥ØÅã¥Ü" + +#: src/cdplay.c:1006 +msgid "Exit Grip" +msgstr "Â÷¶} Grip" + +#: src/cdplay.c:1173 +#, fuzzy +msgid "Cannot fast forward while ripping." +msgstr "§ì­y¹Lµ{¤¤¤£¯à§Ö¶i" + +#: src/cdplay.c:1204 +#, fuzzy +msgid "Cannot rewind while ripping." +msgstr "§ì­y¹Lµ{¤¤¤£¯à­Ë°h" + +#: src/cdplay.c:1235 +#, fuzzy +msgid "Cannot switch discs while ripping." +msgstr "§ì­y¹Lµ{¤¤¤£¯à¤Á´«¥úºÐ" + +#: src/cdplay.c:1253 +msgid "Eject disc\n" +msgstr "¼u¥X¥úºÐ\n" + +#: src/cdplay.c:1257 +#, fuzzy +msgid "Cannot eject while ripping." +msgstr "¤£¯à¦b§ì­y¹Lµ{¤¤¼u¥X¥úºÐ" + +#: src/cdplay.c:1267 +msgid "Have disc -- ejecting\n" +msgstr "¦³¥úºÐ¢w¢w¥¿¦b¼u¥X\n" + +#: src/cdplay.c:1334 +#, fuzzy +msgid "Cannot play while ripping." +msgstr "§ì­y¹Lµ{¤¤¤£¯à¼½©ñ" + +#: src/cdplay.c:1402 src/cdplay.c:1433 +#, fuzzy +msgid "Cannot switch tracks while ripping." +msgstr "§ì­y¹Lµ{¤¤¤£¯à§ïÅܦ±¥Ø" + +#: src/cdplay.c:1524 +msgid "Checking for a new disc\n" +msgstr "¥¿¦bÀˬd·s¥úºÐ\n" + +#: src/cdplay.c:1529 +msgid "CDStat found a disc, checking tracks\n" +msgstr "CDStat µo²{¥úºÐ¡A¥¿¦bÀˬd¦±¥Ø\n" + +#: src/cdplay.c:1532 +msgid "We have a valid disc!\n" +msgstr "¥úºÐ¦³®Ä¡I\n" + +#: src/cdplay.c:1559 +msgid "No non-zero length tracks\n" +msgstr "¨S¦³«D¹sªø«×ªº¦±¥Ø\n" + +#: src/cdplay.c:1568 +msgid "CDStat said no disc\n" +msgstr "CDStat »¡µL¥úºÐ\n" + +#: src/cdplay.c:1717 src/cdplay.c:1739 +#, c-format +msgid "Current sector: %6d" +msgstr "·í«e®°°Ï: %6d" + +#: src/cdplay.c:1840 +msgid "No Disc" +msgstr "µL¥úºÐ" + +#: src/cdplay.c:1892 +msgid "" +"This disc has been found on your secondary server,\n" +"but not on your primary server.\n" +"\n" +"Do you wish to submit this disc information?" +msgstr "" +"¦¹¥úºÐ¸ê°T¦b¦¸¦øªA¾¹¤¤§ä¨ì¡A\n" +"¦ý¬O¨S¦³¦b¥D¦øªA¾¹¤¤§ä¨ì¡C\n" +"\n" +"±z¬O§_·Q´£¥æ¦¹¥úºÐ¸ê°T¡H" + +#: src/cdplay.c:1920 src/cdplay.c:1929 +#, fuzzy +msgid "Error: Unable to create temporary file." +msgstr "¿ù»~: µLªk«Ø¥ß¼È¦sÀÉ" + +#: src/cdplay.c:1947 +#, fuzzy +msgid "Error: Unable to write disc data." +msgstr "¿ù»~: µLªk¼g¤J¥úºÐ¸ê®Æ" + +#: src/cdplay.c:1956 +#, c-format +msgid "Mailing entry to %s\n" +msgstr "µo°e¶l¥ó¨ì %s\n" + +#: src/dialog.c:44 +msgid "System Message" +msgstr "¨t²Î®ø®§" + +#: src/discdb.c:207 +#, c-format +msgid "URI is %s\n" +msgstr "URI ¬O %s\n" + +#: src/discdb.c:287 +#, c-format +msgid "Query is [%s]\n" +msgstr "¬d¸ß¬O [%s]\n" + +#: src/discdb.c:788 +#, c-format +msgid "Stat error %d on %s\n" +msgstr "ª¬ºA¿ù»~ %d ¦b %s\n" + +#: src/discdb.c:792 +#, c-format +msgid "Creating directory %s\n" +msgstr "«Ø¥ß¥Ø¿ý %s\n" + +#: src/discdb.c:797 +#, c-format +msgid "Error: %s exists, but is a file\n" +msgstr "¿ù»~: %s ¤w¸g¦s¦b¡A¦ý«o¬O¤@­ÓÀÉ®×\n" + +#: src/discdb.c:804 +#, c-format +msgid "Error: Unable to open %s for writing\n" +msgstr "¿ù»~: µLªk¶}±Ò %s ¶i¦æ¼g¤J\n" + +#: src/discedit.c:67 +msgid "Disc title" +msgstr "¥úºÐ¼ÐÃD" + +#: src/discedit.c:74 src/discedit.c:176 +msgid "Track name" +msgstr "­µ­y¦±¦W" + +#: src/discedit.c:84 +msgid "W" +msgstr "" + +#: src/discedit.c:110 +msgid "Disc artist" +msgstr "¥úºÐ§@ªÌ" + +#: src/discedit.c:127 +msgid "ID3 genre:" +msgstr "ID3 Ãþ§O:" + +#: src/discedit.c:158 +msgid "Disc year" +msgstr "¥X«~¤é´Á" + +#: src/discedit.c:196 +msgid "Track artist" +msgstr "¦±¥Ø§@ªÌ" + +#: src/discedit.c:213 +msgid "Split:" +msgstr "¤À³Î:" + +#: src/discedit.c:217 +msgid "Title/Artist" +msgstr "¼ÐÃD/§@ªÌ" + +#: src/discedit.c:224 +msgid "Artist/Title" +msgstr "§@ªÌ/¼ÐÃD" + +#: src/discedit.c:232 +msgid "Split chars" +msgstr "¤À³Î²Å" + +#: src/discedit.c:254 +msgid "Multi-artist" +msgstr "¦h§@ªÌ" + +#: src/discedit.c:265 +msgid "Save disc info" +msgstr "Àx¦s¥úºÐ¸ê°T" + +#: src/discedit.c:274 +msgid "Submit disc info" +msgstr "´£¥æ¥úºÐ¸ê°T" + +#: src/discedit.c:393 +#, fuzzy +msgid "No disc present." +msgstr "¨S¦³¥úºÐ" + +#: src/discedit.c:543 +#, fuzzy +msgid "Cannot submit. No disc is present." +msgstr "" +"¤£¯à´£¥æ\n" +"¨S¦³¥úºÐ" + +#: src/discedit.c:558 +#, fuzzy +msgid "You must enter a disc title." +msgstr "±z¥²¶·¿é¤J¥úºÐ¼ÐÃD" + +#: src/discedit.c:565 +#, fuzzy +msgid "You must enter a disc artist." +msgstr "±z¥²¶·¿é¤J¤@­Ó§@ªÌ" + +#: src/discedit.c:575 +msgid "" +"You are about to submit this disc information\n" +"to a commercial CDDB server, which will then\n" +"own the data that you submit. These servers make\n" +"a profit out of your effort. We suggest that you\n" +"support free servers instead.\n" +"\n" +"Continue?" +msgstr "" + +#: src/discedit.c:584 +msgid "" +"You are about to submit this\n" +"disc information via email.\n" +"\n" +"Continue?" +msgstr "" + +#: src/discedit.c:601 +msgid "Genre selection" +msgstr "¿ï¾ÜÃþ§O" + +#: src/discedit.c:605 +msgid "" +"Submission requires a genre other than 'unknown'\n" +"Please select a DiscDB genre below" +msgstr "" +"±z»Ý­n«ü©w¨ãÅ骺­µ¼ÖÃþ§O\n" +"½Ð±q¤U¦C¿ï¾Ü¤@­Ó DiscDB Ãþ§O" + +#: src/discedit.c:615 +msgid "DiscDB genre" +msgstr "DiscDB Ãþ§O" + +#: src/discedit.c:635 +msgid "Submit" +msgstr "´£¥æ" + +#: src/discedit.c:646 +msgid "Cancel" +msgstr "¨ú®ø" + +#. Doh! +#: src/id3.c:291 +msgid "unknown ID3 field\n" +msgstr "¥¼ª¾ªº ID3 °ì\n" + +#: src/launch.c:121 +#, c-format +msgid "Error: unable to translate filename. No such user as %s\n" +msgstr "¿ù»~: µLªkÂà´«ÀɦW¡CµL¦¹¨Ï¥ÎªÌ %s\n" + +#: src/launch.c:315 src/rip.c:1535 +msgid "Exec failed\n" +msgstr "°õ¦æ¥¢±Ñ\n" + +#: src/parsecfg.c:58 +msgid "Error: Bad entry type\n" +msgstr "¿ù»~: Ãaªº¶µ¥ØÃþ«¬\n" + +#: src/parsecfg.c:84 +msgid "Error: Invalid config file\n" +msgstr "¿ù»~: µL®Äªº³]©wÀÉ\n" + +#: src/rip.c:104 +msgid "Rip+Encode" +msgstr "§ì­y«á½s½X" + +#: src/rip.c:106 +msgid "Rip and encode selected tracks" +msgstr "§ì­y©M½s½X¿ï¤¤ªº¦±¥Ø" + +#: src/rip.c:112 +msgid "Rip Only" +msgstr "¥u§ì­y" + +#: src/rip.c:114 +msgid "Rip but do not encode selected tracks" +msgstr "¥u§ì­y¤£½s½X" + +#: src/rip.c:120 +msgid "Abort Rip and Encode" +msgstr "°±¤î§ì­y©M½s½X" + +#: src/rip.c:122 +msgid "Kill all active rip and encode processes" +msgstr "±þ±¼©Ò¦³§ì­y©M½s½X¶iµ{" + +#: src/rip.c:130 +msgid "Abort Ripping Only" +msgstr "¥u¨ú®ø§ì­y" + +#: src/rip.c:132 +msgid "Kill rip process" +msgstr "±þ±¼§ì­y¶iµ{" + +#: src/rip.c:138 +msgid "DDJ Scan" +msgstr "DDJ ±½´y" + +#: src/rip.c:140 +msgid "Insert disc information into the DigitalDJ database" +msgstr "§â¥úºÐ¸ê°T´¡¤J DigitalDJ ¸ê®Æ®w" + +#: src/rip.c:155 +msgid "Rip partial track" +msgstr "§ì¨ú³¡¤À­µ­y" + +#: src/rip.c:166 +msgid "Play" +msgstr "¼½©ñ" + +#: src/rip.c:173 +msgid "Current sector: 0" +msgstr "¥Ø«e®°°Ï: 0" + +#: src/rip.c:204 src/rip.c:221 src/rip.c:269 src/rip.c:862 src/rip.c:915 +#: src/rip.c:917 src/rip.c:1065 src/rip.c:1066 +msgid "Rip: Idle" +msgstr "§ì­y: ¶¢¸m" + +#: src/rip.c:209 +#, fuzzy +msgid "Enc: Trk 99 (99.9x)" +msgstr "½s½X: ¦±¥Ø 99 (99.9x)" + +#: src/rip.c:240 src/rip.c:282 src/rip.c:1036 src/rip.c:1050 +#, fuzzy +msgid "Enc: Idle" +msgstr "½s½X: ¶¢¸m" + +#: src/rip.c:264 +msgid "Overall indicators:" +msgstr "" + +#: src/rip.c:327 +msgid "Start sector" +msgstr "°_©l®°°Ï" + +#: src/rip.c:332 +msgid "End sector" +msgstr "²×¤î®°°Ï" + +#: src/rip.c:380 +#, fuzzy, c-format +msgid "Inserting track %d into the ddj database\n" +msgstr "§â¸ê°T´¡¤J SQL ¸ê®Æ®w" + +#: src/rip.c:602 +#, fuzzy +msgid "Error: can't open m3u file." +msgstr "¿ù»~: ¤£¯à¶}±Ò m3u ÀÉ®×\n" + +#: src/rip.c:644 +msgid "In KillRip\n" +msgstr "" + +#: src/rip.c:670 +#, c-format +msgid "Now total enc size is: %d\n" +msgstr "" + +#: src/rip.c:825 +#, c-format +msgid "Rip: Trk %d (%3.1fx)" +msgstr "§ì­y: ¦±¥Ø %d (%3.1fx)" + +#: src/rip.c:858 +#, c-format +msgid "Rip: %6.2f%%" +msgstr "" + +#: src/rip.c:878 +msgid "Rip finished\n" +msgstr "§¹¦¨§ì­y\n" + +#: src/rip.c:904 +#, c-format +msgid "Rip partial %d num wavs %d\n" +msgstr "" + +#: src/rip.c:907 +#, c-format +msgid "Next track is %d, total is %d\n" +msgstr "¤U¤@­º¬O %d¡AÁ`¦@ %d ­º\n" + +#: src/rip.c:913 +msgid "Check if we need to rip another track\n" +msgstr "Àˬd¬O§_»Ý­n§ì¨ú¨ä¥L¦±¥Ø\n" + +#: src/rip.c:955 +#, fuzzy, c-format +msgid "Enc: Trk %d (%3.1fx)" +msgstr "½s½X: ¦±¥Ø %d (%3.1fx)" + +#: src/rip.c:973 +#, c-format +msgid "Enc: %6.2f%%" +msgstr "" + +#: src/rip.c:983 +#, c-format +msgid "Finished encoding on cpu %d\n" +msgstr "§¹¦¨½s½X¦b³B²z¾¹ %d\n" + +#: src/rip.c:1001 +#, c-format +msgid "Deleting [%s]\n" +msgstr "¥¿¦b§R°£ [%s]\n" + +#: src/rip.c:1058 +msgid "Ripping is finished\n" +msgstr "§ì­y§¹¦¨\n" + +#: src/rip.c:1169 src/rip.c:1175 +msgid "NoArtist" +msgstr "µL§@ªÌ" + +#: src/rip.c:1180 +msgid "NoTitle" +msgstr "µL¼ÐÃD" + +#: src/rip.c:1270 +msgid "" +"No disc was detected in the drive. If you have a disc in your drive, please " +"check your CDRom device setting under Config->CD." +msgstr "" + +#: src/rip.c:1279 +msgid "" +"Invalid rip executable.\n" +"Check your rip config, and ensure it specifies the full path to the ripper " +"executable." +msgstr "" + +#: src/rip.c:1287 +#, fuzzy +msgid "" +"Invalid encoder executable.\n" +"Check your encoder config, and ensure it specifies the full path to the " +"encoder executable." +msgstr "" +"µL®Äªº§ì­yµ{¦¡\n" +"½ÐÀˬd§Aªº§ì­y¾¹³]©w" + +#: src/rip.c:1323 +msgid "" +"No tracks selected.\n" +"Rip whole CD?\n" +msgstr "" +"¨S¦³¿ï¾Ü¦±¥Ø¡C\n" +"§ì¨ú¾ã¤ù¥úºÐ¶Ü¡H\n" + +#: src/rip.c:1346 +msgid "Ripping whole CD\n" +msgstr "¥¿¦b§ì¨ú¾ã¤ù¥úºÐ\n" + +#: src/rip.c:1385 +msgid "In RipNextTrack\n" +msgstr "¦b§ì¨ú¤U¤@­y\n" + +#: src/rip.c:1392 +#, c-format +msgid "First checked track is %d\n" +msgstr "²Ä¤@­ÓÀˬdªº¦±¥Ø¬O %d\n" + +#: src/rip.c:1402 +msgid "Ripping away!\n" +msgstr "" + +#: src/rip.c:1449 +msgid "No write access to write wav file" +msgstr "¨S¦³¼g¤J wav ÀɮתºÅv­­" + +#: src/rip.c:1463 +#, c-format +msgid "Ripping track %d to %s\n" +msgstr "¥¿¦b§ì¨ú¦±¥Ø %d ¨ì %s\n" + +#: src/rip.c:1467 +#, c-format +msgid "Rip: Trk %d (0.0x)" +msgstr "§ì­y: ¦±¥Ø %d (0.0x)" + +#: src/rip.c:1472 +#, c-format +msgid "File %s has already been ripped. Skipping...\n" +msgstr "ÀÉ®× %s ¤w¸g§ì¹L¡C¸õ¹L...\n" + +#: src/rip.c:1493 src/rip.c:1745 +msgid "Out of space in output directory" +msgstr "¿é¥X¥Ø¿ýªÅ¶¡¤£¨¬" + +#: src/rip.c:1569 +msgid "Calling CDPRip\n" +msgstr "©I¥s CDPRip\n" + +#: src/rip.c:1655 +#, fuzzy, c-format +msgid "Added track %d to %s list\n" +msgstr "²K¥[¦±¥Ø %d ¨ì½s½X¶¤¦C\n" + +#: src/rip.c:1681 +msgid "No free cpus\n" +msgstr "¨S¦³¶¢¸mªº³B²z¾¹\n" + +#: src/rip.c:1697 +#, fuzzy, c-format +msgid "Enc track %d\n" +msgstr "MP3 ¦±¥Ø %d\n" + +#: src/rip.c:1719 +#, fuzzy +msgid "No write access to write encoded file." +msgstr "¨S¦³¼g¤J mp3 ÀɮתºÅv­­" + +#: src/rip.c:1730 +#, c-format +msgid "%i: Encoding to %s\n" +msgstr "%i: ½s½X¨ì %s\n" + +#: src/rip.c:1734 +#, fuzzy, c-format +msgid "Enc: Trk %d (0.0x)" +msgstr "§ì­y: ¦±¥Ø %d (0.0x)" + +#: src/rip.c:1800 +msgid "In CalculateAll\n" +msgstr "" + +#: src/rip.c:1806 +msgid "We aren't ripping now, so let's zero encoding values\n" +msgstr "" + +#: src/rip.c:1822 +#, c-format +msgid "Total rip size is: %d\n" +msgstr "" + +#: src/rip.c:1823 +#, c-format +msgid "Total enc size is: %d\n" +msgstr "" + +#~ msgid "" +#~ "Invalid rip executable\n" +#~ "Check your rip config" +#~ msgstr "" +#~ "µL®Äªº§ì­yµ{¦¡\n" +#~ "½ÐÀˬd§Aªº§ì­y¾¹³]©w" + +#~ msgid "Keep application minimum size" +#~ msgstr "«O«ùÀ³¥Îµ{¦¡µøµ¡³Ì¤p¤Ø¤o" + +#~ msgid "Reply is [%s]\n" +#~ msgstr "¦^ÂЬO [%s]\n" + +#, fuzzy +#~ msgid "File System Character set encoding" +#~ msgstr "½s½X«á§R°£ .wav ÀÉ®×" + +#~ msgid "Could not parse geometry string `%s'" +#~ msgstr "µLªk¸ÑªR´X¦óÄݩʦr¦ê¡¥%s¡¦" + +#~ msgid "Aborted\n" +#~ msgstr "¨ú®ø\n" + +#~ msgid "Exit GCD" +#~ msgstr "Â÷¶} GCD" + +#~ msgid "MP3 file format" +#~ msgstr "MP3 Àɮ׮榡" + +#~ msgid "MP3 'nice' value" +#~ msgstr "½s½X¾¹ 'nice' Àu¥ý¯Å" + +#~ msgid "MP3 filter command" +#~ msgstr "MP3 ¹LÂo¾¹©R¥O" + +#~ msgid "MP3" +#~ msgstr "½s½X" + +#~ msgid "" +#~ "Invalid MP3 executable\n" +#~ "Check your MP3 config" +#~ msgstr "" +#~ "µL®Äªº½s½Xµ{¦¡\n" +#~ "½ÐÀˬd§Aªº½s½X¾¹³]©w" + +#~ msgid "MP3: Trk %d (0.0x)" +#~ msgstr "½s½X: ¦±¥Ø %d (0.0x)" diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 0000000..6371f2e --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,53 @@ +INCLUDES = -I$(top_srcdir) -I$(includedir) \ + -DGNOME_ICONDIR=\""$(datadir)/pixmaps"\" \ + -DG_LOG_DOMAIN=\"grip\" -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ + -I../intl -I$(top_srcdir)/intl \ + -DPREFIX=\""$(prefix)"\" \ + -DSYSCONFDIR=\""$(sysconfdir)"\" \ + -DDATADIR=\""$(datadir)"\" \ + -DLIBDIR=\""$(libdir)"\" + + + +bin_PROGRAMS = grip + +grip_SOURCES = \ + cppmain.cc \ + main.c \ + common.h \ + grip.c \ + grip.h \ + cddev.c \ + cddev.h \ + cdplay.c \ + cdplay.h \ + discedit.c \ + discedit.h \ + rip.c \ + rip.h \ + cdpar.c \ + cdpar.h \ + id3.c \ + grip_id3.h \ + discdb.c \ + discdb.h \ + uihelper.c \ + status_window.c \ + status_window.h \ + xpm.h \ + dialog.c \ + dialog.h \ + gripcfg.c \ + gripcfg.h \ + parsecfg.c \ + parsecfg.h \ + launch.c \ + launch.h \ + gain_analysis.c \ + gain_analysis.h \ + eggtrayicon.c \ + eggtrayicon.h \ + tray.c \ + tray.h + +grip_LDADD = @TERMINAL_WIDGET_LIBS@ $(CDPAR_LIBS) $(ID3_LIBS) diff --git a/src/Makefile.in b/src/Makefile.in new file mode 100644 index 0000000..f998402 --- /dev/null +++ b/src/Makefile.in @@ -0,0 +1,476 @@ +# Makefile.in generated by automake 1.6.3 from Makefile.am. +# @configure_input@ + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_HEADER = $(INSTALL_DATA) +transform = @program_transform_name@ +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ + +EXEEXT = @EXEEXT@ +OBJEXT = @OBJEXT@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +AMTAR = @AMTAR@ +AS = @AS@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CDPAR_LIBS = @CDPAR_LIBS@ +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +DATADIRNAME = @DATADIRNAME@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +ID3_LIBS = @ID3_LIBS@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +LDFLAGS = @LDFLAGS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +MAINT = @MAINT@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +OBJDUMP = @OBJDUMP@ +PACKAGE = @PACKAGE@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +am__include = @am__include@ +am__quote = @am__quote@ +install_sh = @install_sh@ +INCLUDES = -I$(top_srcdir) -I$(includedir) \ + -DGNOME_ICONDIR=\""$(datadir)/pixmaps"\" \ + -DG_LOG_DOMAIN=\"grip\" -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ + -I../intl -I$(top_srcdir)/intl \ + -DPREFIX=\""$(prefix)"\" \ + -DSYSCONFDIR=\""$(sysconfdir)"\" \ + -DDATADIR=\""$(datadir)"\" \ + -DLIBDIR=\""$(libdir)"\" + + +bin_PROGRAMS = grip + +grip_SOURCES = \ + cppmain.cc \ + main.c \ + common.h \ + grip.c \ + grip.h \ + cddev.c \ + cddev.h \ + cdplay.c \ + cdplay.h \ + discedit.c \ + discedit.h \ + rip.c \ + rip.h \ + cdpar.c \ + cdpar.h \ + id3.c \ + grip_id3.h \ + discdb.c \ + discdb.h \ + uihelper.c \ + status_window.c \ + status_window.h \ + xpm.h \ + dialog.c \ + dialog.h \ + gripcfg.c \ + gripcfg.h \ + parsecfg.c \ + parsecfg.h \ + launch.c \ + launch.h \ + gain_analysis.c \ + gain_analysis.h \ + eggtrayicon.c \ + eggtrayicon.h \ + tray.c \ + tray.h + + +grip_LDADD = @TERMINAL_WIDGET_LIBS@ $(CDPAR_LIBS) $(ID3_LIBS) +subdir = src +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +bin_PROGRAMS = grip$(EXEEXT) +PROGRAMS = $(bin_PROGRAMS) + +am_grip_OBJECTS = cppmain.$(OBJEXT) main.$(OBJEXT) grip.$(OBJEXT) \ + cddev.$(OBJEXT) cdplay.$(OBJEXT) discedit.$(OBJEXT) \ + rip.$(OBJEXT) cdpar.$(OBJEXT) id3.$(OBJEXT) discdb.$(OBJEXT) \ + uihelper.$(OBJEXT) status_window.$(OBJEXT) dialog.$(OBJEXT) \ + gripcfg.$(OBJEXT) parsecfg.$(OBJEXT) launch.$(OBJEXT) \ + gain_analysis.$(OBJEXT) eggtrayicon.$(OBJEXT) tray.$(OBJEXT) +grip_OBJECTS = $(am_grip_OBJECTS) +grip_DEPENDENCIES = +grip_LDFLAGS = + +DEFS = @DEFS@ +DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) +LIBS = @LIBS@ +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/cddev.Po ./$(DEPDIR)/cdpar.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/cdplay.Po ./$(DEPDIR)/cppmain.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/dialog.Po ./$(DEPDIR)/discdb.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/discedit.Po ./$(DEPDIR)/eggtrayicon.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/gain_analysis.Po ./$(DEPDIR)/grip.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/gripcfg.Po ./$(DEPDIR)/id3.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/launch.Po ./$(DEPDIR)/main.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/parsecfg.Po ./$(DEPDIR)/rip.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/status_window.Po ./$(DEPDIR)/tray.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/uihelper.Po +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ + $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +CXXFLAGS = @CXXFLAGS@ +DIST_SOURCES = $(grip_SOURCES) +DIST_COMMON = Makefile.am Makefile.in +SOURCES = $(grip_SOURCES) + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .cc .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/Makefile +Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) +binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(bindir) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + if test -f $$p \ + || test -f $$p1 \ + ; then \ + f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ + rm -f $(DESTDIR)$(bindir)/$$f; \ + done + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +grip$(EXEEXT): $(grip_OBJECTS) $(grip_DEPENDENCIES) + @rm -f grip$(EXEEXT) + $(CXXLINK) $(grip_LDFLAGS) $(grip_OBJECTS) $(grip_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) core *.core + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cddev.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cdpar.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cdplay.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cppmain.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dialog.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/discdb.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/discedit.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eggtrayicon.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gain_analysis.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grip.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gripcfg.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/id3.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/launch.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parsecfg.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rip.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status_window.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tray.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uihelper.Po@am__quote@ + +distclean-depend: + -rm -rf ./$(DEPDIR) + +.c.o: +@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< + +.c.obj: +@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(COMPILE) -c `cygpath -w $<` + +.c.lo: +@AMDEP_TRUE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< +CCDEPMODE = @CCDEPMODE@ + +.cc.o: +@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< + +.cc.obj: +@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CXXCOMPILE) -c -o $@ `cygpath -w $<` + +.cc.lo: +@AMDEP_TRUE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< +CXXDEPMODE = @CXXDEPMODE@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +ETAGS = etags +ETAGSFLAGS = + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$tags$$unique" \ + || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = .. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + +distdir: $(DISTFILES) + @list='$(DISTFILES)'; for file in $$list; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) + +installdirs: + $(mkinstalldirs) $(DESTDIR)$(bindir) + +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + +distclean-am: clean-am distclean-compile distclean-depend \ + distclean-generic distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: install-binPROGRAMS + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +uninstall-am: uninstall-binPROGRAMS uninstall-info-am + +.PHONY: GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic clean-libtool distclean distclean-compile \ + distclean-depend distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am info info-am install \ + install-am install-binPROGRAMS install-data install-data-am \ + install-exec install-exec-am install-info install-info-am \ + install-man install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool tags uninstall uninstall-am \ + uninstall-binPROGRAMS uninstall-info-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/cddev.c b/src/cddev.c new file mode 100644 index 0000000..0088802 --- /dev/null +++ b/src/cddev.c @@ -0,0 +1,785 @@ +/* cddev.c + * + * Based on code from libcdaudio 0.5.0 (Copyright (C)1998 Tony Arcieri) + * + * All changes copyright (c) 1998-2004 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "cddev.h" +#include "common.h" + +/* We can check to see if the CD-ROM is mounted if this is available */ +#ifdef HAVE_MNTENT_H +#include +#endif + +/* For Linux */ +#ifdef HAVE_LINUX_CDROM_H +#include +#define NON_BLOCKING +#endif + +/* For FreeBSD, OpenBSD, and Solaris */ +#ifdef HAVE_SYS_CDIO_H +#include +#define NON_BLOCKING +#endif + +#if defined(__FreeBSD__) || defined(__NetBSD__) + #define CDIOREADSUBCHANNEL CDIOCREADSUBCHANNEL +#endif + +/* For Digital UNIX */ +#ifdef HAVE_IO_CAM_CDROM_H +#include +#endif + +/* Initialize the CD-ROM for playing audio CDs */ +gboolean CDInitDevice(char *device_name,DiscInfo *disc) +{ + struct stat st; +#ifdef HAVE_MNTENT_H + FILE *mounts; + struct mntent *mnt; + char devname[256]; +#endif +#ifndef NON_BLOCKING + const int OPEN_MODE = O_RDONLY; +#else + const int OPEN_MODE = O_RDONLY|O_NONBLOCK; +#endif + + disc->have_info=FALSE; + disc->disc_present=FALSE; + + if(lstat(device_name,&st)<0) + return FALSE; + +#ifdef HAVE_MNTENT_H + if(S_ISLNK(st.st_mode)) + readlink(device_name,devname,256); + else + strncpy(devname,device_name,256); + + if((mounts=setmntent(MOUNTED, "r"))==NULL) + return FALSE; + + while((mnt=getmntent(mounts))!=NULL) { + if(strcmp(mnt->mnt_fsname,devname)==0) { + endmntent(mounts); + errno = EBUSY; + return FALSE; + } + } + + endmntent(mounts); +#endif + + if (disc->devname + && disc->devname != device_name + && strcmp(device_name, disc->devname)) { + free(disc->devname); + disc->devname = 0; + } + if (!disc->devname) { + disc->devname = strdup(device_name); + } + + disc->cd_desc=open(device_name, OPEN_MODE); + + if(disc->cd_desc==-1) return FALSE; + + return TRUE; +} + +gboolean CDCloseDevice(DiscInfo *disc) +{ + close(disc->cd_desc); + disc->cd_desc = -1; + + return TRUE; +} + +/* Update a CD status structure... because operating system interfaces vary + so does this function. */ +gboolean CDStat(DiscInfo *disc,gboolean read_toc) +{ + /* Since every platform does this a little bit differently this gets pretty + complicated... */ +#ifdef CDIOREADSUBCHANNEL + struct ioc_read_subchannel cdsc; + struct cd_sub_channel_info data; +#endif +#ifdef CDIOREADTOCENTRYS + struct cd_toc_entry toc_buffer[MAX_TRACKS]; + struct ioc_read_toc_entry cdte; +#endif +#ifdef CDROMSUBCHNL + struct cdrom_subchnl cdsc; +#endif +#ifdef CDROM_READ_SUBCHANNEL + struct cd_sub_channel sch; +#endif +#ifdef CDROMREADTOCHDR + struct cdrom_tochdr cdth; +#endif +#ifdef CDROMREADTOCENTRY + struct cdrom_tocentry cdte; +#endif +#ifdef CDIOREADTOCHEADER + struct ioc_toc_header cdth; +#endif +#ifdef CDROM_DRIVE_STATUS + int retcode; +#endif + + int readtracks,frame[MAX_TRACKS],pos; + + if (disc->cd_desc < 0) { + CDInitDevice(disc->devname, disc); + } + if (disc->cd_desc < 0) { + return FALSE; + } + +#ifdef CDROM_DRIVE_STATUS + retcode=ioctl(disc->cd_desc,CDROM_DRIVE_STATUS,CDSL_CURRENT); + Debug(_("Drive status is %d\n"),retcode); + if(retcode < 0) { + Debug(_("Drive doesn't support drive status check (assume CDS_NO_INFO)\n")); + } + else if(retcode != CDS_DISC_OK && retcode != CDS_NO_INFO) { + Debug(_("No disc\n")); + disc->disc_present=FALSE; + + return FALSE; + } + +#endif + +#ifdef CDIOREADSUBCHANNEL + bzero(&cdsc,sizeof(cdsc)); + cdsc.data=&data; + cdsc.data_len=sizeof(data); + cdsc.data_format=CD_CURRENT_POSITION; + cdsc.address_format=CD_MSF_FORMAT; + + if(ioctl(disc->cd_desc,CDIOCREADSUBCHANNEL,(char *)&cdsc)<0) +#endif +#ifdef CDROM_READ_SUBCHANNEL + sch.sch_data_format=CDROM_CURRENT_POSITION; + + sch.sch_address_format=CDROM_MSF_FORMAT; + + if(ioctl(disc->cd_desc,CDROM_READ_SUBCHANNEL, &sch)<0) +#endif +#ifdef CDROMSUBCHNL + cdsc.cdsc_format=CDROM_MSF; + + if(ioctl(disc->cd_desc,CDROMSUBCHNL,&cdsc)<0) +#endif + { + disc->disc_present=FALSE; + + return FALSE; + } + +#ifdef CDROMSUBCHNL + if(cdsc.cdsc_audiostatus&& + (cdsc.cdsc_audiostatus<0x11||cdsc.cdsc_audiostatus>0x15)) { + disc->disc_present=FALSE; + + return FALSE; + } +#endif + + disc->disc_present=TRUE; + +#ifdef CDIOREADSUBCHANNEL + + disc->disc_time.mins=data.what.position.absaddr.msf.minute; + disc->disc_time.secs=data.what.position.absaddr.msf.second; + disc->curr_frame=(data.what.position.absaddr.msf.minute * 60 + + data.what.position.absaddr.msf.second) * 75 + + data.what.position.absaddr.msf.frame; + + switch(data.header.audio_status) { + case CD_AS_AUDIO_INVALID: + disc->disc_mode=CDAUDIO_NOSTATUS; + break; + case CD_AS_PLAY_IN_PROGRESS: + disc->disc_mode=CDAUDIO_PLAYING; + break; + case CD_AS_PLAY_PAUSED: + disc->disc_mode=CDAUDIO_PAUSED; + break; + case CD_AS_PLAY_COMPLETED: + disc->disc_mode=CDAUDIO_COMPLETED; + break; + case CD_AS_PLAY_ERROR: + disc->disc_mode=CDAUDIO_NOSTATUS; + break; + case CD_AS_NO_STATUS: + disc->disc_mode=CDAUDIO_NOSTATUS; + } +#endif +#ifdef CDROMSUBCHNL + disc->disc_time.mins=cdsc.cdsc_absaddr.msf.minute; + disc->disc_time.secs=cdsc.cdsc_absaddr.msf.second; + disc->curr_frame=(cdsc.cdsc_absaddr.msf.minute * 60 + + cdsc.cdsc_absaddr.msf.second) * 75 + + cdsc.cdsc_absaddr.msf.frame; + + switch(cdsc.cdsc_audiostatus) { + case CDROM_AUDIO_PLAY: + disc->disc_mode=CDAUDIO_PLAYING; + break; + case CDROM_AUDIO_PAUSED: + disc->disc_mode=CDAUDIO_PAUSED; + break; + case CDROM_AUDIO_NO_STATUS: + disc->disc_mode=CDAUDIO_NOSTATUS; + break; + case CDROM_AUDIO_COMPLETED: + disc->disc_mode=CDAUDIO_COMPLETED; + break; + } +#endif + + if(read_toc) { + /* Read the Table Of Contents header */ + +#ifdef CDIOREADTOCHEADER + if(ioctl(disc->cd_desc,CDIOREADTOCHEADER,(char *)&cdth)<0) { + g_print(_("Error: Failed to read disc contents\n")); + + return FALSE; + } + + disc->num_tracks=cdth.ending_track; +#endif +#ifdef CDROMREADTOCHDR + if(ioctl(disc->cd_desc,CDROMREADTOCHDR,&cdth)<0) { + g_print(_("Error: Failed to read disc contents\n")); + + return FALSE; + } + + disc->num_tracks=cdth.cdth_trk1; +#endif + + /* Read the table of contents */ + +#ifdef CDIOREADTOCENTRYS + cdte.address_format=CD_MSF_FORMAT; + cdte.starting_track=0; + cdte.data=toc_buffer; + cdte.data_len=sizeof(toc_buffer); + + if(ioctl(disc->cd_desc,CDIOREADTOCENTRYS,(char *)&cdte)<0) { + g_print(_("Error: Failed to read disc contents\n")); + + return FALSE; + } + + for(readtracks=0;readtracks<=disc->num_tracks;readtracks++) { + disc->track[readtracks].start_pos.mins= + cdte.data[readtracks].addr.msf.minute; + disc->track[readtracks].start_pos.secs= + cdte.data[readtracks].addr.msf.second; + frame[readtracks]=cdte.data[readtracks].addr.msf.frame; + + /* I'm just guessing about this based on cdio.h -- should be tested */ + /* This compiles on freebsd, does it work? */ + disc->track[readtracks].flags=(cdte.data[readtracks].addr_type << 4) | + (cdte.data[readtracks].control & 0x0f); + } +#endif +#ifdef CDROMREADTOCENTRY + for(readtracks=0;readtracks<=disc->num_tracks;readtracks++) { + if(readtracks==disc->num_tracks) + cdte.cdte_track=CDROM_LEADOUT; + else + cdte.cdte_track=readtracks+1; + + cdte.cdte_format=CDROM_MSF; + if(ioctl(disc->cd_desc,CDROMREADTOCENTRY,&cdte) < 0) { + g_print(_("Error: Failed to read disc contents\n")); + + return FALSE; + } + + disc->track[readtracks].start_pos.mins=cdte.cdte_addr.msf.minute; + disc->track[readtracks].start_pos.secs=cdte.cdte_addr.msf.second; + frame[readtracks]=cdte.cdte_addr.msf.frame; + + disc->track[readtracks].flags=(cdte.cdte_adr << 4) | + (cdte.cdte_ctrl & 0x0f); + } +#endif + + for(readtracks=0;readtracks<=disc->num_tracks;readtracks++) { + disc->track[readtracks].start_frame= + (disc->track[readtracks].start_pos.mins * 60 + + disc->track[readtracks].start_pos.secs) * 75 + frame[readtracks]; + + if(readtracks>0) { + pos=(disc->track[readtracks].start_pos.mins * 60 + + disc->track[readtracks].start_pos.secs) - + (disc->track[readtracks-1].start_pos.mins * 60 + + disc->track[readtracks -1].start_pos.secs); + + /* Compensate for the gap before a data track */ + if((readtracksnum_tracks&& + IsDataTrack(disc,readtracks)&& + pos>152)) { + pos-=152; + } + + disc->track[readtracks - 1].length.mins=pos / 60; + disc->track[readtracks - 1].length.secs=pos % 60; + } + } + + disc->length.mins= + disc->track[disc->num_tracks].start_pos.mins; + + disc->length.secs= + disc->track[disc->num_tracks].start_pos.secs; + } + + disc->curr_track=0; + + while(disc->curr_tracknum_tracks && + disc->curr_frame>=disc->track[disc->curr_track].start_frame) + disc->curr_track++; + + pos=(disc->curr_frame-disc->track[disc->curr_track-1].start_frame) / 75; + + disc->track_time.mins=pos/60; + disc->track_time.secs=pos%60; + + return TRUE; +} + +/* Check if a track is a data track */ +gboolean IsDataTrack(DiscInfo *disc,int track) +{ + return(disc->track[track].flags & 4); +} + +/* Play frames from CD */ +gboolean CDPlayFrames(DiscInfo *disc,int startframe,int endframe) +{ +#ifdef CDIOCPLAYMSF + struct ioc_play_msf cdmsf; +#endif +#ifdef CDROMPLAYMSF + struct cdrom_msf cdmsf; +#endif + + if (disc->cd_desc < 0) { + return FALSE; + } + +#ifdef CDIOCPLAYMSF + cdmsf.start_m=startframe / (60 * 75); + cdmsf.start_s=(startframe % (60 * 75)) / 75; + cdmsf.start_f=startframe % 75; + cdmsf.end_m=endframe / (60 * 75); + cdmsf.end_s=(endframe % (60 * 75)) / 75; + cdmsf.end_f=endframe % 75; +#endif +#ifdef CDROMPLAYMSF + cdmsf.cdmsf_min0=startframe / (60 * 75); + cdmsf.cdmsf_sec0=(startframe % (60 * 75)) / 75; + cdmsf.cdmsf_frame0=startframe % 75; + cdmsf.cdmsf_min1=endframe / (60 * 75); + cdmsf.cdmsf_sec1=(endframe % (60 * 75)) / 75; + cdmsf.cdmsf_frame1=endframe % 75; +#endif + +#ifdef CDIOCSTART + if(ioctl(disc->cd_desc,CDIOCSTART)<0) + return FALSE; +#endif +#ifdef CDROMSTART + if(ioctl(disc->cd_desc,CDROMSTART)<0) + return FALSE; +#endif +#ifdef CDIOCPLAYMSF + if(ioctl(disc->cd_desc,CDIOCPLAYMSF,(char *)&cdmsf)<0) + return FALSE; +#endif +#ifdef CDROMPLAYMSF + if(ioctl(disc->cd_desc,CDROMPLAYMSF,&cdmsf)<0) + return FALSE; +#endif + + return TRUE; +} + +/* Play starttrack at position pos to endtrack */ +gboolean CDPlayTrackPos(DiscInfo *disc,int starttrack, + int endtrack,int startpos) +{ + if (disc->cd_desc < 0) { + return FALSE; + } + + return CDPlayFrames(disc,disc->track[starttrack-1].start_frame + + startpos * 75,endtrack>=disc->num_tracks ? + (disc->length.mins * 60 + + disc->length.secs) * 75 : + disc->track[endtrack].start_frame - 1); +} + +/* Play starttrack to endtrack */ +gboolean CDPlayTrack(DiscInfo *disc,int starttrack,int endtrack) +{ + return CDPlayTrackPos(disc,starttrack,endtrack,0); +} + +/* Advance (fastfwd) */ + +gboolean CDAdvance(DiscInfo *disc,DiscTime *time) +{ + if (disc->cd_desc < 0) { + return FALSE; + } + + disc->track_time.mins += time->mins; + disc->track_time.secs += time->secs; + + if(disc->track_time.secs > 60) { + disc->track_time.secs -= 60; + disc->track_time.mins++; + } + + if(disc->track_time.secs < 0) { + disc->track_time.secs = 60 + disc->track_time.secs; + disc->track_time.mins--; + } + + /* If we skip back past the beginning of a track, go to the end of + the last track - DCV */ + if(disc->track_time.mins < 0) { + disc->curr_track--; + + /* Tried to skip past first track so go to the beginning */ + if(disc->curr_track == 0) { + disc->curr_track = 1; + return CDPlayTrack(disc,disc->curr_track,disc->curr_track); + } + + /* Go to the end of the last track */ + disc->track_time.mins=disc->track[(disc->curr_track)-1]. + length.mins; + disc->track_time.secs=disc->track[(disc->curr_track)-1]. + length.secs; + + /* Try again */ + return CDAdvance(disc,time); + } + + if((disc->track_time.mins == + disc->track[disc->curr_track].start_pos.mins && + disc->track_time.secs > + disc->track[disc->curr_track].start_pos.secs) + || disc->track_time.mins> + disc->track[disc->curr_track].start_pos.mins) { + disc->curr_track++; + + if(disc->curr_track>disc->num_tracks) + disc->curr_track=disc->num_tracks; + + return CDPlayTrack(disc,disc->curr_track,disc->curr_track); + } + + return CDPlayTrackPos(disc,disc->curr_track,disc->curr_track, + disc->track_time.mins * 60 + + disc->track_time.secs); +} + +/* Stop the CD, if it is playing */ +gboolean CDStop(DiscInfo *disc) +{ + if (disc->cd_desc < 0) { + return FALSE; + } + +#ifdef CDIOCSTOP + if(ioctl(disc->cd_desc,CDIOCSTOP)<0) + return FALSE; +#endif +#ifdef CDROMSTOP + if(ioctl(disc->cd_desc,CDROMSTOP)<0) + return FALSE; +#endif + + return TRUE; +} + +/* Pause the CD */ +gboolean CDPause(DiscInfo *disc) +{ + if (disc->cd_desc < 0) { + return FALSE; + } + +#ifdef CDIOCPAUSE + if(ioctl(disc->cd_desc,CDIOCPAUSE)<0) + return FALSE; +#endif +#ifdef CDROMPAUSE + if(ioctl(disc->cd_desc,CDROMPAUSE)<0) + return FALSE; +#endif + + return TRUE; +} + +/* Resume playing */ +gboolean CDResume(DiscInfo *disc) +{ + if (disc->cd_desc < 0) { + return FALSE; + } + +#ifdef CDIOCRESUME + if(ioctl(disc->cd_desc,CDIOCRESUME)<0) + return FALSE; +#endif +#ifdef CDROMRESUME + if(ioctl(disc->cd_desc,CDROMRESUME)<0) + return FALSE; +#endif + + return TRUE; +} + +/* Check the tray status */ +gboolean TrayOpen(DiscInfo *disc) +{ +#ifdef CDROM_DRIVE_STATUS + int status; +#endif + + if (disc->cd_desc < 0) { + return FALSE; + } + +#ifdef CDROM_DRIVE_STATUS + status=ioctl(disc->cd_desc,CDROM_DRIVE_STATUS,CDSL_CURRENT); + Debug(_("Drive status is %d\n"), status); + + if(status < 0) { + Debug(_("Drive doesn't support drive status check\n")); + return FALSE; + } + + return status==CDS_TRAY_OPEN; +#endif + + return FALSE; +} + +/* Eject the tray */ +gboolean CDEject(DiscInfo *disc) +{ + if (disc->cd_desc < 0) { + return FALSE; + } + +#ifdef CDIOCEJECT + /* always unlock door before an eject in case something else locked it */ +#if defined(CDROM_LOCKDOOR) + if(ioctl(disc->cd_desc,CDROM_LOCKDOOR,0)<0) + g_print(_("Unlock failed: %d"), errno); +#endif +#ifdef CDIOCALLOW + if(ioctl(disc->cd_desc,CDIOCALLOW)<0) + g_print(_("Unlock failed: %d"),errno); +#endif + + if(ioctl(disc->cd_desc,CDIOCEJECT)<0) { + g_print(_("CDIOCEJECT")); + return FALSE; + } +#endif +#ifdef CDROMEJECT + if(ioctl(disc->cd_desc,CDROMEJECT)<0) + return FALSE; +#endif + + return TRUE; +} + +/* Close the tray */ + +gboolean CDClose(DiscInfo *disc) +{ + if (disc->cd_desc < 0) { + return FALSE; + } + +#ifdef CDIOCCLOSE + if(ioctl(disc->cd_desc,CDIOCCLOSE)<0) + return FALSE; +#endif +#ifdef CDROMCLOSETRAY + if(ioctl(disc->cd_desc,CDROMCLOSETRAY)<0) + return FALSE; +#endif + + return TRUE; +} + +gboolean CDGetVolume(DiscInfo *disc,DiscVolume *vol) +{ +#ifdef CDIOCGETVOL + struct ioc_vol volume; +#endif +#ifdef CDROMVOLREAD + struct cdrom_volctrl volume; +#endif + + if (disc->cd_desc < 0) { + return FALSE; + } + +#ifdef CDIOCGETVOL + if(ioctl(disc->cd_desc,CDIOCGETVOL,&volume)<0) + return FALSE; + + vol->vol_front.left=volume.vol[0]; + vol->vol_front.right=volume.vol[1]; + vol->vol_back.left=volume.vol[2]; + vol->vol_back.right=volume.vol[3]; +#endif +#ifdef CDROMVOLREAD + if(ioctl(disc->cd_desc,CDROMVOLREAD, &volume)<0) + return FALSE; + + vol->vol_front.left=volume.channel0; + vol->vol_front.right=volume.channel1; + vol->vol_back.left=volume.channel2; + vol->vol_back.right=volume.channel3; +#endif + + return TRUE; +} + +gboolean CDSetVolume(DiscInfo *disc,DiscVolume *vol) +{ +#ifdef CDIOCSETVOL + struct ioc_vol volume; +#endif +#ifdef CDROMVOLCTRL + struct cdrom_volctrl volume; +#endif + + if (disc->cd_desc < 0) { + return FALSE; + } + + if(vol->vol_front.left > 255 || vol->vol_front.left < 0 || + vol->vol_front.right > 255 || vol->vol_front.right < 0 || + vol->vol_back.left > 255 || vol->vol_back.left < 0 || + vol->vol_back.right > 255 || vol->vol_back.right < 0) + return -1; + +#ifdef CDIOCSETVOL + volume.vol[0]=vol->vol_front.left; + volume.vol[1]=vol->vol_front.right; + volume.vol[2]=vol->vol_back.left; + volume.vol[3]=vol->vol_back.right; + + if(ioctl(disc->cd_desc,CDIOCSETVOL,&volume)<0) + return FALSE; +#endif +#ifdef CDROMVOLCTRL + volume.channel0=vol->vol_front.left; + volume.channel1=vol->vol_front.right; + volume.channel2=vol->vol_back.left; + volume.channel3=vol->vol_back.right; + + if(ioctl(disc->cd_desc,CDROMVOLCTRL,&volume)<0) + return FALSE; +#endif + + return TRUE; +} + + +/* CD Changer routines */ + +/* Choose a particular disc from the CD changer */ +gboolean CDChangerSelectDisc(DiscInfo *disc,int disc_num) +{ + if (disc->cd_desc < 0) { + return FALSE; + } + +#ifdef CDROM_SELECT_DISC + if(ioctl(disc->cd_desc,CDROM_SELECT_DISC,disc_num)<0) + return FALSE; + + return TRUE; +#else + errno = ENOSYS; + + return FALSE; +#endif +} + +/* Identify how many CD-ROMs the changer can hold */ +int CDChangerSlots(DiscInfo *disc) +{ +#ifdef CDROM_CHANGER_NSLOTS + int slots; +#endif + + if (disc->cd_desc < 0) { + return FALSE; + } + +#ifdef CDROM_CHANGER_NSLOTS + if((slots=ioctl(disc->cd_desc, CDROM_CHANGER_NSLOTS))<0) + slots=1; + + if(slots==0) + return 1; + + return slots; +#else + return 1; +#endif +} diff --git a/src/cddev.h b/src/cddev.h new file mode 100644 index 0000000..4cd04bd --- /dev/null +++ b/src/cddev.h @@ -0,0 +1,107 @@ +/* cddev.h + * + * Based on code from libcdaudio 0.5.0 (Copyright (C)1998 Tony Arcieri) + * + * Copyright (c) 1998-2002 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * 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 + * + */ + +#ifndef GRIP_CDDEV_H +#define GRIP_CDDEV_H + +#include + +/* Used with disc_info */ +#define CDAUDIO_PLAYING 0 +#define CDAUDIO_PAUSED 1 +#define CDAUDIO_COMPLETED 2 +#define CDAUDIO_NOSTATUS 3 + +#define MAX_TRACKS 100 +#define MAX_SLOTS 100 /* For CD changers */ + +#define CURRENT_CDDBREVISION 2 + + +/* Used for keeping track of times */ +typedef struct _disc_time { + int mins; + int secs; +} DiscTime; + +/* Track specific information */ +typedef struct _track_info { + DiscTime length; + DiscTime start_pos; + int num_frames; + int start_frame; + unsigned char flags; +} TrackInfo; + +/* Disc information such as current track, amount played, etc */ +typedef struct _disc_info { + int cd_desc; /* CD device file desc. */ + char *devname; /* CD device file pathname */ + gboolean have_info; /* Do we have disc info yet? */ + gboolean disc_present; /* Is disc present? */ + int disc_mode; /* Current disc mode */ + DiscTime track_time; /* Current track time */ + DiscTime disc_time; /* Current disc time */ + DiscTime length; /* Total disc length */ + int curr_frame; /* Current frame */ + int curr_track; /* Current track */ + int num_tracks; /* Number of tracks on disc */ + TrackInfo track[MAX_TRACKS]; /* Track specific information */ +} DiscInfo; + +/* Channle volume structure */ +typedef struct _channel_volume { + int left; + int right; +} ChannelVolume; + +/* Volume structure */ +typedef struct _disc_volume { + ChannelVolume vol_front; + ChannelVolume vol_back; +} DiscVolume; + + +gboolean CDInitDevice(char *device_name,DiscInfo *disc); +gboolean CDCloseDevice(DiscInfo *disc); +gboolean CDStat(DiscInfo *disc,gboolean read_toc); +gboolean IsDataTrack(DiscInfo *disc,int track); +gboolean CDPlayFrames(DiscInfo *disc,int startframe,int endframe); +gboolean CDPlayTrackPos(DiscInfo *disc,int starttrack, + int endtrack,int startpos); +gboolean CDPlayTrack(DiscInfo *disc,int starttrack,int endtrack); +gboolean CDAdvance(DiscInfo *disc,DiscTime *time); +gboolean CDStop(DiscInfo *disc); +gboolean CDPause(DiscInfo *disc); +gboolean CDResume(DiscInfo *disc); +gboolean TrayOpen(DiscInfo *disc); +gboolean CDEject(DiscInfo *disc); +gboolean CDClose(DiscInfo *disc); +gboolean CDGetVolume(DiscInfo *disc,DiscVolume *vol); +gboolean CDSetVolume(DiscInfo *disc,DiscVolume *vol); +gboolean CDChangerSelectDisc(DiscInfo *disc,int disc_num); +int CDChangerSlots(DiscInfo *disc); + +#endif /* GRIP_CDDEV_H */ diff --git a/src/cdpar.c b/src/cdpar.c new file mode 100644 index 0000000..a9647b0 --- /dev/null +++ b/src/cdpar.c @@ -0,0 +1,493 @@ +/* cdpar.c -- routines for interacting with the Paranoia library + * + * Based on main.c from the cdparanoia distribution + * (C) 1998 Monty + * + * All changes Copyright 1999-2004 by Mike Oliphant (grip@nostatic.org) + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include "grip.h" + +#ifdef CDPAR + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "gain_analysis.h" + +#include "cdpar.h" + +static void PutNum(long num,int f,int endianness,int bytes); +static void WriteWav(int f,long bytes); +static void CDPCallback(long inpos, int function); +static void GainCalc(char *buffer); +static long CDPWrite(int outf, char *buffer); + +static inline int bigendianp(void){ + int test=1; + char *hack=(char *)(&test); + if(hack[0])return(0); + return(1); +} + +static inline size16 swap16(size16 x){ + return((((unsigned size16)x & 0x00ffU) << 8) | + (((unsigned size16)x & 0xff00U) >> 8)); +} + +/* Ugly hack because we can't pass user data to the callback */ +int *global_rip_smile_level; +FILE *global_output_fp; + +static void PutNum(long num,int f,int endianness,int bytes) +{ + int i; + unsigned char c; + + if(!endianness) + i=0; + else + i=bytes-1; + while(bytes--){ + c=(num>>(i<<3))&0xff; + if(write(f,&c,1)==-1){ + perror("Could not write to output."); + exit(1); + } + if(endianness) + i--; + else + i++; + } +} + +static void WriteWav(int f,long bytes) +{ + /* quick and dirty */ + + write(f,"RIFF",4); /* 0-3 */ + PutNum(bytes+44-8,f,0,4); /* 4-7 */ + write(f,"WAVEfmt ",8); /* 8-15 */ + PutNum(16,f,0,4); /* 16-19 */ + PutNum(1,f,0,2); /* 20-21 */ + PutNum(2,f,0,2); /* 22-23 */ + PutNum(44100,f,0,4); /* 24-27 */ + PutNum(44100*2*2,f,0,4); /* 28-31 */ + PutNum(4,f,0,2); /* 32-33 */ + PutNum(16,f,0,2); /* 34-35 */ + write(f,"data",4); /* 36-39 */ + PutNum(bytes,f,0,4); /* 40-43 */ +} + +static void CDPCallback(long inpos,int function) +{ + static long c_sector=0,v_sector=0; + static int last=0; + static long lasttime=0; + long sector,osector=0; + struct timeval thistime; + static char heartbeat=' '; + static int overlap=0; + static int slevel=0; + static int slast=0; + static int stimeout=0; + long test; + + osector=inpos; + sector=inpos/CD_FRAMEWORDS; + + if(function==-2){ + v_sector=sector; + return; + } + + if(function==-1){ + last=8; + heartbeat='*'; + slevel=0; + v_sector=sector; + } else + switch(function){ + case PARANOIA_CB_VERIFY: + if(stimeout>=30) { + if(overlap>CD_FRAMEWORDS) + slevel=2; + else + slevel=1; + } + break; + case PARANOIA_CB_READ: + if(sector>c_sector)c_sector=sector; + break; + + case PARANOIA_CB_FIXUP_EDGE: + if(stimeout>=5) { + if(overlap>CD_FRAMEWORDS) + slevel=2; + else + slevel=1; + } + break; + case PARANOIA_CB_FIXUP_ATOM: + if(slevel<3 || stimeout>5)slevel=3; + break; + case PARANOIA_CB_READERR: + slevel=6; + break; + case PARANOIA_CB_SKIP: + slevel=8; + break; + case PARANOIA_CB_OVERLAP: + overlap=osector; + break; + case PARANOIA_CB_SCRATCH: + slevel=7; + break; + case PARANOIA_CB_DRIFT: + if(slevel<4 || stimeout>5)slevel=4; + break; + case PARANOIA_CB_FIXUP_DROPPED: + case PARANOIA_CB_FIXUP_DUPED: + slevel=5; + break; + } + + + gettimeofday(&thistime,NULL); + test=thistime.tv_sec*10+thistime.tv_usec/100000; + + if(lasttime!=test || function==-1 || slast!=slevel){ + if(lasttime!=test || function==-1){ + last++; + lasttime=test; + if(last>7)last=0; + stimeout++; + switch(last){ + case 0: + heartbeat=' '; + break; + case 1:case 7: + heartbeat='.'; + break; + case 2:case 6: + heartbeat='o'; + break; + case 3:case 5: + heartbeat='0'; + break; + case 4: + heartbeat='O'; + break; + } + + if(function==-1) + heartbeat='*'; + + } + if(slast!=slevel){ + stimeout=0; + } + slast=slevel; + } + + if(slevel<8&&slevel>0) *global_rip_smile_level=slevel-1; + else *global_rip_smile_level=0; +} + +/* Do the replay gain calculation on a sector */ +static void GainCalc(char *buffer) +{ + static Float_t l_samples[588]; + static Float_t r_samples[588]; + long count; + short *data; + + data=(short *)buffer; + + for(count=0;count<588;count++) { + l_samples[count]=(Float_t)data[count*2]; + r_samples[count]=(Float_t)data[(count*2)+1]; + } + + AnalyzeSamples(l_samples,r_samples,588,2); +} + +static long CDPWrite(int outf,char *buffer) +{ + long words=0,temp; + long num=CD_FRAMESIZE_RAW; + + while(wordsbigendianp=force_cdrom_endian; + switch(force_cdrom_endian){ + case 0: + fprintf(output_fp, + "Forcing CDROM sense to little-endian; ignoring preset and autosense"); + break; + case 1: + fprintf(output_fp, + "Forcing CDROM sense to big-endian; ignoring preset and autosense"); + break; + } + } + + if(force_cdrom_sectors!=-1){ + if(force_cdrom_sectors<0 || force_cdrom_sectors>100){ + fprintf(output_fp,"Default sector read size must be 1<= n <= 100\n"); + cdda_close(d); + + return FALSE; + } + + fprintf(output_fp,"Forcing default to read %d sectors; " + "ignoring preset and autosense",force_cdrom_sectors); + + d->nsectors=force_cdrom_sectors; + d->bigbuff=force_cdrom_sectors*CD_FRAMESIZE_RAW; + } + + if(force_cdrom_overlap!=-1){ + if(force_cdrom_overlap<0 || force_cdrom_overlap>75){ + fprintf(output_fp,"Search overlap sectors must be 0<= n <=75\n"); + cdda_close(d); + + return FALSE; + } + + fprintf(output_fp,"Forcing search overlap to %d sectors; " + "ignoring autosense",force_cdrom_overlap); + } + + switch(cdda_open(d)) { + case -2:case -3:case -4:case -5: + fprintf(output_fp, + "\nUnable to open disc. Is there an audio CD in the drive?"); + cdda_close(d); + return FALSE; + case -6: + fprintf(output_fp, + "\nCdparanoia could not find a way to read audio from this drive."); + cdda_close(d); + return FALSE; + case 0: + break; + default: + fprintf(output_fp,"\nUnable to open disc."); + cdda_close(d); + return FALSE; + } + + if(d->interface==GENERIC_SCSI && d->bigbuff<=CD_FRAMESIZE_RAW) { + fprintf(output_fp, + "WARNING: You kernel does not have generic SCSI 'SG_BIG_BUFF'\n" + " set, or it is set to a very small value. Paranoia\n" + " will only be able to perform single sector reads\n" + " making it very unlikely Paranoia can work.\n\n" + " To correct this problem, the SG_BIG_BUFF define\n" + " must be set in /usr/src/linux/include/scsi/sg.h\n" + " by placing, for example, the following line just\n" + " before the last #endif:\n\n" + " #define SG_BIG_BUFF 65536\n\n" + " and then recompiling the kernel.\n\n" + " Attempting to continue...\n\n"); + } + + if(d->nsectors==1){ + fprintf(output_fp, + "WARNING: The autosensed/selected sectors per read value is\n" + " one sector, making it very unlikely Paranoia can \n" + " work.\n\n" + " Attempting to continue...\n\n"); + } + + if(!cdda_track_audiop(d,track)) { + fprintf(output_fp, + "Selected track is not an audio track. Aborting.\n\n"); + cdda_close(d); + return FALSE; + } + + offset=cdda_track_firstsector(d,track); + first_sector+=offset; + last_sector+=offset; + + p=paranoia_init(d); + paranoia_modeset(p,paranoia_mode); + + if(force_cdrom_overlap!=-1) paranoia_overlapset(p,force_cdrom_overlap); + + if(verbose) + cdda_verbose_set(d,CDDA_MESSAGE_LOGIT,CDDA_MESSAGE_LOGIT); + else + cdda_verbose_set(d,CDDA_MESSAGE_FORGETIT,CDDA_MESSAGE_FORGETIT); + + paranoia_seek(p,cursor=first_sector,SEEK_SET); + + /* this is probably a good idea in general */ + /* seteuid(getuid()); + setegid(getgid());*/ + + out=open(outfile,O_RDWR|O_CREAT|O_TRUNC,0666); + if(out==-1){ + fprintf(output_fp,"Cannot open default output file %s: %s",outfile, + strerror(errno)); + cdda_close(d); + paranoia_free(p); + + return FALSE; + } + + WriteWav(out,(last_sector-first_sector+1)*CD_FRAMESIZE_RAW); + + /* Off we go! */ + + while(cursor<=last_sector){ + /* read a sector */ + gint16 *readbuf=paranoia_read(p,CDPCallback); + char *err=cdda_errors(d); + char *mes=cdda_messages(d); + + *rip_percent_done=(gfloat)cursor/(gfloat)last_sector; + + if(mes || err) + fprintf(output_fp,"\r " + " \r%s%s\n", + mes?mes:"",err?err:""); + + if(err)free(err); + if(mes)free(mes); + + if(*stop_thread_rip_now) { + *stop_thread_rip_now=FALSE; + + cdda_close(d); + paranoia_free(p); + + return FALSE; + } + + + if(readbuf==NULL){ + fprintf(output_fp,"\nparanoia_read: Unrecoverable error, bailing.\n"); + cursor=last_sector+1; + paranoia_seek(p,cursor,SEEK_SET); + break; + } + + cursor++; + + if(output_endian!=bigendianp()){ + for(i=0;i +#include +#else +#include +#include +#endif diff --git a/src/cdplay.c b/src/cdplay.c new file mode 100644 index 0000000..f5439e5 --- /dev/null +++ b/src/cdplay.c @@ -0,0 +1,1963 @@ +/* cdplay.c + * + * Copyright (c) 1998-2001 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include "cdplay.h" +#include "grip.h" +#include "config.h" +#include "common.h" +#include "discdb.h" +#include "cddev.h" +#include "discedit.h" +#include "dialog.h" +#include "rip.h" +#include "grip_id3.h" + +static void ShutDownCB(GtkWidget *widget,gpointer data); +static void DiscDBToggle(GtkWidget *widget,gpointer data); +static void DoLookup(void *data); +static void SetCurrentTrack(GripInfo *ginfo,int track); +static void ToggleChecked(GripGUI *uinfo,int track); +static void ClickColumn(GtkTreeViewColumn *column,gpointer data); +static gboolean TracklistButtonPressed(GtkWidget *widget,GdkEventButton *event, + gpointer data); +static void SelectRow(GripInfo *ginfo,int track); +static void SelectionChanged(GtkTreeSelection *selection,gpointer data); +static void PlaylistChanged(GtkWindow *window,GtkWidget *widget,gpointer data); +static void ToggleLoop(GtkWidget *widget,gpointer data); +static void ChangePlayMode(GtkWidget *widget,gpointer data); +static void ChangeTimeMode(GtkWidget *widget,gpointer data); +static void ToggleProg(GtkWidget *widget,gpointer data); +static void ToggleControlButtons(GtkWidget *widget,GdkEventButton *event, + gpointer data); +static void ToggleVol(GtkWidget *widget,gpointer data); +static void SetVolume(GtkWidget *widget,gpointer data); +static void FastFwdCB(GtkWidget *widget,gpointer data); +static void RewindCB(GtkWidget *widget,gpointer data); +static void NextDisc(GtkWidget *widget,gpointer data); +static void PlayTrack(GripInfo *ginfo,int track); +static void PrevTrack(GripInfo *ginfo); +static void InitProgram(GripInfo *ginfo); +static void ShuffleTracks(GripInfo *ginfo); +static gboolean CheckTracks(DiscInfo *disc); + +static void ShutDownCB(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + GripDie(ginfo->gui_info.app,NULL); +} + +static void DiscDBToggle(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + if(ginfo->looking_up) { + return; + } + else { + if(ginfo->ripping_a_disc) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Cannot do lookup while ripping.")); + + return; + } + + if(ginfo->have_disc) + LookupDisc(ginfo,TRUE); + } +} + +void LookupDisc(GripInfo *ginfo,gboolean manual) +{ + int track; + gboolean present; + DiscInfo *disc; + DiscData *ddata; + + disc=&(ginfo->disc); + ddata=&(ginfo->ddata); + + ddata->data_multi_artist=FALSE; + ddata->data_year=0; + + present=DiscDBStatDiscData(disc); + + if(!manual&&present) { + DiscDBReadDiscData(disc,ddata,ginfo->discdb_encoding); + if(ginfo->ddata.data_id3genre==-1) + ginfo->ddata.data_id3genre=DiscDB2ID3(ginfo->ddata.data_genre); + + ginfo->update_required=TRUE; + ginfo->is_new_disc=TRUE; + } + else { + if(!manual) { + ddata->data_id=DiscDBDiscid(disc); + ddata->data_genre=7; /* "misc" */ + strcpy(ddata->data_title,_("Unknown Disc")); + strcpy(ddata->data_artist,""); + + for(track=0;tracknum_tracks;track++) { + sprintf(ddata->data_track[track].track_name,_("Track %02d"),track+1); + *(ddata->data_track[track].track_artist)='\0'; + *(ddata->data_track[track].track_extended)='\0'; + *(ddata->data_playlist)='\0'; + } + + *ddata->data_extended='\0'; + + ginfo->update_required=TRUE; + } + + if(!ginfo->local_mode && (manual?TRUE:ginfo->automatic_discdb)) { + ginfo->looking_up=TRUE; + + pthread_create(&(ginfo->discdb_thread),NULL,(void *)&DoLookup, + (void *)ginfo); + pthread_detach(ginfo->discdb_thread); + } + } +} + +static void DoLookup(void *data) +{ + GripInfo *ginfo; + gboolean discdb_found=FALSE; + + ginfo=(GripInfo *)data; + + if(!DiscDBLookupDisc(ginfo,&(ginfo->dbserver))) { + if(*(ginfo->dbserver2.name)) { + if(DiscDBLookupDisc(ginfo,&(ginfo->dbserver2))) { + discdb_found=TRUE; + ginfo->ask_submit=TRUE; + } + } + } + else { + discdb_found=TRUE; + } + + if(ginfo->ddata.data_id3genre==-1) + ginfo->ddata.data_id3genre=DiscDB2ID3(ginfo->ddata.data_genre); + + ginfo->looking_up=FALSE; + pthread_exit(0); +} + +gboolean DiscDBLookupDisc(GripInfo *ginfo,DiscDBServer *server) +{ + DiscDBHello hello; + DiscDBQuery query; + DiscDBEntry entry; + gboolean success=FALSE; + DiscInfo *disc; + DiscData *ddata; + + disc=&(ginfo->disc); + ddata=&(ginfo->ddata); + + if(server->use_proxy) + LogStatus(ginfo,_("Querying %s (through %s) for disc %02x.\n"), + server->name, + server->proxy->name, + DiscDBDiscid(disc)); + else + LogStatus(ginfo,_("Querying %s for disc %02x.\n"),server->name, + DiscDBDiscid(disc)); + + strncpy(hello.hello_program,"Grip",256); + strncpy(hello.hello_version,VERSION,256); + + if(ginfo->db_use_freedb && !strcasecmp(ginfo->discdb_encoding,"UTF-8")) + hello.proto_version=6; + else + hello.proto_version=5; + + if(!DiscDBDoQuery(disc,server,&hello,&query)) { + ginfo->update_required=TRUE; + } else { + switch(query.query_match) { + case MATCH_INEXACT: + case MATCH_EXACT: + LogStatus(ginfo,_("Match for \"%s / %s\"\nDownloading data...\n"), + query.query_list[0].list_artist, + query.query_list[0].list_artist); + + entry.entry_genre = query.query_list[0].list_genre; + entry.entry_id = query.query_list[0].list_id; + DiscDBRead(disc,server,&hello,&entry,ddata,ginfo->discdb_encoding); + + Debug(_("Done\n")); + success=TRUE; + + if(DiscDBWriteDiscData(disc,ddata,NULL,TRUE,FALSE,"utf-8")<0) + g_print(_("Error saving disc data\n")); + + ginfo->update_required=TRUE; + ginfo->is_new_disc=TRUE; + break; + case MATCH_NOMATCH: + LogStatus(ginfo,_("No match\n")); + break; + } + } + + return success; +} + +int GetLengthRipWidth(GripInfo *ginfo) +{ + GtkWidget *track_list; + int width,tot_width=0; + PangoLayout *layout; + + track_list=ginfo->gui_info.track_list; + + if(track_list) { + layout=gtk_widget_create_pango_layout(GTK_WIDGET(track_list), + _("Length")); + + pango_layout_get_size(layout,&width,NULL); + + g_object_unref(layout); + + tot_width+=width; + + layout=gtk_widget_create_pango_layout(GTK_WIDGET(track_list), + _("Rip")); + + pango_layout_get_size(layout,&width,NULL); + + g_object_unref(layout); + + tot_width+=width; + + tot_width/=PANGO_SCALE; + + tot_width+=25; + } + + return tot_width; +} + +void ResizeTrackList(GripInfo *ginfo) +{ + GtkWidget *track_list; + GtkTreeViewColumn *column; + int tot_width=0; + PangoLayout *layout; + + track_list=ginfo->gui_info.track_list; + + if(track_list) { + tot_width=GetLengthRipWidth(ginfo); + + column=gtk_tree_view_get_column(GTK_TREE_VIEW(track_list), + TRACKLIST_TRACK_COL); + gtk_tree_view_column_set_fixed_width(column,track_list-> + allocation.width-tot_width); + } +} + +void MakeTrackPage(GripInfo *ginfo) +{ + GtkWidget *trackpage; + GtkWidget *vbox; + GripGUI *uinfo; + GtkRequisition sizereq; + GtkWidget *scroll; + GtkTreeViewColumn *column; + GtkCellRenderer *renderer; + GtkTreeSelection *select; + + uinfo=&(ginfo->gui_info); + + trackpage=MakeNewPage(uinfo->notebook,_("Tracks")); + + vbox=gtk_vbox_new(FALSE,0); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + + uinfo->disc_name_label=gtk_label_new(""); + gtk_box_pack_start(GTK_BOX(vbox),uinfo->disc_name_label,FALSE,FALSE,0); + gtk_widget_show(uinfo->disc_name_label); + + uinfo->disc_artist_label=gtk_label_new(""); + gtk_box_pack_start(GTK_BOX(vbox),uinfo->disc_artist_label,FALSE,FALSE,0); + gtk_widget_show(uinfo->disc_artist_label); + + uinfo->track_list_store=gtk_list_store_new(TRACKLIST_N_COLUMNS, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_BOOLEAN, + G_TYPE_INT); + + uinfo->track_list= + gtk_tree_view_new_with_model(GTK_TREE_MODEL(uinfo->track_list_store)); + + renderer=gtk_cell_renderer_text_new(); + + column=gtk_tree_view_column_new_with_attributes(_("Track"),renderer, + "text",TRACKLIST_TRACK_COL, + NULL); + + gtk_tree_view_column_set_sizing(column,GTK_TREE_VIEW_COLUMN_FIXED); + gtk_tree_view_column_set_fixed_width(column, + uinfo->win_width- + (GetLengthRipWidth(ginfo)+15)); + + gtk_tree_view_append_column(GTK_TREE_VIEW(uinfo->track_list),column); + + column=gtk_tree_view_column_new_with_attributes(_("Length"),renderer, + "text",TRACKLIST_LENGTH_COL, + NULL); + + gtk_tree_view_column_set_alignment(column,0.5); + + gtk_tree_view_append_column(GTK_TREE_VIEW(uinfo->track_list),column); + + + renderer=gtk_cell_renderer_toggle_new(); + + column=gtk_tree_view_column_new_with_attributes(_("Rip"),renderer, + "active", + TRACKLIST_RIP_COL, + NULL); + + gtk_tree_view_column_set_alignment(column,0.5); + gtk_tree_view_column_set_fixed_width(column,20); + gtk_tree_view_column_set_sizing(column,GTK_TREE_VIEW_COLUMN_FIXED); + gtk_tree_view_column_set_max_width(column,20); + gtk_tree_view_column_set_clickable(column,TRUE); + + g_signal_connect(G_OBJECT(column),"clicked", + G_CALLBACK(ClickColumn),(gpointer)ginfo); + + gtk_tree_view_append_column(GTK_TREE_VIEW(uinfo->track_list),column); + + select=gtk_tree_view_get_selection(GTK_TREE_VIEW(uinfo->track_list)); + + gtk_tree_selection_set_mode(select,GTK_SELECTION_SINGLE); + + g_signal_connect(G_OBJECT(select),"changed", + G_CALLBACK(SelectionChanged),(gpointer)ginfo); + + + g_signal_connect(G_OBJECT(uinfo->track_list),"button_press_event", + G_CALLBACK(TracklistButtonPressed),(gpointer)ginfo); + + + + /* g_signal_connect(G_OBJECT(uinfo->track_list),"cursor_changed", + G_CALLBACK(SelectRow), + (gpointer)ginfo); + + g_signal_connect(G_OBJECT(uinfo->track_list),"unselect_row", + G_CALLBACK(UnSelectRow), + (gpointer)uinfo); + + g_signal_connect(G_OBJECT(uinfo->track_list),"button_press_event", + G_CALLBACK(CListButtonPressed),(gpointer)uinfo); + + g_signal_connect(G_OBJECT(uinfo->track_list),"click_column", + G_CALLBACK(ClickColumn),(gpointer)ginfo);*/ + + + scroll=gtk_scrolled_window_new(NULL,NULL); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), + GTK_POLICY_NEVER,GTK_POLICY_AUTOMATIC); + gtk_container_add(GTK_CONTAINER(scroll),uinfo->track_list); + gtk_box_pack_start(GTK_BOX(vbox),scroll,TRUE,TRUE,0); + + gtk_widget_show(scroll); + + gtk_widget_show(uinfo->track_list); + + gtk_widget_size_request(uinfo->track_list,&sizereq); + // gtk_widget_set_usize(trackpage,sizereq.width+30,-1); + gtk_widget_set_usize(trackpage,500,-1); + + gtk_container_add(GTK_CONTAINER(trackpage),vbox); + gtk_widget_show(vbox); +} + +void SetCurrentTrackIndex(GripInfo *ginfo,int track) +{ + /* Looks up the track of index track in the program */ + for(ginfo->current_track_index = 0; + (ginfo->current_track_index < MAX_TRACKS) + && (ginfo->current_track_index < ginfo->prog_totaltracks) + && (CURRENT_TRACK != track); + ginfo->current_track_index++) + continue; +} + +static void SetCurrentTrack(GripInfo *ginfo,int track) +{ + char buf[256]; + int tracklen; + const gchar *st,*st2; + + GripGUI *uinfo; + + uinfo=&(ginfo->gui_info); + + if(track<0) { + gtk_label_set(GTK_LABEL(uinfo->current_track_label),"--"); + gtk_entry_set_text(GTK_ENTRY(uinfo->start_sector_entry),"0"); + gtk_entry_set_text(GTK_ENTRY(uinfo->end_sector_entry),"0"); + + g_signal_handlers_block_by_func(G_OBJECT(uinfo->track_edit_entry), + TrackEditChanged,(gpointer)ginfo); + gtk_entry_set_text(GTK_ENTRY(uinfo->track_edit_entry),""); + + g_signal_handlers_unblock_by_func(G_OBJECT(uinfo->track_edit_entry), + TrackEditChanged,(gpointer)ginfo); + + g_signal_handlers_block_by_func(G_OBJECT(uinfo-> + track_artist_edit_entry), + TrackEditChanged,(gpointer)ginfo); + + gtk_entry_set_text(GTK_ENTRY(uinfo->track_artist_edit_entry),""); + + g_signal_handlers_unblock_by_func(G_OBJECT(uinfo-> + track_artist_edit_entry), + TrackEditChanged,(gpointer)ginfo); + } + else { + g_signal_handlers_block_by_func(G_OBJECT(uinfo->track_edit_entry), + TrackEditChanged,(gpointer)ginfo); + gtk_entry_set_text(GTK_ENTRY(uinfo->track_edit_entry), + ginfo->ddata.data_track[track].track_name); + + g_signal_handlers_unblock_by_func(G_OBJECT(uinfo->track_edit_entry), + TrackEditChanged,(gpointer)ginfo); + + g_signal_handlers_block_by_func(G_OBJECT(uinfo-> + track_artist_edit_entry), + TrackEditChanged,(gpointer)ginfo); + + gtk_entry_set_text(GTK_ENTRY(uinfo->track_artist_edit_entry), + ginfo->ddata.data_track[track].track_artist); + + g_signal_handlers_unblock_by_func(G_OBJECT(uinfo-> + track_artist_edit_entry), + TrackEditChanged,(gpointer)ginfo); + g_snprintf(buf,80,"%02d",track+1); + gtk_label_set(GTK_LABEL(uinfo->current_track_label),buf); + + gtk_entry_set_text(GTK_ENTRY(uinfo->start_sector_entry),"0"); + + tracklen=(ginfo->disc.track[track+1].start_frame-1)- + ginfo->disc.track[track].start_frame; + g_snprintf(buf,80,"%d",tracklen); + gtk_entry_set_text(GTK_ENTRY(uinfo->end_sector_entry),buf); + + SetCurrentTrackIndex(ginfo,track); + } +} + +gboolean TrackIsChecked(GripGUI *uinfo,int track) +{ + GtkTreePath *path; + GtkTreeIter iter; + gboolean checked; + + path=gtk_tree_path_new_from_indices(track,-1); + + gtk_tree_model_get_iter(GTK_TREE_MODEL(uinfo->track_list_store),&iter,path); + + gtk_tree_model_get(GTK_TREE_MODEL(uinfo->track_list_store), + &iter,TRACKLIST_RIP_COL,&checked,-1); + + return checked; +} + +static void ToggleChecked(GripGUI *uinfo,int track) +{ + SetChecked(uinfo,track,!TrackIsChecked(uinfo,track)); +} + +void SetChecked(GripGUI *uinfo,int track,gboolean checked) +{ + GtkTreePath *path; + GtkTreeIter iter; + + path=gtk_tree_path_new_from_indices(track,-1); + + gtk_tree_model_get_iter(GTK_TREE_MODEL(uinfo->track_list_store),&iter,path); + + gtk_list_store_set(uinfo->track_list_store,&iter, + TRACKLIST_RIP_COL,checked,-1); + + gtk_tree_path_free(path); +} + +static void ClickColumn(GtkTreeViewColumn *column,gpointer data) +{ + int track; + int numsel=0; + gboolean check; + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + if(ginfo->have_disc) { + for(track=0;trackdisc.num_tracks;track++) + if(TrackIsChecked(&(ginfo->gui_info),track)) numsel++; + + if(ginfo->disc.num_tracks>1) { + check=(numseldisc.num_tracks/2); + } + else { + check=(numsel==0); + } + + for(track=0;trackdisc.num_tracks;track++) + SetChecked(&(ginfo->gui_info),track,check); + } +} + +static gboolean TracklistButtonPressed(GtkWidget *widget,GdkEventButton *event, + gpointer data) +{ + GripInfo *ginfo; + GripGUI *uinfo; + GtkTreeViewColumn *column; + GtkTreePath *path; + int *indices; + GList *cols; + int row,col; + + ginfo=(GripInfo *)data; + uinfo=&(ginfo->gui_info); + + if(gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(uinfo->track_list), + event->x,event->y, + &path,&column,NULL,NULL)) { + indices=gtk_tree_path_get_indices(path); + + row=indices[0]; + + cols=gtk_tree_view_get_columns(GTK_TREE_VIEW(column->tree_view)); + + col=g_list_index(cols,(gpointer)column); + + g_list_free(cols); + + if(event->type==GDK_BUTTON_PRESS) { + if((event->button>1) || (col==2)) { + ToggleChecked(uinfo,row); + } + } + } + + return FALSE; +} + +static void SelectRow(GripInfo *ginfo,int track) +{ + GtkTreePath *path; + GtkTreeSelection *select; + + path=gtk_tree_path_new_from_indices(track,-1); + + select= + gtk_tree_view_get_selection(GTK_TREE_VIEW(ginfo->gui_info.track_list)); + + gtk_tree_selection_select_path(select,path); + + gtk_tree_path_free(path); +} + +static void SelectionChanged(GtkTreeSelection *selection,gpointer data) +{ + GtkTreeIter iter; + GtkTreeModel *model; + int row=-1; + GripInfo *ginfo; + GripGUI *uinfo; + + ginfo=(GripInfo *)data; + uinfo=&(ginfo->gui_info); + + if(gtk_tree_selection_get_selected(selection,&model,&iter)) { + gtk_tree_model_get(model,&iter,TRACKLIST_NUM_COL,&row,-1); + } + + if(row!=-1) + SetCurrentTrack(ginfo,row); + + if((ginfo->disc.disc_mode==CDAUDIO_PLAYING)&& + (ginfo->disc.curr_track!=(row+1))) + PlayTrack(ginfo,row); +} + +static void PlaylistChanged(GtkWindow *window,GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + strcpy(ginfo->ddata.data_playlist, + gtk_entry_get_text(GTK_ENTRY(ginfo->gui_info.playlist_entry))); + + InitProgram(ginfo); + + if(DiscDBWriteDiscData(&(ginfo->disc),&(ginfo->ddata),NULL,TRUE,FALSE, + "utf-8")<0) + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Error saving disc data.")); +} + +static void ToggleLoop(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + ginfo->playloop=!ginfo->playloop; + + if(ginfo->playloop) + CopyPixmap(GTK_PIXMAP(ginfo->gui_info.loop_image),\ + GTK_PIXMAP(ginfo->gui_info.loop_indicator)); + else + CopyPixmap(GTK_PIXMAP(ginfo->gui_info.noloop_image), + GTK_PIXMAP(ginfo->gui_info.loop_indicator)); + +} + +static void ChangePlayMode(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + ginfo->play_mode=(ginfo->play_mode+1)%PM_LASTMODE; + + CopyPixmap(GTK_PIXMAP(ginfo->gui_info.play_pix[ginfo->play_mode]), + GTK_PIXMAP(ginfo->gui_info.play_indicator)); + + gtk_widget_set_sensitive(GTK_WIDGET(ginfo->gui_info.playlist_entry), + ginfo->play_mode==PM_PLAYLIST); + + InitProgram(ginfo); +} + +GtkWidget *MakePlayOpts(GripInfo *ginfo) +{ + GripGUI *uinfo; + GtkWidget *ebox; + GtkWidget *hbox; + GtkWidget *button; + + uinfo=&(ginfo->gui_info); + + ebox=gtk_event_box_new(); + gtk_widget_set_style(ebox,uinfo->style_wb); + + hbox=gtk_hbox_new(FALSE,2); + + uinfo->playlist_entry=gtk_entry_new_with_max_length(256); + g_signal_connect(G_OBJECT(uinfo->playlist_entry),"focus_out_event", + G_CALLBACK(PlaylistChanged),(gpointer)ginfo); + gtk_widget_set_sensitive(GTK_WIDGET(uinfo->playlist_entry), + ginfo->play_mode==PM_PLAYLIST); + gtk_box_pack_start(GTK_BOX(hbox),uinfo->playlist_entry,TRUE,TRUE,0); + gtk_widget_show(uinfo->playlist_entry); + + uinfo->play_indicator=NewBlankPixmap(uinfo->app); + CopyPixmap(GTK_PIXMAP(uinfo->play_pix[ginfo->play_mode]), + GTK_PIXMAP(uinfo->play_indicator)); + + button=gtk_button_new(); + gtk_container_add(GTK_CONTAINER(button),uinfo->play_indicator); + gtk_widget_show(uinfo->play_indicator); + gtk_widget_set_style(button,uinfo->style_dark_grey); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(ChangePlayMode),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Rotate play mode"),NULL); + gtk_widget_show(button); + + uinfo->loop_indicator=NewBlankPixmap(uinfo->app); + + if(ginfo->playloop) + CopyPixmap(GTK_PIXMAP(uinfo->loop_image), + GTK_PIXMAP(uinfo->loop_indicator)); + else + CopyPixmap(GTK_PIXMAP(uinfo->noloop_image), + GTK_PIXMAP(uinfo->loop_indicator)); + + button=gtk_button_new(); + gtk_container_add(GTK_CONTAINER(button),uinfo->loop_indicator); + gtk_widget_show(uinfo->loop_indicator); + gtk_widget_set_style(button,uinfo->style_dark_grey); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(ToggleLoop),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Toggle loop play"),NULL); + gtk_widget_show(button); + + gtk_container_add(GTK_CONTAINER(ebox),hbox); + gtk_widget_show(hbox); + + return ebox; +} + +GtkWidget *MakeControls(GripInfo *ginfo) +{ + GripGUI *uinfo; + GtkWidget *vbox,*vbox3,*hbox,*imagebox,*hbox2; + GtkWidget *indicator_box; + GtkWidget *button; + GtkWidget *ebox,*lcdbox; + GtkObject *adj; + int mycpu; + + uinfo=&(ginfo->gui_info); + + ebox=gtk_event_box_new(); + gtk_widget_set_style(ebox,uinfo->style_wb); + + vbox=gtk_vbox_new(FALSE,0); + gtk_container_border_width(GTK_CONTAINER(vbox),0); + + vbox3=gtk_vbox_new(FALSE,2); + gtk_container_border_width(GTK_CONTAINER(vbox3),2); + + lcdbox=gtk_event_box_new(); + g_signal_connect(G_OBJECT(lcdbox),"button_press_event", + G_CALLBACK(ToggleControlButtons),(gpointer)ginfo); + gtk_widget_set_style(lcdbox,uinfo->style_LCD); + + hbox2=gtk_hbox_new(FALSE,0); + + imagebox=gtk_vbox_new(FALSE,0); + + gtk_box_pack_start(GTK_BOX(imagebox),uinfo->upleft_image,FALSE,FALSE,0); + gtk_widget_show(uinfo->upleft_image); + + gtk_box_pack_end(GTK_BOX(imagebox),uinfo->lowleft_image,FALSE,FALSE,0); + gtk_widget_show(uinfo->lowleft_image); + + gtk_box_pack_start(GTK_BOX(hbox2),imagebox,FALSE,FALSE,0); + gtk_widget_show(imagebox); + + hbox=gtk_hbox_new(TRUE,0); + gtk_container_border_width(GTK_CONTAINER(hbox),0); + + uinfo->current_track_label=gtk_label_new("--"); + gtk_box_pack_start(GTK_BOX(hbox),uinfo->current_track_label,FALSE,FALSE,0); + gtk_widget_show(uinfo->current_track_label); + + button=gtk_button_new(); + gtk_widget_set_style(button,uinfo->style_LCD); + + gtk_button_set_relief(GTK_BUTTON(button),GTK_RELIEF_NONE); + + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(ChangeTimeMode),(gpointer)ginfo); + + uinfo->play_time_label=gtk_label_new("--:--"); + gtk_container_add(GTK_CONTAINER(button),uinfo->play_time_label); + gtk_widget_show(uinfo->play_time_label); + + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + gtk_widget_show(button); + + indicator_box=gtk_hbox_new(TRUE,0); + + uinfo->rip_indicator=NewBlankPixmap(GTK_WIDGET(uinfo->app)); + gtk_box_pack_start(GTK_BOX(indicator_box),uinfo->rip_indicator,TRUE,TRUE,0); + gtk_widget_show(uinfo->rip_indicator); + + uinfo->lcd_smile_indicator=NewBlankPixmap(GTK_WIDGET(uinfo->app)); + gtk_tooltips_set_tip(MakeToolTip(),uinfo->lcd_smile_indicator, + _("Rip status"),NULL); + gtk_box_pack_start(GTK_BOX(indicator_box),uinfo->lcd_smile_indicator, + TRUE,TRUE,0); + gtk_widget_show(uinfo->lcd_smile_indicator); + + for(mycpu=0;mycpunum_cpu;mycpu++){ + uinfo->mp3_indicator[mycpu]=NewBlankPixmap(GTK_WIDGET(uinfo->app)); + gtk_box_pack_start(GTK_BOX(indicator_box), + uinfo->mp3_indicator[mycpu],TRUE,TRUE,0); + gtk_widget_show(uinfo->mp3_indicator[mycpu]); + } + + uinfo->discdb_indicator=NewBlankPixmap(GTK_WIDGET(uinfo->app)); + gtk_box_pack_start(GTK_BOX(indicator_box),uinfo->discdb_indicator, + TRUE,TRUE,0); + gtk_widget_show(uinfo->discdb_indicator); + + gtk_box_pack_start(GTK_BOX(hbox),indicator_box,TRUE,TRUE,0); + gtk_widget_show(indicator_box); + + gtk_container_add(GTK_CONTAINER(hbox2),hbox); + gtk_widget_show(hbox); + + imagebox=gtk_vbox_new(FALSE,0); + + gtk_box_pack_start(GTK_BOX(imagebox),uinfo->upright_image,FALSE,FALSE,0); + gtk_widget_show(uinfo->upright_image); + + gtk_box_pack_end(GTK_BOX(imagebox),uinfo->lowright_image,FALSE,FALSE,0); + gtk_widget_show(uinfo->lowright_image); + + gtk_box_pack_start(GTK_BOX(hbox2),imagebox,FALSE,FALSE,0); + gtk_widget_show(imagebox); + + gtk_container_add(GTK_CONTAINER(lcdbox),hbox2); + gtk_widget_show(hbox2); + + gtk_box_pack_start(GTK_BOX(vbox3),lcdbox,FALSE,FALSE,0); + gtk_widget_show(lcdbox); + + gtk_box_pack_start(GTK_BOX(vbox),vbox3,FALSE,FALSE,0); + gtk_widget_show(vbox3); + + adj=gtk_adjustment_new((gfloat)ginfo->volume,0.0,255.0,1.0,1.0,0.0); + g_signal_connect(adj,"value_changed", + G_CALLBACK(SetVolume),(gpointer)ginfo); + uinfo->volume_control=gtk_hscale_new(GTK_ADJUSTMENT(adj)); + + gtk_scale_set_draw_value(GTK_SCALE(uinfo->volume_control),FALSE); + gtk_widget_set_name(uinfo->volume_control,"darkgrey"); + gtk_box_pack_start(GTK_BOX(vbox),uinfo->volume_control,FALSE,FALSE,0); + + /* CDGetVolume(cd_desc,&vol); + gtk_adjustment_set_value(GTK_ADJUSTMENT(adj),(vol.vol_front.left+ + vol.vol_front.right)/2);*/ + + if(uinfo->volvis) gtk_widget_show(uinfo->volume_control); + + uinfo->control_button_box=gtk_vbox_new(TRUE,0); + + hbox=gtk_hbox_new(TRUE,0); + + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->playpaus_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(PlayTrackCB),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Play track / Pause play"),NULL); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + gtk_widget_show(button); + + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->rew_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + g_signal_connect(G_OBJECT(button),"pressed", + G_CALLBACK(RewindCB),(gpointer)ginfo); + g_signal_connect(G_OBJECT(button),"released", + G_CALLBACK(RewindCB),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Rewind"),NULL); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + gtk_widget_show(button); + + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->ff_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + g_signal_connect(G_OBJECT(button),"pressed", + G_CALLBACK(FastFwdCB),(gpointer)ginfo); + g_signal_connect(G_OBJECT(button),"released", + G_CALLBACK(FastFwdCB),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("FastForward"),NULL); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + gtk_widget_show(button); + + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->prevtrk_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(PrevTrackCB),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Go to previous track"),NULL); + gtk_widget_show(button); + + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->nexttrk_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(NextTrackCB),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Go to next track"),NULL); + gtk_widget_show(button); + + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->progtrack_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(ToggleProg),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Toggle play mode options"),NULL); + gtk_widget_show(button); + + if(ginfo->changer_slots>1) { + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->rotate_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(NextDisc),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Next Disc"),NULL); + gtk_widget_show(button); + } + + gtk_box_pack_start(GTK_BOX(uinfo->control_button_box),hbox,TRUE,TRUE,0); + gtk_widget_show(hbox); + + hbox=gtk_hbox_new(TRUE,0); + + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->stop_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(StopPlayCB),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Stop play"),NULL); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + gtk_widget_show(button); + + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->eject_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(EjectDisc),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Eject disc"),NULL); + gtk_widget_show(button); + + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->cdscan_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(ScanDisc),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Scan Disc Contents"),NULL); + gtk_widget_show(button); + + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->vol_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(ToggleVol),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Toggle Volume Control"),NULL); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + gtk_widget_show(button); + + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->edit_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(ToggleTrackEdit),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Toggle disc editor"),NULL); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + gtk_widget_show(button); + + if(!ginfo->local_mode) { + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->discdbwht_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(DiscDBToggle),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Initiate/abort DiscDB lookup"),NULL); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + gtk_widget_show(button); + } + + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->minmax_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(MinMax),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Toggle track display"),NULL); + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + gtk_widget_show(button); + + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->quit_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Exit Grip"),NULL); + + gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(ShutDownCB),(gpointer)ginfo); + gtk_widget_show(button); + + gtk_box_pack_start(GTK_BOX(uinfo->control_button_box),hbox,TRUE,TRUE,0); + gtk_widget_show(hbox); + + gtk_box_pack_start(GTK_BOX(vbox),uinfo->control_button_box,TRUE,TRUE,0); + gtk_widget_show(uinfo->control_button_box); + + + gtk_container_add(GTK_CONTAINER(ebox),vbox); + gtk_widget_show(vbox); + + return ebox; +} + +static void ChangeTimeMode(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + ginfo->gui_info.time_display_mode=(ginfo->gui_info.time_display_mode+1)%4; + UpdateDisplay(ginfo); +} + +void MinMax(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + GripGUI *uinfo; + + ginfo=(GripInfo *)data; + uinfo=&(ginfo->gui_info); + + if(uinfo->minimized) { + gtk_container_border_width(GTK_CONTAINER(uinfo->winbox),3); + gtk_box_set_child_packing(GTK_BOX(uinfo->winbox), + uinfo->controls,FALSE,FALSE,0,GTK_PACK_START); + gtk_widget_show(uinfo->notebook); + + CopyPixmap(GTK_PIXMAP(uinfo->lcd_smile_indicator), + GTK_PIXMAP(uinfo->smile_indicator)); + CopyPixmap(GTK_PIXMAP(uinfo->empty_image), + GTK_PIXMAP(uinfo->lcd_smile_indicator)); + + gtk_widget_set_size_request(GTK_WIDGET(uinfo->app), + WINWIDTH,WINHEIGHT); + + gtk_window_resize(GTK_WINDOW(uinfo->app), + uinfo->win_width, + uinfo->win_height); + } + else { + gtk_container_border_width(GTK_CONTAINER(uinfo->winbox),0); + gtk_box_set_child_packing(GTK_BOX(uinfo->winbox),uinfo->controls, + TRUE,TRUE,0,GTK_PACK_START); + + gtk_widget_hide(uinfo->notebook); + + CopyPixmap(GTK_PIXMAP(uinfo->smile_indicator), + GTK_PIXMAP(uinfo->lcd_smile_indicator)); + + if(uinfo->track_edit_visible) ToggleTrackEdit(NULL,(gpointer)ginfo); + if(uinfo->volvis) ToggleVol(NULL,(gpointer)ginfo); + if(uinfo->track_prog_visible) ToggleProg(NULL,(gpointer)ginfo); + + gtk_widget_set_size_request(GTK_WIDGET(uinfo->app), + MIN_WINWIDTH,MIN_WINHEIGHT); + + gtk_window_resize(GTK_WINDOW(uinfo->app), + uinfo->win_width_min, + uinfo->win_height_min); + + UpdateGTK(); + } + + uinfo->minimized=!uinfo->minimized; +} + +static void ToggleProg(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + GripGUI *uinfo; + + ginfo=(GripInfo *)data; + uinfo=&(ginfo->gui_info); + + if(uinfo->track_prog_visible) { + gtk_widget_hide(uinfo->playopts); + } + else { + gtk_widget_show(uinfo->playopts); + } + + uinfo->track_prog_visible=!uinfo->track_prog_visible; + + if(uinfo->minimized) { + MinMax(NULL,ginfo); + } +} + +static void ToggleControlButtons(GtkWidget *widget,GdkEventButton *event, + gpointer data) +{ + GripGUI *uinfo; + + uinfo=&((GripInfo *)data)->gui_info; + + if(uinfo->control_buttons_visible) { + gtk_widget_hide(uinfo->control_button_box); + + UpdateGTK(); + } + else { + gtk_widget_show(uinfo->control_button_box); + } + + uinfo->control_buttons_visible=!uinfo->control_buttons_visible; +} + +static void ToggleVol(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + GripGUI *uinfo; + + ginfo=(GripInfo *)data; + uinfo=&(ginfo->gui_info); + + if(uinfo->volvis) { + gtk_widget_hide(uinfo->volume_control); + } + else { + gtk_widget_show(uinfo->volume_control); + } + + uinfo->volvis=!uinfo->volvis; + + if(uinfo->minimized) { + MinMax(NULL,ginfo); + } +} + +static void SetVolume(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + DiscVolume vol; + + ginfo=(GripInfo *)data; + + ginfo->volume=vol.vol_front.left=vol.vol_front.right= + vol.vol_back.left=vol.vol_back.right=GTK_ADJUSTMENT(widget)->value; + + CDSetVolume(&(ginfo->disc),&vol); +} + +static void FastFwdCB(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + if(ginfo->ripping_a_disc) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Cannot fast forward while ripping.")); + + return; + } + + ginfo->ffwding=!ginfo->ffwding; + + if(ginfo->ffwding) FastFwd(ginfo); +} + +void FastFwd(GripInfo *ginfo) +{ + DiscTime tv; + + tv.mins=0; + tv.secs=5; + + if((ginfo->disc.disc_mode==CDAUDIO_PLAYING)|| + (ginfo->disc.disc_mode==CDAUDIO_PAUSED)) { + CDAdvance(&(ginfo->disc),&tv); + } +} + +static void RewindCB(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + if(ginfo->ripping_a_disc) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Cannot rewind while ripping.")); + + return; + } + + ginfo->rewinding=!ginfo->rewinding; + + if(ginfo->rewinding) Rewind(ginfo); +} + +void Rewind(GripInfo *ginfo) +{ + DiscTime tv; + + tv.mins=0; + tv.secs=-5; + + if((ginfo->disc.disc_mode==CDAUDIO_PLAYING)|| + (ginfo->disc.disc_mode==CDAUDIO_PAUSED)) { + CDAdvance(&(ginfo->disc),&tv); + } +} + +static void NextDisc(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + if(ginfo->ripping_a_disc) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Cannot switch discs while ripping.")); + + return; + } + + if(ginfo->changer_slots>1) { + ginfo->current_disc=(ginfo->current_disc+1)%ginfo->changer_slots; + CDChangerSelectDisc(&(ginfo->disc),ginfo->current_disc); + ginfo->have_disc=FALSE; + } +} + +void EjectDisc(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + LogStatus(ginfo,_("Eject disc\n")); + + if(ginfo->ripping_a_disc) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Cannot eject while ripping.")); + + return; + } + + if(ginfo->auto_eject_countdown) return; + + Busy(&(ginfo->gui_info)); + + if(ginfo->have_disc) { + Debug(_("Have disc -- ejecting\n")); + + CDStop(&(ginfo->disc)); + CDEject(&(ginfo->disc)); + ginfo->playing=FALSE; + ginfo->have_disc=FALSE; + ginfo->update_required=TRUE; + ginfo->current_discid=0; + ginfo->tray_open=TRUE; + } + else { + if(ginfo->faulty_eject) { + if(ginfo->tray_open) CDClose(&(ginfo->disc)); + else CDEject(&(ginfo->disc)); + } + else { + if(TrayOpen(&(ginfo->disc))!=0) CDClose(&(ginfo->disc)); + else CDEject(&(ginfo->disc)); + } + + ginfo->tray_open=!ginfo->tray_open; + + if(!ginfo->tray_open) + CheckNewDisc(ginfo,FALSE); + } + + UnBusy(&(ginfo->gui_info)); +} + +void StopPlayCB(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + if(ginfo->ripping_a_disc) return; + + CDStop(&(ginfo->disc)); + CDStat(&(ginfo->disc),FALSE); + ginfo->stopped=TRUE; + + if(ginfo->stop_first) + SelectRow(ginfo,0); + + TrayMenuShowPlay(ginfo); +} + +void PlaySegment(GripInfo *ginfo,int track) +{ + CDPlayFrames(&(ginfo->disc), + ginfo->disc.track[track].start_frame+ginfo->start_sector, + ginfo->disc.track[track].start_frame+ginfo->end_sector); +} + + + +void PlayTrackCB(GtkWidget *widget,gpointer data) +{ + int track; + GripInfo *ginfo; + DiscInfo *disc; + + ginfo=(GripInfo *)data; + disc=&(ginfo->disc); + + if(ginfo->ripping_a_disc) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Cannot play while ripping.")); + + return; + } + + CDStat(disc,FALSE); + + if(ginfo->play_mode!=PM_NORMAL&&!((disc->disc_mode==CDAUDIO_PLAYING)|| + disc->disc_mode==CDAUDIO_PAUSED)) { + if(ginfo->play_mode==PM_SHUFFLE && ginfo->automatic_reshuffle) + ShuffleTracks(ginfo); + ginfo->current_track_index=0; + + SelectRow(ginfo,CURRENT_TRACK); + } + + track=CURRENT_TRACK; + + if(track==(disc->curr_track-1)) { + switch(disc->disc_mode) { + case CDAUDIO_PLAYING: + CDPause(disc); + TrayMenuShowPlay(ginfo); + return; + break; + case CDAUDIO_PAUSED: + CDResume(disc); + TrayMenuShowPause(ginfo); + return; + break; + default: + PlayTrack(ginfo,track); + TrayMenuShowPause(ginfo); + break; + } + } + else { + PlayTrack(ginfo,track); + TrayMenuShowPause(ginfo); + } +} + +static void PlayTrack(GripInfo *ginfo,int track) +{ + Busy(&(ginfo->gui_info)); + + if(ginfo->play_mode==PM_NORMAL) + CDPlayTrack(&(ginfo->disc),track+1,ginfo->disc.num_tracks); + else CDPlayTrack(&(ginfo->disc),track+1,track+1); + + UnBusy(&(ginfo->gui_info)); + + ginfo->playing=TRUE; +} + +void NextTrackCB(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + NextTrack(ginfo); +} + +void NextTrack(GripInfo *ginfo) +{ + if(ginfo->ripping_a_disc) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Cannot switch tracks while ripping.")); + return; + } + + CDStat(&(ginfo->disc),FALSE); + + if(ginfo->current_track_index<(ginfo->prog_totaltracks-1)) { + SelectRow(ginfo,NEXT_TRACK); + } + else { + if(!ginfo->playloop) { + ginfo->stopped=TRUE; + } + + SelectRow(ginfo,ginfo->tracks_prog[0]); + } +} + +void PrevTrackCB(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + PrevTrack(ginfo); +} + +static void PrevTrack(GripInfo *ginfo) +{ + if(ginfo->ripping_a_disc) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Cannot switch tracks while ripping.")); + return; + } + + CDStat(&(ginfo->disc),FALSE); + + if((ginfo->disc.disc_mode==CDAUDIO_PLAYING) && + ((ginfo->disc.curr_frame- + ginfo->disc.track[ginfo->disc.curr_track-1].start_frame) > 100)) + PlayTrack(ginfo,CURRENT_TRACK); + else { + if(ginfo->current_track_index) { + SelectRow(ginfo,PREV_TRACK); + } + else { + if(ginfo->playloop) { + SelectRow(ginfo,ginfo->tracks_prog[ginfo->prog_totaltracks-1]); + } + } + } +} + +static void InitProgram(GripInfo *ginfo) +{ + int track; + char *tok; + int mode; + char *plist; + const char *tmp; + + mode=ginfo->play_mode; + + if((mode==PM_PLAYLIST)) { + tmp=gtk_entry_get_text(GTK_ENTRY(ginfo->gui_info.playlist_entry)); + + if(!tmp || !*tmp) { + mode=PM_NORMAL; + } + } + + if(mode==PM_PLAYLIST) { + plist= + strdup(gtk_entry_get_text(GTK_ENTRY(ginfo->gui_info.playlist_entry))); + + ginfo->prog_totaltracks=0; + + tok=strtok(plist,","); + + while(tok) { + ginfo->tracks_prog[ginfo->prog_totaltracks++]=atoi(tok)-1; + + tok=strtok(NULL,","); + } + + free(plist); + } + else { + ginfo->prog_totaltracks=ginfo->disc.num_tracks; + + for(track=0;trackprog_totaltracks;track++) { + ginfo->tracks_prog[track]=track; + } + + if(mode==PM_SHUFFLE) + ShuffleTracks(ginfo); + } +} + + /* Shuffle the tracks around a bit */ +static void ShuffleTracks(GripInfo *ginfo) +{ + int t1,t2,tmp,shuffle; + + for(shuffle=0;shuffle<(ginfo->prog_totaltracks*10);shuffle++) { + t1=RRand(ginfo->prog_totaltracks); + t2=RRand(ginfo->prog_totaltracks); + + tmp=ginfo->tracks_prog[t1]; + ginfo->tracks_prog[t1]=ginfo->tracks_prog[t2]; + ginfo->tracks_prog[t2]=tmp; + } +} + +void CheckNewDisc(GripInfo *ginfo,gboolean force) +{ + int new_id; + DiscInfo *disc; + + disc=&(ginfo->disc); + + if(!ginfo->looking_up) { + Debug(_("Checking for a new disc\n")); + + if(CDStat(disc,FALSE) + && disc->disc_present + && CDStat(disc,TRUE)) { + Debug(_("CDStat found a disc, checking tracks\n")); + + if(CheckTracks(disc)) { + Debug(_("We have a valid disc!\n")); + + new_id=DiscDBDiscid(disc); + + InitProgram(ginfo); + + if(ginfo->play_first) + if(disc->disc_mode == CDAUDIO_COMPLETED || + disc->disc_mode == CDAUDIO_NOSTATUS) { + SelectRow(ginfo,0); + + disc->curr_track = 1; + } + + if(new_id || force) { + ginfo->have_disc=TRUE; + + if(ginfo->play_on_insert) PlayTrackCB(NULL,(gpointer)ginfo); + + LookupDisc(ginfo,FALSE); + } + } + else { + if(ginfo->have_disc) + ginfo->update_required=TRUE; + + ginfo->have_disc=FALSE; + Debug(_("No non-zero length tracks\n")); + } + } + else { + if(ginfo->have_disc) { + ginfo->update_required=TRUE; + } + + ginfo->have_disc=FALSE; + Debug(_("CDStat said no disc\n")); + } + } +} + +/* Check to make sure we didn't get a false alarm from the cdrom device */ + +static gboolean CheckTracks(DiscInfo *disc) +{ + int track; + gboolean have_track=FALSE; + + for(track=0;tracknum_tracks;track++) + if(disc->track[track].length.mins|| + disc->track[track].length.secs) have_track=TRUE; + + return have_track; +} + +/* Scan the disc */ +void ScanDisc(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + ginfo->update_required=TRUE; + + CheckNewDisc(ginfo,TRUE); +} + +void UpdateDisplay(GripInfo *ginfo) +{ + /* Note: need another solution other than statics if we ever want to be + reentrant */ + static int play_counter=0; + static int discdb_counter=0; + char buf[80]=""; + char icon_buf[80]; + static int frames; + static int secs; + static int mins; + static int old_width=0; + int totsecs; + GripGUI *uinfo; + DiscInfo *disc; + + uinfo=&(ginfo->gui_info); + disc=&(ginfo->disc); + + if(!uinfo->minimized) { + if(uinfo->track_edit_visible) { + gtk_window_get_size(GTK_WINDOW(uinfo->app),&uinfo->win_width, + &uinfo->win_height_edit); + } + else + gtk_window_get_size(GTK_WINDOW(uinfo->app),&uinfo->win_width, + &uinfo->win_height); + + if(old_width && + (old_width != uinfo->track_list->allocation.width)) { + ResizeTrackList(ginfo); + } + + old_width=uinfo->track_list->allocation.width; + } + else { + gtk_window_get_size(GTK_WINDOW(uinfo->app),&uinfo->win_width_min, + &uinfo->win_height_min); + } + + if(!ginfo->looking_up) { + if(discdb_counter%2) + discdb_counter++; + } + else + CopyPixmap(GTK_PIXMAP(uinfo->discdb_pix[discdb_counter++%2]), + GTK_PIXMAP(uinfo->discdb_indicator)); + + if(!ginfo->update_required) { + if(ginfo->have_disc) { + /* Allow disc time to spin down after ripping before checking for a new + disc. Some drives report no disc when spinning down. */ + if(ginfo->rip_finished) { + if((time(NULL)-ginfo->rip_finished)>5) { + ginfo->rip_finished=0; + } + } + + if(!ginfo->rip_finished) { + CDStat(disc,FALSE); + + if(!disc->disc_present) { + ginfo->have_disc=FALSE; + ginfo->update_required=TRUE; + } + } + } + } + + if(!ginfo->update_required) { + if(ginfo->have_disc) { + if((disc->disc_mode==CDAUDIO_PLAYING)|| + (disc->disc_mode==CDAUDIO_PAUSED)) { + if(disc->disc_mode==CDAUDIO_PAUSED) { + if((play_counter++%2)==0) { + strcpy(buf,""); + } + else { + g_snprintf(buf,80,"%02d:%02d",mins,secs); + } + } + else { + if((disc->curr_track-1)!=CURRENT_TRACK) { + SelectRow(ginfo,disc->curr_track-1); + } + + frames=disc->curr_frame-disc->track[disc->curr_track-1].start_frame; + + switch(uinfo->time_display_mode) { + case TIME_MODE_TRACK: + mins=disc->track_time.mins; + secs=disc->track_time.secs; + break; + case TIME_MODE_DISC: + mins=disc->disc_time.mins; + secs=disc->disc_time.secs; + break; + case TIME_MODE_LEFT_TRACK: + secs=(disc->track_time.mins*60)+disc->track_time.secs; + totsecs=(disc->track[CURRENT_TRACK].length.mins*60)+ + disc->track[CURRENT_TRACK].length.secs; + + totsecs-=secs; + + mins=totsecs/60; + secs=totsecs%60; + break; + case TIME_MODE_LEFT_DISC: + secs=(disc->disc_time.mins*60)+disc->disc_time.secs; + totsecs=(disc->length.mins*60)+disc->length.secs; + + totsecs-=secs; + + mins=totsecs/60; + secs=totsecs%60; + break; + } + + g_snprintf(buf,80,_("Current sector: %6d"),frames); + gtk_label_set(GTK_LABEL(uinfo->play_sector_label),buf); + + if(uinfo->time_display_mode == TIME_MODE_LEFT_TRACK || + uinfo->time_display_mode == TIME_MODE_LEFT_DISC) + g_snprintf(buf,80,"-%02d:%02d",mins,secs); + else + g_snprintf(buf,80,"%02d:%02d",mins,secs); + } + } + else { + if(ginfo->playing&&((disc->disc_mode==CDAUDIO_COMPLETED)|| + ((disc->disc_mode==CDAUDIO_NOSTATUS)&& + !ginfo->stopped))) { + NextTrack(ginfo); + strcpy(buf,"00:00"); + if(!ginfo->stopped) PlayTrack(ginfo,CURRENT_TRACK); + } + else if(ginfo->stopped) { + CDStop(disc); + + frames=secs=mins=0; + g_snprintf(buf,80,_("Current sector: %6d"),frames); + gtk_label_set(GTK_LABEL(uinfo->play_sector_label),buf); + + strcpy(buf,"00:00"); + + ginfo->stopped=FALSE; + ginfo->playing=FALSE; + } + else return; + } + + gtk_label_set(GTK_LABEL(uinfo->play_time_label),buf); + g_snprintf(icon_buf,sizeof(icon_buf),"%02d %s %s", + disc->curr_track,buf,PACKAGE); + gdk_window_set_icon_name(uinfo->app->window,icon_buf); + } + } + + if(ginfo->update_required) { + UpdateTracks(ginfo); + + ginfo->update_required=FALSE; + + if(ginfo->have_disc) { + g_snprintf(buf,80,"%02d:%02d",disc->length.mins, + disc->length.secs); + g_snprintf(icon_buf, sizeof(icon_buf),"%02d %s %s", + disc->curr_track,buf,PACKAGE); + + gtk_label_set(GTK_LABEL(uinfo->play_time_label),buf); + + if(!ginfo->looking_up) { + CopyPixmap(GTK_PIXMAP(uinfo->empty_image), + GTK_PIXMAP(uinfo->discdb_indicator)); + + if(ginfo->auto_rip&&ginfo->is_new_disc) { + ClickColumn(NULL,ginfo); + DoRip(NULL,ginfo); + } + + ginfo->is_new_disc=FALSE; + } + + if(!ginfo->no_interrupt) + SelectRow(ginfo,0); + else + SelectRow(ginfo,disc->curr_track-1); + } + else { + gtk_label_set(GTK_LABEL(uinfo->play_time_label),"--:--"); + strncpy(icon_buf,PACKAGE,sizeof(icon_buf)); + + SetCurrentTrack(ginfo,-1); + } + + gdk_window_set_icon_name(uinfo->app->window,icon_buf); + } +} + +void UpdateTracks(GripInfo *ginfo) +{ + int track; + char *col_strings[3]; + gboolean multi_artist_backup; + GripGUI *uinfo; + DiscInfo *disc; + DiscData *ddata; + EncodeTrack enc_track; + GtkTreeIter iter; + + uinfo=&(ginfo->gui_info); + disc=&(ginfo->disc); + ddata=&(ginfo->ddata); + + if(ginfo->have_disc) { + /* Reset to make sure we don't eject twice */ + ginfo->auto_eject_countdown=0; + + ginfo->current_discid=DiscDBDiscid(disc); + + SetTitle(ginfo,ddata->data_title); + SetArtist(ginfo,ddata->data_artist); + SetYear(ginfo,ddata->data_year); + SetID3Genre(ginfo,ddata->data_id3genre); + + multi_artist_backup=ddata->data_multi_artist; + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(uinfo->multi_artist_button), + ginfo->ddata.data_multi_artist); + + ddata->data_multi_artist=multi_artist_backup; + UpdateMultiArtist(NULL,(gpointer)ginfo); + + if(*(ginfo->cdupdate)) { + FillInTrackInfo(ginfo,0,&enc_track); + + TranslateAndLaunch(ginfo->cdupdate,TranslateSwitch,&enc_track, + FALSE,&(ginfo->sprefs),CloseStuff,(void *)ginfo); + } + } + else { + SetTitle(ginfo,_("No Disc")); + SetArtist(ginfo,""); + SetYear(ginfo,0); + SetID3Genre(ginfo,17); + } + + gtk_entry_set_text(GTK_ENTRY(uinfo->playlist_entry), + ddata->data_playlist); + + if(!ginfo->first_time) + gtk_list_store_clear(uinfo->track_list_store); + SetCurrentTrackIndex(ginfo,disc->curr_track - 1); + + if(ginfo->have_disc) { + + col_strings[0]=(char *)malloc(260); + col_strings[1]=(char *)malloc(6); + col_strings[2]=NULL; + + for(track=0;tracknum_tracks;track++) { + if(*ddata->data_track[track].track_artist) { + g_snprintf(col_strings[0],260,"%02d %s (%s)",track+1, + ddata->data_track[track].track_name, + ddata->data_track[track].track_artist); + } + else + g_snprintf(col_strings[0],260,"%02d %s",track+1, + ddata->data_track[track].track_name); + + g_snprintf(col_strings[1],6,"%2d:%02d", + disc->track[track].length.mins, + disc->track[track].length.secs); + + gtk_list_store_append(uinfo->track_list_store,&iter); + + gtk_list_store_set(uinfo->track_list_store,&iter, + TRACKLIST_TRACK_COL,col_strings[0], + TRACKLIST_LENGTH_COL,col_strings[1], + TRACKLIST_RIP_COL,FALSE, + TRACKLIST_NUM_COL,track,-1); + + } + + free(col_strings[0]); + free(col_strings[1]); + + SelectRow(ginfo,CURRENT_TRACK); + } + + if(ginfo->ask_submit) { + gnome_app_ok_cancel_modal + ((GnomeApp *)uinfo->app, + _("This disc has been found on your secondary server,\n" + "but not on your primary server.\n\n" + "Do you wish to submit this disc information?"), + SubmitEntry,(gpointer)ginfo); + + ginfo->ask_submit=FALSE; + } + + ginfo->first_time=0; +} + +void SubmitEntry(gint reply,gpointer data) +{ + GripInfo *ginfo; + int fd; + FILE *efp; + char mailcmd[256]; + char filename[256]; + + if(reply) return; + + ginfo=(GripInfo *)data; + + sprintf(filename,"/tmp/grip.XXXXXX"); + fd = mkstemp(filename); + + if(fd == -1) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Error: Unable to create temporary file.")); + return; + } + + efp=fdopen(fd,"w"); + + if(!efp) { + close(fd); + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Error: Unable to create temporary file.")); + } + else { + fprintf(efp,"To: %s\nFrom: %s\nSubject: cddb %s %02x\n", + ginfo->discdb_submit_email, + ginfo->user_email, + DiscDBGenre(ginfo->ddata.data_genre), + ginfo->ddata.data_id); + + if(ginfo->db_use_freedb) { + fprintf(efp, + "MIME-Version: 1.0\nContent-type: text/plain; charset=UTF-8\n\n"); + } + + if(DiscDBWriteDiscData(&(ginfo->disc),&(ginfo->ddata),efp,FALSE, + ginfo->db_use_freedb,ginfo->db_use_freedb? + "UTF-8":ginfo->discdb_encoding)<0) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Error: Unable to write disc data.")); + fclose(efp); + } + else { + fclose(efp); + close(fd); + + g_snprintf(mailcmd,256,"%s < %s",MAILER,filename); + + Debug(_("Mailing entry to %s\n"),ginfo->discdb_submit_email); + + system(mailcmd); + + remove(filename); + } + } +} diff --git a/src/cdplay.h b/src/cdplay.h new file mode 100644 index 0000000..5b57979 --- /dev/null +++ b/src/cdplay.h @@ -0,0 +1,80 @@ +/* cdplay.h + * + * Copyright (c) 1998-2002 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * 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 + */ + +#ifndef GRIP_CDPLAY_H +#define GRIP_CDPLAY_H + +#include "grip.h" + +/* Time display modes */ +#define TIME_MODE_TRACK 0 +#define TIME_MODE_DISC 1 +#define TIME_MODE_LEFT_TRACK 2 +#define TIME_MODE_LEFT_DISC 3 + +/* Play mode types */ +#define PM_NORMAL 0 +#define PM_SHUFFLE 1 +#define PM_PLAYLIST 2 +#define PM_LASTMODE 3 + +/* Some shortcuts */ +#define PREV_TRACK (ginfo->tracks_prog[ginfo->current_track_index - 1]) +#define CURRENT_TRACK (ginfo->tracks_prog[ginfo->current_track_index]) +#define NEXT_TRACK (ginfo->tracks_prog[ginfo->current_track_index + 1]) + +enum { + TRACKLIST_TRACK_COL, + TRACKLIST_LENGTH_COL, + TRACKLIST_RIP_COL, + TRACKLIST_NUM_COL, + TRACKLIST_N_COLUMNS +}; + +void MinMax(GtkWidget *widget,gpointer data); +void SetCurrentTrackIndex(GripInfo *ginfo,int track); +void SetChecked(GripGUI *uinfo,int track,gboolean checked); +gboolean TrackIsChecked(GripGUI *uinfo,int track); +void EjectDisc(GtkWidget *widget,gpointer data); +void PlaySegment(GripInfo *ginfo,int track); +void FastFwd(GripInfo *ginfo); +void Rewind(GripInfo *ginfo); +void LookupDisc(GripInfo *ginfo,gboolean manual); +gboolean DiscDBLookupDisc(GripInfo *ginfo,DiscDBServer *server); +GtkWidget *MakePlayOpts(GripInfo *ginfo); +GtkWidget *MakeControls(GripInfo *ginfo); +int GetLengthRipWidth(GripInfo *ginfo); +void ResizeTrackList(GripInfo *ginfo); +void MakeTrackPage(GripInfo *ginfo); +void NextTrack(GripInfo *ginfo); +void CheckNewDisc(GripInfo *ginfo,gboolean force); +void ScanDisc(GtkWidget *widget,gpointer data); +void UpdateDisplay(GripInfo *ginfo); +void UpdateTracks(GripInfo *ginfo); +void SubmitEntry(gint reply,gpointer data); + +void PlayTrackCB(GtkWidget *widget,gpointer data); +void StopPlayCB(GtkWidget *widget,gpointer data); +void NextTrackCB(GtkWidget *widget,gpointer data); +void PrevTrackCB(GtkWidget *widget,gpointer data); + +#endif /* ifndef GRIP_CDPLAY_H */ diff --git a/src/common.h b/src/common.h new file mode 100644 index 0000000..0ddb67a --- /dev/null +++ b/src/common.h @@ -0,0 +1,39 @@ +/* common.h + * + * Copyright (c) 1998-2002 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include + +/* Routines from main.c */ +void Debug(char *fmt,...); + +/* Routines from uihelper.c */ +GtkTooltips *MakeToolTip(void); +GdkColor *MakeColor(int red,int green,int blue); +GtkStyle *MakeStyle(GdkColor *fg,GdkColor *bg,gboolean do_grade); +GtkWidget *BuildMenuItemXpm(GtkWidget *xpm, gchar *text); +GtkWidget *BuildMenuItem(gchar *impath, gchar *text, gboolean stock); +GtkWidget *NewBlankPixmap(GtkWidget *widget); +GtkWidget *ImageButton(GtkWidget *widget,GtkWidget *image); +GtkWidget *Loadxpm(GtkWidget *widget,char **xpm); +void CopyPixmap(GtkPixmap *src,GtkPixmap *dest); +gint SizeInDubs(GdkFont *font,gint numchars); +void UpdateGTK(void); diff --git a/src/cppmain.cc b/src/cppmain.cc new file mode 100644 index 0000000..f73bfc6 --- /dev/null +++ b/src/cppmain.cc @@ -0,0 +1,17 @@ +/* + cppmain.cc + + grip links against libid3, which is a c++ library; therefore, + "main" has to be a c++ function in order to ensure that correct + static initialization and shutdown happens for C++ library code. +*/ + + +extern "C" int Cmain(int ac, char *av[]); + + +int +main(int ac, char *av[]) +{ + return Cmain(ac, av); +} diff --git a/src/dialog.c b/src/dialog.c new file mode 100644 index 0000000..02532b3 --- /dev/null +++ b/src/dialog.c @@ -0,0 +1,284 @@ +/* dialog.c + * + * Copyright (c) 1998-2004 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include +#include +#include +#include +#include "dialog.h" + +void DisplayMsg(char *msg) +{ + gnome_ok_dialog(msg); +} + +void BoolDialog(char *question,char *yes,GtkSignalFunc yesfunc, + gpointer yesdata, + char *no,GtkSignalFunc nofunc,gpointer nodata) +{ + GtkWidget *dialog; + GtkWidget *label; + GtkWidget *yesbutton; + GtkWidget *nobutton; + + dialog=gtk_dialog_new(); + gtk_window_set_title(GTK_WINDOW(dialog),_("System Message")); + + gtk_container_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),5); + + label=gtk_label_new(question); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),label,TRUE,TRUE,0); + gtk_widget_show(label); + + yesbutton=gtk_button_new_with_label(yes); + if(yesfunc) + gtk_signal_connect(GTK_OBJECT(yesbutton),"clicked", + yesfunc,yesdata); + gtk_signal_connect_object(GTK_OBJECT(yesbutton),"clicked", + GTK_SIGNAL_FUNC(gtk_widget_destroy), + GTK_OBJECT(dialog)); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),yesbutton, + TRUE,TRUE,0); + gtk_widget_show(yesbutton); + + if(no) { + nobutton=gtk_button_new_with_label(no); + if(nofunc) + gtk_signal_connect(GTK_OBJECT(nobutton),"clicked", + nofunc,nodata); + gtk_signal_connect_object(GTK_OBJECT(nobutton),"clicked", + GTK_SIGNAL_FUNC(gtk_widget_destroy), + GTK_OBJECT(dialog)); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),nobutton, + TRUE,TRUE,0); + gtk_widget_show(nobutton); + } + + gtk_widget_show(dialog); + + gtk_grab_add(dialog); +} + + +void InputDialog(char *prompt,char *default_str,int len,char *doit, + GtkSignalFunc doitfunc, + char *cancel,GtkSignalFunc cancelfunc) +{ + GtkWidget *dialog; + GtkWidget *label; + GtkWidget *doitbutton; + GtkWidget *cancelbutton; + GtkWidget *entry; + + dialog=gtk_dialog_new(); + + gtk_container_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),5); + + label=gtk_label_new(prompt); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),label,TRUE,TRUE,0); + gtk_widget_show(label); + + entry=gtk_entry_new_with_max_length(len); + if(default_str) gtk_entry_set_text(GTK_ENTRY(entry),default_str); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),entry,TRUE,TRUE,0); + gtk_widget_show(entry); + + doitbutton=gtk_button_new_with_label(doit); + if(doitfunc) + gtk_signal_connect(GTK_OBJECT(doitbutton),"clicked", + doitfunc,(gpointer)entry); + gtk_signal_connect_object(GTK_OBJECT(doitbutton),"clicked", + GTK_SIGNAL_FUNC(gtk_widget_destroy), + GTK_OBJECT(dialog)); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),doitbutton, + TRUE,TRUE,0); + gtk_widget_show(doitbutton); + + if(cancel) { + cancelbutton=gtk_button_new_with_label(cancel); + if(cancelfunc) + gtk_signal_connect(GTK_OBJECT(cancelbutton),"clicked", + cancelfunc,NULL); + gtk_signal_connect_object(GTK_OBJECT(cancelbutton),"clicked", + GTK_SIGNAL_FUNC(gtk_widget_destroy), + GTK_OBJECT(dialog)); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),cancelbutton, + TRUE,TRUE,0); + gtk_widget_show(cancelbutton); + } + + gtk_widget_show(dialog); + + gtk_grab_add(dialog); +} + +void ChangeStrVal(GtkWidget *widget,gpointer data) +{ + strcpy((char *)data,gtk_entry_get_text(GTK_ENTRY(widget))); +} + +GtkWidget *MakeStrEntry(GtkWidget **entry,char *var,char *name, + int len,gboolean editable) +{ + GtkWidget *widget; + GtkWidget *label; + GtkWidget *hbox; + + hbox=gtk_hbox_new(FALSE,5); + + label=gtk_label_new(name); + gtk_label_set_justify(GTK_LABEL(label),GTK_JUSTIFY_LEFT); + gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); + gtk_widget_show(label); + + widget=gtk_entry_new_with_max_length(len); + gtk_entry_set_editable(GTK_ENTRY(widget),editable); + if(var) { + gtk_entry_set_text(GTK_ENTRY(widget),var); + + gtk_signal_connect(GTK_OBJECT(widget),"changed", + GTK_SIGNAL_FUNC(ChangeStrVal),(gpointer)var); + } + + gtk_box_pack_start(GTK_BOX(hbox),widget,TRUE,TRUE,0); + + gtk_entry_set_position(GTK_ENTRY(widget),0); + + gtk_widget_show(widget); + + if(entry) *entry=widget; + + return hbox; +} + +void ChangeIntVal(GtkWidget *widget,gpointer data) +{ + *((int *)data)=atoi(gtk_entry_get_text(GTK_ENTRY(widget))); +} + +GtkWidget *MakeNumEntry(GtkWidget **entry,int *var,char *name,int len) +{ + GtkWidget *widget; + char buf[80]; + GtkWidget *label; + GtkWidget *hbox; + + hbox=gtk_hbox_new(FALSE,5); + + label=gtk_label_new(name); + gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); + gtk_widget_show(label); + + widget=gtk_entry_new_with_max_length(len); + gtk_widget_set_usize(widget,len*8+5,0); + + if(var) { + sprintf(buf,"%d",*var); + gtk_entry_set_text(GTK_ENTRY(widget),buf); + gtk_signal_connect(GTK_OBJECT(widget),"changed", + GTK_SIGNAL_FUNC(ChangeIntVal),(gpointer)var); + } + + gtk_box_pack_end(GTK_BOX(hbox),widget,FALSE,FALSE,0); + gtk_widget_show(widget); + + if(entry) *entry=widget; + + return hbox; +} + +void ChangeDoubleVal(GtkWidget *widget,gpointer data) +{ + *((gdouble *)data)=gtk_spin_button_get_value_as_float + (GTK_SPIN_BUTTON(widget)); +} + +GtkWidget *MakeDoubleEntry(GtkWidget **entry,gdouble *var,char *name) +{ + GtkWidget *widget; + GtkWidget *label; + GtkWidget *hbox; + GtkObject *adj; + + hbox=gtk_hbox_new(FALSE,5); + + label=gtk_label_new(name); + gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); + gtk_widget_show(label); + + adj=gtk_adjustment_new(0,0,1.0,0.001,0.1,0); + + widget=gtk_spin_button_new(GTK_ADJUSTMENT(adj),0.1,3); + + + + /*************************** + + + + gtk_widget_set_usize(widget, + gdk_string_width((widget)->style->font, + "0.000")+25,0); + + + ************************/ + + + + + if(var) { + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),*var); + gtk_signal_connect(GTK_OBJECT(widget),"changed", + GTK_SIGNAL_FUNC(ChangeDoubleVal),(gpointer)var); + } + + gtk_box_pack_end(GTK_BOX(hbox),widget,FALSE,FALSE,0); + gtk_widget_show(widget); + + if(entry) *entry=widget; + + return hbox; +} + +void ChangeBoolVal(GtkWidget *widget,gpointer data) +{ + *((gboolean *)data)=!*((gboolean *)data); +} + +GtkWidget *MakeCheckButton(GtkWidget **button,gboolean *var,char *name) +{ + GtkWidget *widget; + + widget=gtk_check_button_new_with_label(name); + + if(var) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), + *var); + gtk_signal_connect(GTK_OBJECT(widget),"clicked", + GTK_SIGNAL_FUNC(ChangeBoolVal), + (gpointer)var); + } + + if(button) *button=widget; + + return widget; +} diff --git a/src/dialog.h b/src/dialog.h new file mode 100644 index 0000000..1d9562f --- /dev/null +++ b/src/dialog.h @@ -0,0 +1,41 @@ +/* dialog.h + * + * Copyright (c) 1998-2002 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * 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 + */ + +/* Message routines */ +void DisplayMsg(char *msg); +void BoolDialog(char *question,char *yes,GtkSignalFunc yesfunc, + gpointer yesdata, + char *no,GtkSignalFunc nofunc,gpointer nodata); + +/* Input routines */ +void InputDialog(char *prompt,char *default_str,int len,char *doit, + GtkSignalFunc doitfunc, + char *cancel,GtkSignalFunc cancelfunc); +void ChangeStrVal(GtkWidget *widget,gpointer data); +GtkWidget *MakeStrEntry(GtkWidget **entry,char *var,char *name, + int len,gboolean editable); +void ChangeIntVal(GtkWidget *widget,gpointer data); +GtkWidget *MakeNumEntry(GtkWidget **entry,int *var,char *name,int len); +void ChangeDoubleVal(GtkWidget *widget,gpointer data); +GtkWidget *MakeDoubleEntry(GtkWidget **entry,gdouble *var,char *name); +void ChangeBoolVal(GtkWidget *widget,gpointer data); +GtkWidget *MakeCheckButton(GtkWidget **button,gboolean *var,char *name); diff --git a/src/discdb.c b/src/discdb.c new file mode 100644 index 0000000..2be0d6f --- /dev/null +++ b/src/discdb.c @@ -0,0 +1,884 @@ +/* discdb.c + * + * Based on code from libcdaudio 0.5.0 (Copyright (C)1998 Tony Arcieri) + * + * All changes Copyright (c) 1998-2004 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + */ + +#include +#include +#include +#if defined(__sun__) +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "cddev.h" +#include "discdb.h" +#include "grip_id3.h" +#include "common.h" +#include "config.h" + +extern char *Program; +static char *StrConvertEncoding(char *str,char *from,char *to,int max_len); +gboolean DiscDBUTF8Validate(const DiscInfo *disc,const DiscData *data); +static void DiscDBConvertEncoding(DiscInfo *disc,DiscData *data, + char *from,char *to); +static int DiscDBSum(int val); +static char *DiscDBReadLine(char **dataptr); +static GString *DiscDBMakeURI(DiscDBServer *server,DiscDBHello *hello, + char *cmd); +static char *DiscDBMakeRequest(DiscDBServer *server,DiscDBHello *hello, + char *cmd); +static void DiscDBProcessLine(char *inbuffer,DiscData *data, + int numtracks); +static void DiscDBWriteLine(char *header,int num,char *data,FILE *outfile, + char *encoding); + +static char *discdb_genres[]={"unknown","blues","classical","country", + "data","folk","jazz","misc","newage", + "reggae","rock","soundtrack"}; + +/* DiscDB sum function */ + +static int DiscDBSum(int val) +{ + char *bufptr, buf[16]; + int ret = 0; + + g_snprintf(buf,16,"%lu",(unsigned long int)val); + + for(bufptr = buf; *bufptr != '\0'; bufptr++) + ret += (*bufptr - '0'); + + return ret; +} + +/* Produce DiscDB ID for CD currently in CD-ROM */ + +unsigned int DiscDBDiscid(DiscInfo *disc) +{ + int index, tracksum = 0, discid; + + if(!disc->have_info) CDStat(disc,TRUE); + + for(index = 0; index < disc->num_tracks; index++) + tracksum += DiscDBSum(disc->track[index].start_pos.mins * 60 + + disc->track[index].start_pos.secs); + + discid = (disc->length.mins * 60 + disc->length.secs) - + (disc->track[0].start_pos.mins * 60 + disc->track[0].start_pos.secs); + + return (tracksum % 0xFF) << 24 | discid << 8 | disc->num_tracks; +} + +/* Convert numerical genre to text */ + +char *DiscDBGenre(int genre) +{ + if(genre>11) return("unknown"); + + return discdb_genres[genre]; +} + +/* Convert genre from text form into an integer value */ + +int DiscDBGenreValue(char *genre) +{ + int pos; + + for(pos=0;pos<12;pos++) + if(!strcmp(genre,discdb_genres[pos])) return pos; + + return 0; +} + +/* Read a single line from the buffer and move the pointer along */ + +static char *DiscDBReadLine(char **dataptr) +{ + char *data=*dataptr; + char *pos; + + if(!data || !*data || *data=='.') { + *dataptr=NULL; + + return NULL; + } + + for(pos=data;*pos;pos++) { + if(*pos=='\n') { + *pos='\0'; + + Debug("[%s]\n",data); + + *dataptr=pos+1; + + return data; + } + } + + Debug("[%s]\n",data); + + *dataptr=NULL; + + return data; +} + +static GString *DiscDBMakeURI(DiscDBServer *server,DiscDBHello *hello, + char *cmd) +{ + GString *uri; + + uri=g_string_new(NULL); + + g_string_sprintf(uri,"http://%s/%s?cmd=%s&hello=private+free.the.cddb+%s+%s" + "&proto=%d", + server->name,server->cgi_prog,cmd, + hello->hello_program,hello->hello_version, + hello->proto_version); + + return uri; +} + +static char *DiscDBMakeRequest(DiscDBServer *server,DiscDBHello *hello, + char *cmd) +{ + GString *uri; + GString *proxy,*user; + char user_agent[256]; + struct curl_slist *headers=NULL; + FILE *outfile; + char *data=NULL; + int success; + CURL *curl_handle; + long filesize; + + curl_global_init(CURL_GLOBAL_ALL); + curl_handle=curl_easy_init(); + + if(curl_handle) { + if(server->use_proxy) { + proxy=g_string_new(NULL); + + g_string_sprintf(proxy,"%s:%d",server->proxy->name, + server->proxy->port); + + curl_easy_setopt(curl_handle,CURLOPT_PROXY,proxy->str); + + if(*server->proxy->username) { + + user=g_string_new(NULL); + + g_string_sprintf(user,"%s:%s",server->proxy->username, + server->proxy->pswd); + + curl_easy_setopt(curl_handle,CURLOPT_PROXYUSERPWD,user->str); + } + } + + uri=DiscDBMakeURI(server,hello,cmd); + + Debug(_("URI is %s\n"),uri->str); + + curl_easy_setopt(curl_handle,CURLOPT_URL,uri->str); + + g_snprintf(user_agent,256,"User-Agent: %s %s", + hello->hello_program,hello->hello_version); + + headers=curl_slist_append(headers,user_agent); + + curl_easy_setopt(curl_handle,CURLOPT_HTTPHEADER,headers); + + outfile=tmpfile(); + + if(outfile) { + curl_easy_setopt(curl_handle,CURLOPT_FILE,outfile); + + success=curl_easy_perform(curl_handle); + + if(success==0) { + filesize=ftell(outfile); + + rewind(outfile); + + data=(char *)malloc(filesize+1); + + if(data) { + fread(data,filesize,1,outfile); + + data[filesize]='\0'; + } + } + + fclose(outfile); + } + + curl_slist_free_all(headers); + + curl_easy_cleanup(curl_handle); + + g_string_free(uri,TRUE); + + if(server->use_proxy) { + g_string_free(proxy,TRUE); + + if(*server->proxy->username) { + g_string_free(user,TRUE); + } + } + } + + curl_global_cleanup(); + + return data; +} + + +/* Query the DiscDB for the CD currently in the CD-ROM */ + +gboolean DiscDBDoQuery(DiscInfo *disc,DiscDBServer *server, + DiscDBHello *hello,DiscDBQuery *query) +{ + int index; + GString *cmd; + char *result,*inbuffer; + char *dataptr; + + query->query_matches=0; + + if(!disc->have_info) CDStat(disc,TRUE); + + cmd=g_string_new(NULL); + + g_string_sprintfa(cmd,"cddb+query+%08x+%d",DiscDBDiscid(disc), + disc->num_tracks); + + for(index=0;indexnum_tracks;index++) + g_string_sprintfa(cmd,"+%d",disc->track[index].start_frame); + + g_string_sprintfa(cmd,"+%d",disc->length.mins*60 + disc->length.secs); + + Debug(_("Query is [%s]\n"),cmd->str); + + result=DiscDBMakeRequest(server,hello,cmd->str); + + g_string_free(cmd,TRUE); + + if(!result) { + return FALSE; + } + + dataptr=result; + + inbuffer=DiscDBReadLine(&dataptr); + + switch(strtol(strtok(inbuffer," "),NULL,10)) { + /* 200 - exact match */ + case 200: + query->query_match=MATCH_EXACT; + query->query_matches=1; + + query->query_list[0].list_genre= + DiscDBGenreValue(g_strstrip(strtok(NULL," "))); + + sscanf(g_strstrip(strtok(NULL," ")),"%xd", + &query->query_list[0].list_id); + + DiscDBParseTitle(g_strstrip(strtok(NULL,"")), + query->query_list[0].list_title, + query->query_list[0].list_artist,"/"); + + break; + /* 210 - multiple exact matches */ + case 210: + query->query_match=MATCH_EXACT; + query->query_matches=0; + + + while(query->query_matches < MAX_INEXACT_MATCHES && + (inbuffer=DiscDBReadLine(&dataptr))) { + query->query_list[query->query_matches].list_genre= + DiscDBGenreValue(g_strstrip(strtok(inbuffer," "))); + + sscanf(g_strstrip(strtok(NULL," ")),"%xd", + &query->query_list[query->query_matches].list_id); + + DiscDBParseTitle(g_strstrip(strtok(NULL,"")), + query->query_list[query->query_matches].list_title, + query->query_list[query->query_matches].list_artist, + "/"); + + query->query_matches++; + } + break; + /* 211 - inexact match */ + case 211: + query->query_match=MATCH_INEXACT; + query->query_matches=0; + + while(query->query_matches < MAX_INEXACT_MATCHES && + (inbuffer=DiscDBReadLine(&dataptr))) { + query->query_list[query->query_matches].list_genre= + DiscDBGenreValue(g_strstrip(strtok(inbuffer," "))); + + sscanf(g_strstrip(strtok(NULL," ")),"%xd", + &query->query_list[query->query_matches].list_id); + + DiscDBParseTitle(g_strstrip(strtok(NULL,"")), + query->query_list[query->query_matches].list_title, + query->query_list[query->query_matches].list_artist, + "/"); + + query->query_matches++; + } + + break; + /* No match */ + default: + query->query_match=MATCH_NOMATCH; + + free(result); + + return FALSE; + } + + free(result); + + return TRUE; +} + +/* Split string into title/artist */ + +void DiscDBParseTitle(char *buf,char *title,char *artist,char *sep) +{ + char *tmp; + + tmp=strtok(buf,sep); + + if(!tmp) return; + + g_snprintf(artist,256,"%s",g_strstrip(tmp)); + + tmp=strtok(NULL,""); + + if(tmp) + g_snprintf(title,256,"%s",g_strstrip(tmp)); + else strcpy(title,artist); +} + +/* Process a line of input data */ + +static void DiscDBProcessLine(char *inbuffer,DiscData *data, + int numtracks) +{ + int track; + int len=0; + char *st; + + strtok(inbuffer,"\n\r"); + + if(!strncasecmp(inbuffer,"# Revision: ",12)) { + data->revision=atoi(inbuffer+12); + } + else if(!strncasecmp(inbuffer,"DTITLE",6)) { + len=strlen(data->data_title); + + g_snprintf(data->data_title+len,256-len,"%s",inbuffer+7); + } + else if(!strncasecmp(inbuffer,"DYEAR",5)) { + strtok(inbuffer,"="); + + st = strtok(NULL, ""); + if(st == NULL) + return; + + data->data_year=atoi(g_strstrip(st)); + } + else if(!strncasecmp(inbuffer,"DGENRE",6)) { + strtok(inbuffer,"="); + + st = strtok(NULL, ""); + if(st == NULL) + return; + + st=g_strstrip(st); + + if(*st) { + data->data_genre=DiscDBGenreValue(st); + data->data_id3genre=ID3GenreValue(st); + } + } + else if(!strncasecmp(inbuffer,"DID3",4)) { + strtok(inbuffer,"="); + + st = strtok(NULL, ""); + if(st == NULL) + return; + + data->data_id3genre=atoi(g_strstrip(st)); + } + else if(!strncasecmp(inbuffer,"TTITLE",6)) { + track=atoi(strtok(inbuffer+6,"=")); + + if(trackdata_track[track].track_name); + + st = strtok(NULL, ""); + if(st == NULL) + return; + + g_snprintf(data->data_track[track].track_name+len,256-len,"%s", + st); + } + else if(!strncasecmp(inbuffer,"TARTIST",7)) { + data->data_multi_artist=TRUE; + + track=atoi(strtok(inbuffer+7,"=")); + + if(trackdata_track[track].track_artist); + + st = strtok(NULL, ""); + if(st == NULL) + return; + + g_snprintf(data->data_track[track].track_artist+len,256-len,"%s", + st); + } + else if(!strncasecmp(inbuffer,"EXTD",4)) { + len=strlen(data->data_extended); + + g_snprintf(data->data_extended+len,4096-len,"%s",inbuffer+5); + } + else if(!strncasecmp(inbuffer,"EXTT",4)) { + track=atoi(strtok(inbuffer+4,"=")); + + if(trackdata_track[track].track_extended); + + st = strtok(NULL, ""); + if(st == NULL) + return; + + g_snprintf(data->data_track[track].track_extended+len,4096-len,"%s", + st); + } + else if(!strncasecmp(inbuffer,"PLAYORDER",5)) { + len=strlen(data->data_playlist); + + g_snprintf(data->data_playlist+len,256-len,"%s",inbuffer+10); + } +} + +static char *StrConvertEncoding(char *str,char *from,char *to,int max_len) +{ + char *conv_str; + gsize rb,wb; + + if(!str) return NULL; + + conv_str=g_convert_with_fallback(str,strlen(str),to,from,NULL,&rb,&wb,NULL); + + if(!conv_str) return str; + + g_snprintf(str,max_len,"%s",conv_str); + + g_free(conv_str); + + return str; +} + +gboolean DiscDBUTF8Validate(const DiscInfo *disc,const DiscData *data) +{ + int track; + + if(data->data_title && !g_utf8_validate(data->data_title,-1,NULL)) + return FALSE; + if(data->data_artist && !g_utf8_validate(data->data_artist,-1,NULL)) + return FALSE; + if(data->data_extended && !g_utf8_validate(data->data_extended,-1,NULL)) + return FALSE; + + for(track=0;tracknum_tracks;track++) { + if(data->data_track[track].track_name + && !g_utf8_validate(data->data_track[track].track_name,-1,NULL)) + return FALSE; + if(data->data_track[track].track_artist + && !g_utf8_validate(data->data_track[track].track_artist,-1,NULL)) + return FALSE; + if(data->data_track[track].track_extended + && !g_utf8_validate(data->data_track[track].track_extended,-1,NULL)) + return FALSE; + } + return TRUE; +} + + +static void DiscDBConvertEncoding(DiscInfo *disc,DiscData *data, + char *from,char *to) +{ + int track; + + StrConvertEncoding(data->data_title,from,to,256); + StrConvertEncoding(data->data_artist,from,to,256); + StrConvertEncoding(data->data_extended,from,to,4096); + + for(track=0;tracknum_tracks;track++) { + StrConvertEncoding(data->data_track[track].track_name,from,to,256); + StrConvertEncoding(data->data_track[track].track_artist,from,to,256); + StrConvertEncoding(data->data_track[track].track_extended,from,to,4096); + } +} + +/* Read the actual DiscDB entry */ + +gboolean DiscDBRead(DiscInfo *disc,DiscDBServer *server, + DiscDBHello *hello,DiscDBEntry *entry, + DiscData *data,char *encoding) +{ + int index; + GString *cmd; + char *result,*inbuffer,*dataptr; + + if(!disc->have_info) CDStat(disc,TRUE); + + data->data_genre=entry->entry_genre; + data->data_id=DiscDBDiscid(disc); + *(data->data_extended)='\0'; + *(data->data_title)='\0'; + *(data->data_artist)='\0'; + *(data->data_playlist)='\0'; + data->data_multi_artist=FALSE; + data->data_year=0; + data->data_id3genre=-1; + data->revision=-1; + + for(index=0;indexdata_track[index].track_name)='\0'; + *(data->data_track[index].track_artist)='\0'; + *(data->data_track[index].track_extended)='\0'; + } + + cmd=g_string_new(NULL); + + g_string_sprintf(cmd,"cddb+read+%s+%08x",DiscDBGenre(entry->entry_genre), + entry->entry_id); + + result=DiscDBMakeRequest(server,hello,cmd->str); + + g_string_free(cmd,TRUE); + + if(!result) { + return FALSE; + } + + dataptr=result; + + inbuffer=DiscDBReadLine(&dataptr); + + while((inbuffer=DiscDBReadLine(&dataptr))) + DiscDBProcessLine(inbuffer,data,disc->num_tracks); + + /* Both disc title and artist have been stuffed in the title field, so the + need to be separated */ + + DiscDBParseTitle(data->data_title,data->data_title,data->data_artist,"/"); + + free(result); + + /* Don't allow the genre to be overwritten */ + data->data_genre=entry->entry_genre; + + if(strcasecmp(encoding,"utf-8")) { + DiscDBConvertEncoding(disc,data,encoding,"utf-8"); + } + + return TRUE; +} + +/* See if a disc is in the local database */ + +gboolean DiscDBStatDiscData(DiscInfo *disc) +{ + int index,id; + struct stat st; + char root_dir[256],file[256]; + + if(!disc->have_info) CDStat(disc,TRUE); + + id=DiscDBDiscid(disc); + + g_snprintf(root_dir,256,"%s/.cddb",getenv("HOME")); + + if(stat(root_dir, &st) < 0) + return FALSE; + else { + if(!S_ISDIR(st.st_mode)) + return FALSE; + } + + g_snprintf(file,256,"%s/%08x",root_dir,id); + if(stat(file,&st)==0) return TRUE; + + for(index=0;index<12;index++) { + g_snprintf(file,256,"%s/%s/%08x",root_dir,DiscDBGenre(index),id); + + if(stat(file,&st) == 0) + return TRUE; + } + + return FALSE; +} + +/* Read from the local database */ + +int DiscDBReadDiscData(DiscInfo *disc,DiscData *ddata, const char *encoding) +{ + FILE *discdb_data=NULL; + int index,genre; + char root_dir[256],file[256],inbuf[512]; + struct stat st; + + g_snprintf(root_dir,256,"%s/.cddb",getenv("HOME")); + + if(stat(root_dir, &st) < 0) { + return -1; + } else { + if(!S_ISDIR(st.st_mode)) { + errno = ENOTDIR; + return -1; + } + } + + if(!disc->have_info) CDStat(disc,TRUE); + + ddata->data_id=DiscDBDiscid(disc); + *(ddata->data_extended)='\0'; + *(ddata->data_title)='\0'; + *(ddata->data_artist)='\0'; + *(ddata->data_playlist)='\0'; + ddata->data_multi_artist=FALSE; + ddata->data_year=0; + ddata->data_genre=7; + ddata->data_id3genre=-1; + ddata->revision=-1; + + for(index=0;indexdata_track[index].track_name)='\0'; + *(ddata->data_track[index].track_artist)='\0'; + *(ddata->data_track[index].track_extended)='\0'; + } + + g_snprintf(file,256,"%s/%08x",root_dir,ddata->data_id); + if(stat(file,&st)==0) { + discdb_data=fopen(file, "r"); + } + else { + for(genre=0;genre<12;genre++) { + g_snprintf(file,256,"%s/%s/%08x",root_dir,DiscDBGenre(genre), + ddata->data_id); + + if(stat(file,&st)==0) { + discdb_data=fopen(file, "r"); + + ddata->data_genre=genre; + break; + } + } + + if(genre==12) return -1; + } + + while(fgets(inbuf,512,discdb_data)) + DiscDBProcessLine(inbuf,ddata,disc->num_tracks); + + /* Both disc title and artist have been stuffed in the title field, so the + need to be separated */ + + DiscDBParseTitle(ddata->data_title,ddata->data_title,ddata->data_artist,"/"); + + if(!DiscDBUTF8Validate(disc,ddata)) { + DiscDBConvertEncoding(disc,ddata,strcasecmp(encoding,"UTF-8")? + encoding:"ISO-8859-1","UTF-8"); + } + + fclose(discdb_data); + + return 0; +} + +static void DiscDBWriteLine(char *header,int num,char *data,FILE *outfile, + char *encoding) +{ + char *offset, *next, *chunk; + + if(strcasecmp(encoding,"utf-8")) { + StrConvertEncoding(data,"utf-8",encoding,512); + } + + offset=data; + + do { + for(next=offset; next-offset<65&&*next; ) { + if (*next=='\\'&&*(next+1)) { + next+=2; + } + else if(!strcasecmp(encoding,"utf-8")) { + next=g_utf8_find_next_char(next,NULL); + } + else { + next++; + } + } + chunk=g_strndup(offset,(gsize)(next-offset)); + if(num==-1) + fprintf(outfile,"%s=%s\n",header,chunk); + else + fprintf(outfile,"%s%d=%s\n",header,num,chunk); + g_free(chunk); + offset=next; + } while (*offset); +} + + +/* Write to the local cache */ + +int DiscDBWriteDiscData(DiscInfo *disc,DiscData *ddata,FILE *outfile, + gboolean gripext,gboolean freedbext,char *encoding) +{ + FILE *discdb_data; + int track; + char root_dir[256],file[256],tmp[512]; + struct stat st; + + if(!disc->have_info) CDStat(disc,TRUE); + + if(!outfile) { + g_snprintf(root_dir,256,"%s/.cddb",getenv("HOME")); + g_snprintf(file,256,"%s/%08x",root_dir,ddata->data_id); + + if(stat(root_dir,&st)<0) { + if(errno != ENOENT) { + Debug(_("Stat error %d on %s\n"),errno,root_dir); + return -1; + } + else { + Debug(_("Creating directory %s\n"),root_dir); + mkdir(root_dir,0777); + } + } else { + if(!S_ISDIR(st.st_mode)) { + Debug(_("Error: %s exists, but is a file\n"),root_dir); + errno=ENOTDIR; + return -1; + } + } + + if((discdb_data=fopen(file,"w"))==NULL) { + Debug(_("Error: Unable to open %s for writing\n"),file); + return -1; + } + } + else discdb_data=outfile; + +#ifndef GRIPCD + fprintf(discdb_data,"# xmcd CD database file generated by Grip %s\n", + VERSION); +#else + fprintf(discdb_data,"# xmcd CD database file generated by GCD %s\n", + VERSION); +#endif + fputs("# \n",discdb_data); + fputs("# Track frame offsets:\n",discdb_data); + + for(track=0;tracknum_tracks;track++) + fprintf(discdb_data, "# %d\n",disc->track[track].start_frame); + + fputs("# \n",discdb_data); + fprintf(discdb_data,"# Disc length: %d seconds\n",disc->length.mins * + 60 + disc->length.secs); + fputs("# \n",discdb_data); + + if(gripext) fprintf(discdb_data,"# Revision: %d\n",ddata->revision); + else fprintf(discdb_data,"# Revision: %d\n",ddata->revision+1); + + fprintf(discdb_data,"# Submitted via: Grip %s\n",VERSION); + fputs("# \n",discdb_data); + fprintf(discdb_data,"DISCID=%08x\n",ddata->data_id); + + g_snprintf(tmp,512,"%s / %s",ddata->data_artist,ddata->data_title); + + DiscDBWriteLine("DTITLE",-1,tmp,discdb_data,encoding); + + if(gripext||freedbext) { + if(ddata->data_year) + fprintf(discdb_data,"DYEAR=%d\n",ddata->data_year); + else fprintf(discdb_data,"DYEAR=\n"); + } + + if(gripext) { + fprintf(discdb_data,"DGENRE=%s\n",DiscDBGenre(ddata->data_genre)); + fprintf(discdb_data,"DID3=%d\n",ddata->data_id3genre); + } + else if(freedbext) { + fprintf(discdb_data,"DGENRE=%s\n",ID3GenreString(ddata->data_id3genre)); + } + + for(track=0;tracknum_tracks;track++) { + if(gripext||!*(ddata->data_track[track].track_artist)) { + DiscDBWriteLine("TTITLE",track,ddata->data_track[track].track_name, + discdb_data,encoding); + } + else { + g_snprintf(tmp,512,"%s / %s",ddata->data_track[track].track_artist, + ddata->data_track[track].track_name); + DiscDBWriteLine("TTITLE",track,tmp,discdb_data,encoding); + } + + if(gripext&&*(ddata->data_track[track].track_artist)) + DiscDBWriteLine("TARTIST",track,ddata->data_track[track].track_artist, + discdb_data,encoding); + } + + DiscDBWriteLine("EXTD",-1,ddata->data_extended,discdb_data,encoding); + + for(track=0;tracknum_tracks;track++) + DiscDBWriteLine("EXTT",track, + ddata->data_track[track].track_extended,discdb_data, + encoding); + + if(outfile) + fprintf(discdb_data,"PLAYORDER=\n"); + else { + fprintf(discdb_data,"PLAYORDER=%s\n",ddata->data_playlist); + fclose(discdb_data); + } + + return 0; +} diff --git a/src/discdb.h b/src/discdb.h new file mode 100644 index 0000000..93bda7c --- /dev/null +++ b/src/discdb.h @@ -0,0 +1,127 @@ +/* discdb.h + * + * Based on code from libcdaudio 0.5.0 (Copyright (C)1998 Tony Arcieri) + * + * All changes Copyright (c) 1998-2002 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * 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 + * + */ + +#ifndef GRIP_DISCDB_H +#define GRIP_DISCDB_H + +/* HTTP proxy server structure */ + +typedef struct _proxy_server { + char name[256]; + int port; + char username[80]; + char pswd[80]; +} ProxyServer; + +/* DiscDB server structure */ + +typedef struct _discdb_server { + char name[256]; + char cgi_prog[256]; + int port; + int use_proxy; + ProxyServer *proxy; +} DiscDBServer; + +typedef struct _discdb_hello { + /* Program */ + char hello_program[256]; + /* Program version */ + char hello_version[256]; + int proto_version; +} DiscDBHello; + +/* DiscDB entry */ + +typedef struct _discdb_entry { + unsigned int entry_id; + int entry_genre; +} DiscDBEntry; + +/* An entry in the query list */ +struct query_list_entry { + int list_genre; + int list_id; + char list_title[256]; + char list_artist[256]; +}; + +#define MAX_INEXACT_MATCHES 16 + +/* DiscDB query structure */ + +typedef struct _discdb_query { + int query_match; + int query_matches; + struct query_list_entry query_list[MAX_INEXACT_MATCHES]; +} DiscDBQuery; + +/* Match values returned by a query */ + +#define MATCH_NOMATCH 0 +#define MATCH_EXACT 1 +#define MATCH_INEXACT 2 + +/* Track database structure */ + +typedef struct _track_data { + char track_name[256]; /* Track name */ + char track_artist[256]; /* Track artist */ + char track_extended[4096]; /* Extended information */ +} TrackData; + +/* Disc database structure */ + +typedef struct _disc_data { + unsigned int data_id; /* CD id */ + char data_title[256]; /* Disc title */ + char data_artist[256]; /* Disc artist */ + char data_extended[4096]; /* Extended information */ + int data_genre; /* Discdb genre */ + int data_id3genre; /* ID3 genre */ + int data_year; /* Disc year */ + char data_playlist[256]; /* Playlist info */ + gboolean data_multi_artist; /* Is CD multi-artist? */ + TrackData data_track[MAX_TRACKS]; /* Track names */ + int revision; /* Database revision */ +} DiscData; + + +unsigned int DiscDBDiscid(DiscInfo *disc); +char *DiscDBGenre(int genre); +int DiscDBGenreValue(char *genre); +gboolean DiscDBDoQuery(DiscInfo *disc,DiscDBServer *server, + DiscDBHello *hello,DiscDBQuery *query); +gboolean DiscDBRead(DiscInfo *disc,DiscDBServer *server, + DiscDBHello *hello,DiscDBEntry *entry, + DiscData *data,char *encoding); +gboolean DiscDBStatDiscData(DiscInfo *disc); +int DiscDBReadDiscData(DiscInfo *disc, DiscData *ddata, const char *encoding); +int DiscDBWriteDiscData(DiscInfo *disc,DiscData *ddata,FILE *outfile, + gboolean gripext,gboolean freedbext,char *encoding); +void DiscDBParseTitle(char *buf,char *title,char *artist,char *sep); +char *ChopWhite(char *buf); + +#endif /* GRIP_DISCDB_H */ diff --git a/src/discedit.c b/src/discedit.c new file mode 100644 index 0000000..7b7a9ee --- /dev/null +++ b/src/discedit.c @@ -0,0 +1,668 @@ +/* discedit.c + * + * Copyright (c) 1998-2004 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include "grip.h" +#include "cdplay.h" +#include "dialog.h" +#include "grip_id3.h" +#include "common.h" +#include "discedit.h" + +static void SaveDiscInfo(GtkWidget *widget,gpointer data); +static void TitleEditChanged(GtkWidget *widget,gpointer data); +static void ArtistEditChanged(GtkWidget *widget,gpointer data); +static void YearEditChanged(GtkWidget *widget,gpointer data); +static void EditNextTrack(GtkWidget *widget,gpointer data); +static void ID3GenreChanged(GtkWidget *widget,gpointer data); +static void SeparateFields(char *buf,char *field1,char *field2,char *sep); +static void SplitTitleArtist(GtkWidget *widget,gpointer data); +static void SubmitEntryCB(GtkWidget *widget,gpointer data); +static void GetDiscDBGenre(GripInfo *ginfo); +static void DiscDBGenreChanged(GtkWidget *widget,gpointer data); + +GtkWidget *MakeEditBox(GripInfo *ginfo) +{ + GripGUI *uinfo; + GtkWidget *vbox,*hbox; + GtkWidget *button; + GtkWidget *label; + GtkWidget *frame; + GtkWidget *item; + GtkWidget *check; + GtkWidget *entry; + GtkObject *adj; + ID3Genre *id3_genre; + gint id3_genre_count; + int len; + int dub_size; + PangoLayout *layout; + + uinfo=&(ginfo->gui_info); + + frame=gtk_frame_new(NULL); + + vbox=gtk_vbox_new(FALSE,0); + + hbox=gtk_hbox_new(FALSE,3); + + label=gtk_label_new(_("Disc title")); + + /* This should be the longest string in the track edit section */ + + + + layout=gtk_widget_create_pango_layout(GTK_WIDGET(label), + _("Track name")); + + + pango_layout_get_size(layout,&len,NULL); + + len/=PANGO_SCALE; + + g_object_unref(layout); + + layout=gtk_widget_create_pango_layout(GTK_WIDGET(label), + _("W")); + + pango_layout_get_size(layout,&dub_size,NULL); + + dub_size/=PANGO_SCALE; + + g_object_unref(layout); + + + gtk_widget_set_usize(label,len,0); + + gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); + gtk_widget_show(label); + + uinfo->title_edit_entry=gtk_entry_new_with_max_length(256); + gtk_signal_connect(GTK_OBJECT(uinfo->title_edit_entry),"changed", + GTK_SIGNAL_FUNC(TitleEditChanged),(gpointer)ginfo); + gtk_entry_set_position(GTK_ENTRY(uinfo->title_edit_entry),0); + gtk_box_pack_start(GTK_BOX(hbox),uinfo->title_edit_entry,TRUE,TRUE,0); + gtk_widget_show(uinfo->title_edit_entry); + + gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + hbox=gtk_hbox_new(FALSE,3); + + label=gtk_label_new(_("Disc artist")); + gtk_widget_set_usize(label,len,0); + gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); + gtk_widget_show(label); + + uinfo->artist_edit_entry=gtk_entry_new_with_max_length(256); + gtk_signal_connect(GTK_OBJECT(uinfo->artist_edit_entry),"changed", + GTK_SIGNAL_FUNC(ArtistEditChanged),(gpointer)ginfo); + gtk_entry_set_position(GTK_ENTRY(uinfo->artist_edit_entry),0); + gtk_box_pack_start(GTK_BOX(hbox),uinfo->artist_edit_entry,TRUE,TRUE,0); + gtk_widget_show(uinfo->artist_edit_entry); + + gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + hbox=gtk_hbox_new(FALSE,3); + + label=gtk_label_new(_("ID3 genre:")); + gtk_widget_set_usize(label,len,0); + gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); + gtk_widget_show(label); + + uinfo->id3_genre_combo=gtk_combo_new(); + + for(id3_genre_count=0;(id3_genre=ID3GenreByNum(id3_genre_count)); + id3_genre_count++) { + item = gtk_list_item_new_with_label(id3_genre->name); + gtk_object_set_user_data(GTK_OBJECT(item), + (gpointer)(id3_genre->num)); + uinfo->id3_genre_item_list=g_list_append(uinfo->id3_genre_item_list,item); + gtk_signal_connect(GTK_OBJECT(item),"select", + GTK_SIGNAL_FUNC(ID3GenreChanged), + (gpointer)ginfo); + gtk_container_add(GTK_CONTAINER(GTK_COMBO(uinfo->id3_genre_combo)->list), + item); + gtk_widget_show(item); + } + + gtk_box_pack_start(GTK_BOX(hbox),uinfo->id3_genre_combo,TRUE,TRUE,0); + gtk_widget_show(uinfo->id3_genre_combo); + + SetID3Genre(ginfo,ginfo->ddata.data_id3genre); + + gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + hbox=gtk_hbox_new(FALSE,3); + + label=gtk_label_new(_("Disc year")); + gtk_widget_set_usize(label,len,0); + gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); + gtk_widget_show(label); + + adj=gtk_adjustment_new(0,0,9999,1.0,5.0,0); + + uinfo->year_spin_button=gtk_spin_button_new(GTK_ADJUSTMENT(adj),0.5,0); + gtk_signal_connect(GTK_OBJECT(uinfo->year_spin_button),"value_changed", + GTK_SIGNAL_FUNC(YearEditChanged),(gpointer)ginfo); + gtk_box_pack_start(GTK_BOX(hbox),uinfo->year_spin_button,TRUE,TRUE,0); + gtk_widget_show(uinfo->year_spin_button); + + gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + hbox=gtk_hbox_new(FALSE,3); + + label=gtk_label_new(_("Track name")); + gtk_widget_set_usize(label,len,0); + gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); + gtk_widget_show(label); + + uinfo->track_edit_entry=gtk_entry_new_with_max_length(256); + gtk_signal_connect(GTK_OBJECT(uinfo->track_edit_entry),"changed", + GTK_SIGNAL_FUNC(TrackEditChanged),(gpointer)ginfo); + gtk_signal_connect(GTK_OBJECT(uinfo->track_edit_entry),"activate", + GTK_SIGNAL_FUNC(EditNextTrack),(gpointer)ginfo); + gtk_box_pack_start(GTK_BOX(hbox),uinfo->track_edit_entry,TRUE,TRUE,0); + gtk_widget_show(uinfo->track_edit_entry); + + gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + uinfo->multi_artist_box=gtk_vbox_new(FALSE,0); + + hbox=gtk_hbox_new(FALSE,3); + + label=gtk_label_new(_("Track artist")); + gtk_widget_set_usize(label,len,0); + gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); + gtk_widget_show(label); + + uinfo->track_artist_edit_entry=gtk_entry_new_with_max_length(256); + gtk_signal_connect(GTK_OBJECT(uinfo->track_artist_edit_entry),"changed", + GTK_SIGNAL_FUNC(TrackEditChanged),(gpointer)ginfo); + gtk_box_pack_start(GTK_BOX(hbox),uinfo->track_artist_edit_entry, + TRUE,TRUE,0); + gtk_widget_show(uinfo->track_artist_edit_entry); + + gtk_box_pack_start(GTK_BOX(uinfo->multi_artist_box),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + hbox=gtk_hbox_new(FALSE,3); + + label=gtk_label_new(_("Split:")); + gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); + gtk_widget_show(label); + + button=gtk_button_new_with_label(_("Title/Artist")); + gtk_object_set_user_data(GTK_OBJECT(button),(gpointer)0); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(SplitTitleArtist),(gpointer)ginfo); + gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0); + gtk_widget_show(button); + + button=gtk_button_new_with_label(_("Artist/Title")); + gtk_object_set_user_data(GTK_OBJECT(button),(gpointer)1); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(SplitTitleArtist),(gpointer)ginfo); + gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0); + gtk_widget_show(button); + + entry=MakeStrEntry(&uinfo->split_chars_entry,ginfo->title_split_chars, + _("Split chars"),5,TRUE); + + gtk_widget_set_usize(uinfo->split_chars_entry, + 5*dub_size,0); + + + + gtk_box_pack_end(GTK_BOX(hbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + gtk_box_pack_start(GTK_BOX(uinfo->multi_artist_box),hbox,FALSE,FALSE,2); + gtk_widget_show(hbox); + + gtk_box_pack_start(GTK_BOX(vbox),uinfo->multi_artist_box,FALSE,FALSE,0); + + if(ginfo->ddata.data_multi_artist) + gtk_widget_show(uinfo->multi_artist_box); + + hbox=gtk_hbox_new(FALSE,0); + + check=MakeCheckButton(&uinfo->multi_artist_button, + &(ginfo->ddata.data_multi_artist), + _("Multi-artist")); + gtk_signal_connect(GTK_OBJECT(uinfo->multi_artist_button),"clicked", + GTK_SIGNAL_FUNC(UpdateMultiArtist),(gpointer)ginfo); + gtk_box_pack_start(GTK_BOX(hbox),check,TRUE,TRUE,0); + gtk_widget_show(check); + + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->save_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(SaveDiscInfo),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Save disc info"),NULL); + gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0); + gtk_widget_show(button); + + button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->mail_image); + gtk_widget_set_style(button,uinfo->style_dark_grey); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(SubmitEntryCB),(gpointer)ginfo); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Submit disc info"),NULL); + gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0); + gtk_widget_show(button); + + gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + gtk_container_add(GTK_CONTAINER(frame),vbox); + gtk_widget_show(vbox); + + return frame; +} + +void UpdateMultiArtist(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + GripGUI *uinfo; + + ginfo=(GripInfo *)data; + uinfo=&(ginfo->gui_info); + + if(!ginfo->ddata.data_multi_artist) { + gtk_widget_hide(uinfo->multi_artist_box); + UpdateGTK(); + } + else { + gtk_widget_show(uinfo->multi_artist_box); + } +} + +void ToggleTrackEdit(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + GripGUI *uinfo; + + ginfo=(GripInfo *)data; + uinfo=&(ginfo->gui_info); + + if(uinfo->track_edit_visible) { + gtk_window_resize(GTK_WINDOW(uinfo->app), + uinfo->win_width, + uinfo->win_height); + + gtk_widget_hide(uinfo->track_edit_box); + UpdateGTK(); + } + else { + if(uinfo->minimized) MinMax(NULL,(gpointer)ginfo); + + gtk_widget_show(uinfo->track_edit_box); + + gtk_window_resize(GTK_WINDOW(uinfo->app), + uinfo->win_width, + uinfo->win_height_edit); + } + + uinfo->track_edit_visible=!uinfo->track_edit_visible; +} + +void SetTitle(GripInfo *ginfo,char *title) +{ + g_signal_handlers_block_by_func(G_OBJECT(ginfo->gui_info.title_edit_entry), + TitleEditChanged,(gpointer)ginfo); + + gtk_entry_set_text(GTK_ENTRY(ginfo->gui_info.title_edit_entry),title); + gtk_entry_set_position(GTK_ENTRY(ginfo->gui_info.title_edit_entry),0); + + strcpy(ginfo->ddata.data_title,title); + gtk_label_set(GTK_LABEL(ginfo->gui_info.disc_name_label),title); + + g_signal_handlers_unblock_by_func(G_OBJECT(ginfo->gui_info.title_edit_entry), + TitleEditChanged,(gpointer)ginfo); +} + +void SetArtist(GripInfo *ginfo,char *artist) +{ + g_signal_handlers_block_by_func(G_OBJECT(ginfo->gui_info.artist_edit_entry), + ArtistEditChanged,(gpointer)ginfo); + + gtk_entry_set_text(GTK_ENTRY(ginfo->gui_info.artist_edit_entry),artist); + gtk_entry_set_position(GTK_ENTRY(ginfo->gui_info.artist_edit_entry),0); + + strcpy(ginfo->ddata.data_artist,artist); + gtk_label_set(GTK_LABEL(ginfo->gui_info.disc_artist_label),artist); + + g_signal_handlers_unblock_by_func(G_OBJECT(ginfo->gui_info.artist_edit_entry), + ArtistEditChanged,(gpointer)ginfo); +} + +void SetYear(GripInfo *ginfo,int year) +{ + gtk_spin_button_set_value(GTK_SPIN_BUTTON(ginfo->gui_info.year_spin_button), + (gfloat)year); +} + +void SetID3Genre(GripInfo *ginfo,int id3_genre) +{ + GtkWidget *item; + + item= + GTK_WIDGET(g_list_nth(ginfo->gui_info.id3_genre_item_list, + ID3GenrePos(id3_genre))->data); + gtk_list_select_child(GTK_LIST(GTK_COMBO(ginfo->gui_info.id3_genre_combo)-> + list),item); +} + +static void SaveDiscInfo(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + if(ginfo->have_disc) { + if(DiscDBWriteDiscData(&(ginfo->disc),&(ginfo->ddata),NULL,TRUE,FALSE, + "utf-8")<0) + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Error saving disc data.")); + } + else gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("No disc present.")); +} + +static void TitleEditChanged(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + strcpy(ginfo->ddata.data_title, + gtk_entry_get_text(GTK_ENTRY(ginfo->gui_info.title_edit_entry))); + + gtk_label_set(GTK_LABEL(ginfo->gui_info.disc_name_label), + ginfo->ddata.data_title); +} + +static void ArtistEditChanged(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + strcpy(ginfo->ddata.data_artist, + gtk_entry_get_text(GTK_ENTRY(ginfo->gui_info.artist_edit_entry))); + + gtk_label_set(GTK_LABEL(ginfo->gui_info.disc_artist_label), + ginfo->ddata.data_artist); +} + +static void YearEditChanged(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + ginfo->ddata.data_year= + gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(ginfo->gui_info. + year_spin_button)); +} + +void TrackEditChanged(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + char newname[256]; + GtkTreeIter iter; + gint i; + + ginfo=(GripInfo *)data; + + strcpy(ginfo->ddata.data_track[CURRENT_TRACK].track_name, + gtk_entry_get_text(GTK_ENTRY(ginfo->gui_info.track_edit_entry))); + + strcpy(ginfo->ddata.data_track[CURRENT_TRACK].track_artist, + gtk_entry_get_text(GTK_ENTRY(ginfo->gui_info.track_artist_edit_entry))); + + if(*ginfo->ddata.data_track[CURRENT_TRACK].track_artist) + g_snprintf(newname,256,"%02d %s (%s)",CURRENT_TRACK+1, + ginfo->ddata.data_track[CURRENT_TRACK].track_name, + ginfo->ddata.data_track[CURRENT_TRACK].track_artist); + else + g_snprintf(newname,256,"%02d %s",CURRENT_TRACK+1, + ginfo->ddata.data_track[CURRENT_TRACK].track_name); + + gtk_tree_model_get_iter_first(GTK_TREE_MODEL(ginfo->gui_info.track_list_store), + &iter); + for(i=0;igui_info.track_list_store), + &iter); + gtk_list_store_set(ginfo->gui_info.track_list_store,&iter, + TRACKLIST_TRACK_COL,newname,-1); + /* gtk_clist_set_text(GTK_CLIST(ginfo->gui_info.trackclist), + CURRENT_TRACK,0,newname);*/ +} + +static void EditNextTrack(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + NextTrack(ginfo); + /* gtk_editable_select_region(GTK_EDITABLE(track_edit_entry),0,-1);*/ + gtk_widget_grab_focus(GTK_WIDGET(ginfo->gui_info.track_edit_entry)); +} + +static void ID3GenreChanged(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + ginfo->ddata.data_id3genre=(int)gtk_object_get_user_data(GTK_OBJECT(widget)); + /* ginfo->ddata.data_genre=ID32DiscDB(ginfo->ddata.data_id3genre);*/ +} + +static void SeparateFields(char *buf,char *field1,char *field2,char *sep) +{ + char *tmp; + char spare[80]; + + tmp=strtok(buf,sep); + + if(!tmp) return; + + strncpy(spare,g_strstrip(tmp),80); + + tmp=strtok(NULL,""); + + if(tmp) { + strncpy(field2,g_strstrip(tmp),80); + } + else *field2='\0'; + + strcpy(field1,spare); +} + +static void SplitTitleArtist(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + int track; + int mode; + + ginfo=(GripInfo *)data; + mode=(int)gtk_object_get_user_data(GTK_OBJECT(widget)); + + for(track=0;trackdisc.num_tracks;track++) { + if(mode==0) + SeparateFields(ginfo->ddata.data_track[track].track_name, + ginfo->ddata.data_track[track].track_name, + ginfo->ddata.data_track[track].track_artist, + ginfo->title_split_chars); + else + SeparateFields(ginfo->ddata.data_track[track].track_name, + ginfo->ddata.data_track[track].track_artist, + ginfo->ddata.data_track[track].track_name, + ginfo->title_split_chars); + } + + UpdateTracks(ginfo); +} + +static void SubmitEntryCB(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + int len; + + ginfo=(GripInfo *)data; + + if(!ginfo->have_disc) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Cannot submit. No disc is present.")); + + return; + } + + if(!ginfo->ddata.data_genre) { + /* gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Submission requires a genre other than 'unknown'."));*/ + GetDiscDBGenre(ginfo); + + return; + } + + if(!*ginfo->ddata.data_title) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("You must enter a disc title.")); + + return; + } + + if(!*ginfo->ddata.data_artist) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("You must enter a disc artist.")); + + return; + } + + len=strlen(ginfo->discdb_submit_email); + + if(!strncasecmp(ginfo->discdb_submit_email+(len-9),".cddb.com",9)) + gnome_app_ok_cancel_modal + ((GnomeApp *)ginfo->gui_info.app, + _("You are about to submit this disc information\n" + "to a commercial CDDB server, which will then\n" + "own the data that you submit. These servers make\n" + "a profit out of your effort. We suggest that you\n" + "support free servers instead.\n\nContinue?"), + (GnomeReplyCallback)SubmitEntry,(gpointer)ginfo); + else + gnome_app_ok_cancel_modal + ((GnomeApp *)ginfo->gui_info.app, + _("You are about to submit this\ndisc information via email.\n\n" + "Continue?"),(GnomeReplyCallback)SubmitEntry,(gpointer)ginfo); +} + +/* Make the user pick a DiscDB genre on submit*/ +static void GetDiscDBGenre(GripInfo *ginfo) +{ + GtkWidget *dialog; + GtkWidget *label; + GtkWidget *submit_button; + GtkWidget *cancel_button; + GtkWidget *hbox; + GtkWidget *genre_combo; + GtkWidget *item; + int genre; + + dialog=gtk_dialog_new(); + gtk_window_set_title(GTK_WINDOW(dialog),_("Genre selection")); + + gtk_container_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),5); + + label=gtk_label_new(_("Submission requires a genre other than 'unknown'\n" + "Please select a DiscDB genre below")); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),label,TRUE,TRUE,0); + gtk_widget_show(label); + + genre_combo=gtk_combo_new(); + gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(genre_combo)->entry),FALSE); + + hbox=gtk_hbox_new(FALSE,3); + + label=gtk_label_new(_("DiscDB genre")); + gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); + gtk_widget_show(label); + + for(genre=0;genre<12;genre++) { + item=gtk_list_item_new_with_label(DiscDBGenre(genre)); + gtk_object_set_user_data(GTK_OBJECT(item), + (gpointer)genre); + gtk_signal_connect(GTK_OBJECT(item), "select", + GTK_SIGNAL_FUNC(DiscDBGenreChanged),(gpointer)ginfo); + gtk_container_add(GTK_CONTAINER(GTK_COMBO(genre_combo)->list),item); + gtk_widget_show(item); + } + + gtk_box_pack_start(GTK_BOX(hbox),genre_combo,TRUE,TRUE,0); + gtk_widget_show(genre_combo); + + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),hbox,TRUE,TRUE,0); + gtk_widget_show(hbox); + + submit_button=gtk_button_new_with_label(_("Submit")); + + gtk_signal_connect(GTK_OBJECT(submit_button),"clicked", + (gpointer)SubmitEntryCB,(gpointer)ginfo); + gtk_signal_connect_object(GTK_OBJECT(submit_button),"clicked", + GTK_SIGNAL_FUNC(gtk_widget_destroy), + GTK_OBJECT(dialog)); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),submit_button, + TRUE,TRUE,0); + gtk_widget_show(submit_button); + + cancel_button=gtk_button_new_with_label(_("Cancel")); + + gtk_signal_connect_object(GTK_OBJECT(cancel_button),"clicked", + GTK_SIGNAL_FUNC(gtk_widget_destroy), + GTK_OBJECT(dialog)); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),cancel_button, + TRUE,TRUE,0); + gtk_widget_show(cancel_button); + + gtk_widget_show(dialog); + + gtk_grab_add(dialog); +} + +/* Set the DiscDB genre when a combo item is selected */ +static void DiscDBGenreChanged(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + ginfo->ddata.data_genre=(int)gtk_object_get_user_data(GTK_OBJECT(widget)); +} diff --git a/src/discedit.h b/src/discedit.h new file mode 100644 index 0000000..b135680 --- /dev/null +++ b/src/discedit.h @@ -0,0 +1,38 @@ +/* discedit.h + * + * Copyright (c) 1998-2002 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * 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 + */ + +#ifndef GRIP_DISCEDIT_H +#define GRIP_DISCEDIT_H + +#include "grip.h" + +GtkWidget *MakeEditBox(GripInfo *ginfo); +void TrackEditChanged(GtkWidget *widget,gpointer data); +void UpdateMultiArtist(GtkWidget *widget,gpointer data); +void ToggleTrackEdit(GtkWidget *widget,gpointer data); +void SetTitle(GripInfo *ginfo,char *title); +void SetArtist(GripInfo *ginfo,char *artist); +void SetYear(GripInfo *ginfo,int year); +void SetID3Genre(GripInfo *ginfo,int id3_genre); + + +#endif /* ifndef GRIP_DISCEDIT_H */ diff --git a/src/eggtrayicon.c b/src/eggtrayicon.c new file mode 100644 index 0000000..ad1341e --- /dev/null +++ b/src/eggtrayicon.c @@ -0,0 +1,389 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* eggtrayicon.c + * Copyright (C) 2002 Anders Carlsson + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include +#include +#include "eggtrayicon.h" + +#define SYSTEM_TRAY_REQUEST_DOCK 0 +#define SYSTEM_TRAY_BEGIN_MESSAGE 1 +#define SYSTEM_TRAY_CANCEL_MESSAGE 2 + +static GtkPlugClass *parent_class = NULL; + +static void egg_tray_icon_init (EggTrayIcon *icon); +static void egg_tray_icon_class_init (EggTrayIconClass *klass); + +static void egg_tray_icon_unrealize (GtkWidget *widget); + +static void egg_tray_icon_update_manager_window (EggTrayIcon *icon); + +GType +egg_tray_icon_get_type (void) +{ + static GType our_type = 0; + + our_type = g_type_from_name("EggTrayIcon"); + + if (our_type == 0) + { + static const GTypeInfo our_info = + { + sizeof (EggTrayIconClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) egg_tray_icon_class_init, + NULL, /* class_finalize */ + NULL, /* class_data */ + sizeof (EggTrayIcon), + 0, /* n_preallocs */ + (GInstanceInitFunc) egg_tray_icon_init + }; + + our_type = g_type_register_static (GTK_TYPE_PLUG, "EggTrayIcon", &our_info, 0); + } + else if (parent_class == NULL) { + /* we're reheating the old class from a previous instance - engage ugly hack =( */ + egg_tray_icon_class_init((EggTrayIconClass *)g_type_class_peek(our_type)); + } + + return our_type; +} + +static void +egg_tray_icon_init (EggTrayIcon *icon) +{ + icon->stamp = 1; + + gtk_widget_add_events (GTK_WIDGET (icon), GDK_PROPERTY_CHANGE_MASK); +} + +static void +egg_tray_icon_class_init (EggTrayIconClass *klass) +{ + GtkWidgetClass *widget_class = (GtkWidgetClass *)klass; + + parent_class = g_type_class_peek_parent (klass); + + widget_class->unrealize = egg_tray_icon_unrealize; +} + +static GdkFilterReturn +egg_tray_icon_manager_filter (GdkXEvent *xevent, GdkEvent *event, gpointer user_data) +{ + EggTrayIcon *icon = user_data; + XEvent *xev = (XEvent *)xevent; + + if (xev->xany.type == ClientMessage && + xev->xclient.message_type == icon->manager_atom && + xev->xclient.data.l[1] == icon->selection_atom) + { + egg_tray_icon_update_manager_window (icon); + } + else if (xev->xany.window == icon->manager_window) + { + if (xev->xany.type == DestroyNotify) + { + egg_tray_icon_update_manager_window (icon); + } + } + + return GDK_FILTER_CONTINUE; +} + +static void +egg_tray_icon_unrealize (GtkWidget *widget) +{ + EggTrayIcon *icon = EGG_TRAY_ICON (widget); + GdkWindow *root_window; + + if (icon->manager_window != None) + { + GdkWindow *gdkwin; + +#if HAVE_GTK_MULTIHEAD + gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget), + icon->manager_window); +#else + gdkwin = gdk_window_lookup (icon->manager_window); +#endif + + gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon); + } + +#if HAVE_GTK_MULTIHEAD + root_window = gdk_screen_get_root_window (gtk_widget_get_screen (widget)); +#else + root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ()); +#endif + + gdk_window_remove_filter (root_window, egg_tray_icon_manager_filter, icon); + + if (GTK_WIDGET_CLASS (parent_class)->unrealize) + (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget); +} + +static void +egg_tray_icon_send_manager_message (EggTrayIcon *icon, + long message, + Window window, + long data1, + long data2, + long data3) +{ + XClientMessageEvent ev; + Display *display; + + ev.type = ClientMessage; + ev.window = window; + ev.message_type = icon->system_tray_opcode_atom; + ev.format = 32; + ev.data.l[0] = gdk_x11_get_server_time (GTK_WIDGET (icon)->window); + ev.data.l[1] = message; + ev.data.l[2] = data1; + ev.data.l[3] = data2; + ev.data.l[4] = data3; + +#if HAVE_GTK_MULTIHEAD + display = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); +#else + display = gdk_display; +#endif + + gdk_error_trap_push (); + XSendEvent (display, + icon->manager_window, False, NoEventMask, (XEvent *)&ev); + XSync (display, False); + gdk_error_trap_pop (); +} + +static void +egg_tray_icon_send_dock_request (EggTrayIcon *icon) +{ + egg_tray_icon_send_manager_message (icon, + SYSTEM_TRAY_REQUEST_DOCK, + icon->manager_window, + gtk_plug_get_id (GTK_PLUG (icon)), + 0, 0); +} + +static void +egg_tray_icon_update_manager_window (EggTrayIcon *icon) +{ + Display *xdisplay; + +#if HAVE_GTK_MULTIHEAD + xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); +#else + xdisplay = gdk_display; +#endif + + if (icon->manager_window != None) + { + GdkWindow *gdkwin; + +#if HAVE_GTK_MULTIHEAD + gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)), + icon->manager_window); +#else + gdkwin = gdk_window_lookup (icon->manager_window); +#endif + + gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon); + } + + XGrabServer (xdisplay); + + icon->manager_window = XGetSelectionOwner (xdisplay, + icon->selection_atom); + + if (icon->manager_window != None) + XSelectInput (xdisplay, + icon->manager_window, StructureNotifyMask); + + XUngrabServer (xdisplay); + XFlush (xdisplay); + + if (icon->manager_window != None) + { + GdkWindow *gdkwin; + +#if HAVE_GTK_MULTIHEAD + gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)), + icon->manager_window); +#else + gdkwin = gdk_window_lookup (icon->manager_window); +#endif + + gdk_window_add_filter (gdkwin, egg_tray_icon_manager_filter, icon); + + /* Send a request that we'd like to dock */ + egg_tray_icon_send_dock_request (icon); + } +} + +EggTrayIcon * +egg_tray_icon_new_for_xscreen (Screen *xscreen, const char *name) +{ + EggTrayIcon *icon; + char buffer[256]; + GdkWindow *root_window; + + g_return_val_if_fail (xscreen != NULL, NULL); + + icon = g_object_new (EGG_TYPE_TRAY_ICON, NULL); + gtk_window_set_title (GTK_WINDOW (icon), name); + +#if HAVE_GTK_MULTIHEAD + /* FIXME: this code does not compile, screen is undefined. Now try + * getting the GdkScreen from xscreen (:. Dunno how to solve this + * (there is prolly some easy way I cant think of right now) + */ + gtk_plug_construct_for_display (GTK_PLUG (icon), + gdk_screen_get_display (screen), 0); +#else + gtk_plug_construct (GTK_PLUG (icon), 0); +#endif + + gtk_widget_realize (GTK_WIDGET (icon)); + + /* Now see if there's a manager window around */ + g_snprintf (buffer, sizeof (buffer), + "_NET_SYSTEM_TRAY_S%d", + XScreenNumberOfScreen (xscreen)); + + icon->selection_atom = XInternAtom (DisplayOfScreen (xscreen), + buffer, False); + + icon->manager_atom = XInternAtom (DisplayOfScreen (xscreen), + "MANAGER", False); + + icon->system_tray_opcode_atom = XInternAtom (DisplayOfScreen (xscreen), + "_NET_SYSTEM_TRAY_OPCODE", False); + + egg_tray_icon_update_manager_window (icon); + +#if HAVE_GTK_MULTIHEAD + root_window = gdk_screen_get_root_window (gtk_widget_get_screen (screen)); +#else + root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ()); +#endif + + /* Add a root window filter so that we get changes on MANAGER */ + gdk_window_add_filter (root_window, + egg_tray_icon_manager_filter, icon); + + return icon; +} + +#if HAVE_GTK_MULTIHEAD +EggTrayIcon * +egg_tray_icon_new_for_screen (GdkScreen *screen, const char *name) +{ + EggTrayIcon *icon; + char buffer[256]; + + g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL); + + return egg_tray_icon_new_for_xscreen (GDK_SCREEN_XSCREEN (screen), name); +} +#endif + +EggTrayIcon* +egg_tray_icon_new (const gchar *name) +{ + return egg_tray_icon_new_for_xscreen (DefaultScreenOfDisplay (gdk_display), name); +} + +guint +egg_tray_icon_send_message (EggTrayIcon *icon, + gint timeout, + const gchar *message, + gint len) +{ + guint stamp; + + g_return_val_if_fail (EGG_IS_TRAY_ICON (icon), 0); + g_return_val_if_fail (timeout >= 0, 0); + g_return_val_if_fail (message != NULL, 0); + + if (icon->manager_window == None) + return 0; + + if (len < 0) + len = strlen (message); + + stamp = icon->stamp++; + + /* Get ready to send the message */ + egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_BEGIN_MESSAGE, + (Window)gtk_plug_get_id (GTK_PLUG (icon)), + timeout, len, stamp); + + /* Now to send the actual message */ + gdk_error_trap_push (); + while (len > 0) + { + XClientMessageEvent ev; + Display *xdisplay; + +#if HAVE_GTK_MULTIHEAD + xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); +#else + xdisplay = gdk_display; +#endif + + ev.type = ClientMessage; + ev.window = (Window)gtk_plug_get_id (GTK_PLUG (icon)); + ev.format = 8; + ev.message_type = XInternAtom (xdisplay, + "_NET_SYSTEM_TRAY_MESSAGE_DATA", False); + if (len > 20) + { + memcpy (&ev.data, message, 20); + len -= 20; + message += 20; + } + else + { + memcpy (&ev.data, message, len); + len = 0; + } + + XSendEvent (xdisplay, + icon->manager_window, False, StructureNotifyMask, (XEvent *)&ev); + XSync (xdisplay, False); + } + gdk_error_trap_pop (); + + return stamp; +} + +void +egg_tray_icon_cancel_message (EggTrayIcon *icon, + guint id) +{ + g_return_if_fail (EGG_IS_TRAY_ICON (icon)); + g_return_if_fail (id > 0); + + egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_CANCEL_MESSAGE, + (Window)gtk_plug_get_id (GTK_PLUG (icon)), + id, 0, 0); +} diff --git a/src/eggtrayicon.h b/src/eggtrayicon.h new file mode 100644 index 0000000..5be7618 --- /dev/null +++ b/src/eggtrayicon.h @@ -0,0 +1,76 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* eggtrayicon.h + * Copyright (C) 2002 Anders Carlsson + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __EGG_TRAY_ICON_H__ +#define __EGG_TRAY_ICON_H__ + +#include +#include + +G_BEGIN_DECLS + +#define EGG_TYPE_TRAY_ICON (egg_tray_icon_get_type ()) +#define EGG_TRAY_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_TRAY_ICON, EggTrayIcon)) +#define EGG_TRAY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_TRAY_ICON, EggTrayIconClass)) +#define EGG_IS_TRAY_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_TRAY_ICON)) +#define EGG_IS_TRAY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_TRAY_ICON)) +#define EGG_TRAY_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_TRAY_ICON, EggTrayIconClass)) + +typedef struct _EggTrayIcon EggTrayIcon; +typedef struct _EggTrayIconClass EggTrayIconClass; + +struct _EggTrayIcon +{ + GtkPlug parent_instance; + + guint stamp; + + Atom selection_atom; + Atom manager_atom; + Atom system_tray_opcode_atom; + Window manager_window; +}; + +struct _EggTrayIconClass +{ + GtkPlugClass parent_class; +}; + +GType egg_tray_icon_get_type (void); + +#if EGG_TRAY_ENABLE_MULTIHEAD +EggTrayIcon *egg_tray_icon_new_for_screen (GdkScreen *screen, + const gchar *name); +#endif + +EggTrayIcon *egg_tray_icon_new (const gchar *name); + +guint egg_tray_icon_send_message (EggTrayIcon *icon, + gint timeout, + const char *message, + gint len); +void egg_tray_icon_cancel_message (EggTrayIcon *icon, + guint id); + + + +G_END_DECLS + +#endif /* __EGG_TRAY_ICON_H__ */ diff --git a/src/gain_analysis.c b/src/gain_analysis.c new file mode 100644 index 0000000..a28101e --- /dev/null +++ b/src/gain_analysis.c @@ -0,0 +1,398 @@ +/* + * ReplayGainAnalysis - analyzes input samples and give the recommended dB change + * Copyright (C) 2001 David Robinson and Glen Sawyer + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * concept and filter values by David Robinson (David@Robinson.org) + * -- blame him if you think the idea is flawed + * coding by Glen Sawyer (glensawyer@hotmail.com) 442 N 700 E, Provo, UT 84606 USA + * -- blame him if you think this runs too slowly, or the coding is otherwise flawed + * + * For an explanation of the concepts and the basic algorithms involved, go to: + * http://www.replaygain.org/ + */ + +/* + * Here's the deal. Call + * + * InitGainAnalysis ( long samplefreq ); + * + * to initialize everything. Call + * + * AnalyzeSamples ( const Float_t* left_samples, + * const Float_t* right_samples, + * size_t num_samples, + * int num_channels ); + * + * as many times as you want, with as many or as few samples as you want. + * If mono, pass the sample buffer in through left_samples, leave + * right_samples NULL, and make sure num_channels = 1. + * + * GetTitleGain() + * + * will return the recommended dB level change for all samples analyzed + * SINCE THE LAST TIME you called GetTitleGain() OR InitGainAnalysis(). + * + * GetAlbumGain() + * + * will return the recommended dB level change for all samples analyzed + * since InitGainAnalysis() was called and finalized with GetTitleGain(). + * + * Pseudo-code to process an album: + * + * Float_t l_samples [4096]; + * Float_t r_samples [4096]; + * size_t num_samples; + * unsigned int num_songs; + * unsigned int i; + * + * InitGainAnalysis ( 44100 ); + * for ( i = 1; i <= num_songs; i++ ) { + * while ( ( num_samples = getSongSamples ( song[i], left_samples, right_samples ) ) > 0 ) + * AnalyzeSamples ( left_samples, right_samples, num_samples, 2 ); + * fprintf ("Recommended dB change for song %2d: %+6.2f dB\n", i, GetTitleGain() ); + * } + * fprintf ("Recommended dB change for whole album: %+6.2f dB\n", GetAlbumGain() ); + */ + +/* + * So here's the main source of potential code confusion: + * + * The filters applied to the incoming samples are IIR filters, + * meaning they rely on up to number of previous samples + * AND up to number of previous filtered samples. + * + * I set up the AnalyzeSamples routine to minimize memory usage and interface + * complexity. The speed isn't compromised too much (I don't think), but the + * internal complexity is higher than it should be for such a relatively + * simple routine. + * + * Optimization/clarity suggestions are welcome. + */ + +#include +#include +#include +#include + +#include "gain_analysis.h" + +typedef unsigned short Uint16_t; +typedef signed short Int16_t; +typedef unsigned int Uint32_t; +typedef signed int Int32_t; + +#define YULE_ORDER 10 +#define BUTTER_ORDER 2 +#define RMS_PERCENTILE 0.95 // percentile which is louder than the proposed level +#define MAX_SAMP_FREQ 48000. // maximum allowed sample frequency [Hz] +#define RMS_WINDOW_TIME 0.050 // Time slice size [s] +#define STEPS_per_dB 100. // Table entries per dB +#define MAX_dB 120. // Table entries for 0...MAX_dB (normal max. values are 70...80 dB) + +#define MAX_ORDER (BUTTER_ORDER > YULE_ORDER ? BUTTER_ORDER : YULE_ORDER) +#define MAX_SAMPLES_PER_WINDOW (size_t) (MAX_SAMP_FREQ * RMS_WINDOW_TIME) // max. Samples per Time slice +#define PINK_REF 64.82 //298640883795 // calibration value + +Float_t linprebuf [MAX_ORDER * 2]; +Float_t* linpre; // left input samples, with pre-buffer +Float_t lstepbuf [MAX_SAMPLES_PER_WINDOW + MAX_ORDER]; +Float_t* lstep; // left "first step" (i.e. post first filter) samples +Float_t loutbuf [MAX_SAMPLES_PER_WINDOW + MAX_ORDER]; +Float_t* lout; // left "out" (i.e. post second filter) samples +Float_t rinprebuf [MAX_ORDER * 2]; +Float_t* rinpre; // right input samples ... +Float_t rstepbuf [MAX_SAMPLES_PER_WINDOW + MAX_ORDER]; +Float_t* rstep; +Float_t routbuf [MAX_SAMPLES_PER_WINDOW + MAX_ORDER]; +Float_t* rout; +unsigned int sampleWindow; // number of samples required to reach number of milliseconds required for RMS window +unsigned long totsamp; +double lsum; +double rsum; +int freqindex; +int first; +static Uint32_t A [(size_t)(STEPS_per_dB * MAX_dB)]; +static Uint32_t B [(size_t)(STEPS_per_dB * MAX_dB)]; + +// for each filter: +// [0] 48 kHz, [1] 44.1 kHz, [2] 32 kHz, [3] 24 kHz, [4] 22050 Hz, [5] 16 kHz, [6] 12 kHz, [7] is 11025 Hz, [8] 8 kHz + +//#pragma warning ( disable : 4305 ) + +const Float_t AYule [9] [11] = { + { 1., -3.84664617118067, 7.81501653005538,-11.34170355132042, 13.05504219327545,-12.28759895145294, 9.48293806319790, -5.87257861775999, 2.75465861874613, -0.86984376593551, 0.13919314567432 }, + { 1., -3.47845948550071, 6.36317777566148, -8.54751527471874, 9.47693607801280, -8.81498681370155, 6.85401540936998, -4.39470996079559, 2.19611684890774, -0.75104302451432, 0.13149317958808 }, + { 1., -2.37898834973084, 2.84868151156327, -2.64577170229825, 2.23697657451713, -1.67148153367602, 1.00595954808547, -0.45953458054983, 0.16378164858596, -0.05032077717131, 0.02347897407020 }, + { 1., -1.61273165137247, 1.07977492259970, -0.25656257754070, -0.16276719120440, -0.22638893773906, 0.39120800788284, -0.22138138954925, 0.04500235387352, 0.02005851806501, 0.00302439095741 }, + { 1., -1.49858979367799, 0.87350271418188, 0.12205022308084, -0.80774944671438, 0.47854794562326, -0.12453458140019, -0.04067510197014, 0.08333755284107, -0.04237348025746, 0.02977207319925 }, + { 1., -0.62820619233671, 0.29661783706366, -0.37256372942400, 0.00213767857124, -0.42029820170918, 0.22199650564824, 0.00613424350682, 0.06747620744683, 0.05784820375801, 0.03222754072173 }, + { 1., -1.04800335126349, 0.29156311971249, -0.26806001042947, 0.00819999645858, 0.45054734505008, -0.33032403314006, 0.06739368333110, -0.04784254229033, 0.01639907836189, 0.01807364323573 }, + { 1., -0.51035327095184, -0.31863563325245, -0.20256413484477, 0.14728154134330, 0.38952639978999, -0.23313271880868, -0.05246019024463, -0.02505961724053, 0.02442357316099, 0.01818801111503 }, + { 1., -0.25049871956020, -0.43193942311114, -0.03424681017675, -0.04678328784242, 0.26408300200955, 0.15113130533216, -0.17556493366449, -0.18823009262115, 0.05477720428674, 0.04704409688120 } +}; + +const Float_t BYule [9] [11] = { + { 0.03857599435200, -0.02160367184185, -0.00123395316851, -0.00009291677959, -0.01655260341619, 0.02161526843274, -0.02074045215285, 0.00594298065125, 0.00306428023191, 0.00012025322027, 0.00288463683916 }, + { 0.05418656406430, -0.02911007808948, -0.00848709379851, -0.00851165645469, -0.00834990904936, 0.02245293253339, -0.02596338512915, 0.01624864962975, -0.00240879051584, 0.00674613682247, -0.00187763777362 }, + { 0.15457299681924, -0.09331049056315, -0.06247880153653, 0.02163541888798, -0.05588393329856, 0.04781476674921, 0.00222312597743, 0.03174092540049, -0.01390589421898, 0.00651420667831, -0.00881362733839 }, + { 0.30296907319327, -0.22613988682123, -0.08587323730772, 0.03282930172664, -0.00915702933434, -0.02364141202522, -0.00584456039913, 0.06276101321749, -0.00000828086748, 0.00205861885564, -0.02950134983287 }, + { 0.33642304856132, -0.25572241425570, -0.11828570177555, 0.11921148675203, -0.07834489609479, -0.00469977914380, -0.00589500224440, 0.05724228140351, 0.00832043980773, -0.01635381384540, -0.01760176568150 }, + { 0.44915256608450, -0.14351757464547, -0.22784394429749, -0.01419140100551, 0.04078262797139, -0.12398163381748, 0.04097565135648, 0.10478503600251, -0.01863887810927, -0.03193428438915, 0.00541907748707 }, + { 0.56619470757641, -0.75464456939302, 0.16242137742230, 0.16744243493672, -0.18901604199609, 0.30931782841830, -0.27562961986224, 0.00647310677246, 0.08647503780351, -0.03788984554840, -0.00588215443421 }, + { 0.58100494960553, -0.53174909058578, -0.14289799034253, 0.17520704835522, 0.02377945217615, 0.15558449135573, -0.25344790059353, 0.01628462406333, 0.06920467763959, -0.03721611395801, -0.00749618797172 }, + { 0.53648789255105, -0.42163034350696, -0.00275953611929, 0.04267842219415, -0.10214864179676, 0.14590772289388, -0.02459864859345, -0.11202315195388, -0.04060034127000, 0.04788665548180, -0.02217936801134 } +}; + +const Float_t AButter [9] [3] = { + { 1., -1.97223372919527, 0.97261396931306 }, + { 1., -1.96977855582618, 0.97022847566350 }, + { 1., -1.95835380975398, 0.95920349965459 }, + { 1., -1.95002759149878, 0.95124613669835 }, + { 1., -1.94561023566527, 0.94705070426118 }, + { 1., -1.92783286977036, 0.93034775234268 }, + { 1., -1.91858953033784, 0.92177618768381 }, + { 1., -1.91542108074780, 0.91885558323625 }, + { 1., -1.88903307939452, 0.89487434461664 } +}; + +const Float_t BButter [9] [3] = { + { 0.98621192462708, -1.97242384925416, 0.98621192462708 }, + { 0.98500175787242, -1.97000351574484, 0.98500175787242 }, + { 0.97938932735214, -1.95877865470428, 0.97938932735214 }, + { 0.97531843204928, -1.95063686409857, 0.97531843204928 }, + { 0.97316523498161, -1.94633046996323, 0.97316523498161 }, + { 0.96454515552826, -1.92909031105652, 0.96454515552826 }, + { 0.96009142950541, -1.92018285901082, 0.96009142950541 }, + { 0.95856916599601, -1.91713833199203, 0.95856916599601 }, + { 0.94597685600279, -1.89195371200558, 0.94597685600279 } +}; + +//#pragma warning ( default : 4305 ) + +// When calling this procedure, make sure that ip[-order] and op[-order] point to real data! + +static void +filter ( const Float_t* input, Float_t* output, size_t nSamples, const Float_t* a, const Float_t* b, size_t order ) +{ + double y; + size_t i; + size_t k; + + for ( i = 0; i < nSamples; i++ ) { + y = input[i] * b[0]; + for ( k = 1; k <= order; k++ ) + y += input[i-k] * b[k] - output[i-k] * a[k]; + output[i] = (Float_t)y; + } +} + +// returns a INIT_GAIN_ANALYSIS_OK if successful, INIT_GAIN_ANALYSIS_ERROR if not + +int +ResetSampleFrequency ( long samplefreq ) { + int i; + + // zero out initial values + for ( i = 0; i < MAX_ORDER; i++ ) + linprebuf[i] = lstepbuf[i] = loutbuf[i] = rinprebuf[i] = rstepbuf[i] = routbuf[i] = 0.; + + switch ( (int)(samplefreq) ) { + case 48000: freqindex = 0; break; + case 44100: freqindex = 1; break; + case 32000: freqindex = 2; break; + case 24000: freqindex = 3; break; + case 22050: freqindex = 4; break; + case 16000: freqindex = 5; break; + case 12000: freqindex = 6; break; + case 11025: freqindex = 7; break; + case 8000: freqindex = 8; break; + default: return INIT_GAIN_ANALYSIS_ERROR; + } + + sampleWindow = (int) ceil (samplefreq * RMS_WINDOW_TIME); + + lsum = 0.; + rsum = 0.; + totsamp = 0; + + memset ( A, 0, sizeof(A) ); + + return INIT_GAIN_ANALYSIS_OK; +} + +int +InitGainAnalysis ( long samplefreq ) +{ + if (ResetSampleFrequency(samplefreq) != INIT_GAIN_ANALYSIS_OK) { + return INIT_GAIN_ANALYSIS_ERROR; + } + + linpre = linprebuf + MAX_ORDER; + rinpre = rinprebuf + MAX_ORDER; + lstep = lstepbuf + MAX_ORDER; + rstep = rstepbuf + MAX_ORDER; + lout = loutbuf + MAX_ORDER; + rout = routbuf + MAX_ORDER; + + memset ( B, 0, sizeof(B) ); + + return INIT_GAIN_ANALYSIS_OK; +} + +// returns GAIN_ANALYSIS_OK if successful, GAIN_ANALYSIS_ERROR if not + +int +AnalyzeSamples ( const Float_t* left_samples, const Float_t* right_samples, size_t num_samples, int num_channels ) +{ + const Float_t* curleft; + const Float_t* curright; + long batchsamples; + long cursamples; + long cursamplepos; + int i; + + if ( num_samples == 0 ) + return GAIN_ANALYSIS_OK; + + cursamplepos = 0; + batchsamples = num_samples; + + switch ( num_channels) { + case 1: right_samples = left_samples; + case 2: break; + default: return GAIN_ANALYSIS_ERROR; + } + + if ( num_samples < MAX_ORDER ) { + memcpy ( linprebuf + MAX_ORDER, left_samples , num_samples * sizeof(Float_t) ); + memcpy ( rinprebuf + MAX_ORDER, right_samples, num_samples * sizeof(Float_t) ); + } + else { + memcpy ( linprebuf + MAX_ORDER, left_samples, MAX_ORDER * sizeof(Float_t) ); + memcpy ( rinprebuf + MAX_ORDER, right_samples, MAX_ORDER * sizeof(Float_t) ); + } + + while ( batchsamples > 0 ) { + cursamples = batchsamples > sampleWindow-totsamp ? sampleWindow - totsamp : batchsamples; + if ( cursamplepos < MAX_ORDER ) { + curleft = linpre+cursamplepos; + curright = rinpre+cursamplepos; + if (cursamples > MAX_ORDER - cursamplepos ) + cursamples = MAX_ORDER - cursamplepos; + } + else { + curleft = left_samples + cursamplepos; + curright = right_samples + cursamplepos; + } + + filter ( curleft , lstep + totsamp, cursamples, AYule[freqindex], BYule[freqindex], YULE_ORDER ); + filter ( curright, rstep + totsamp, cursamples, AYule[freqindex], BYule[freqindex], YULE_ORDER ); + + filter ( lstep + totsamp, lout + totsamp, cursamples, AButter[freqindex], BButter[freqindex], BUTTER_ORDER ); + filter ( rstep + totsamp, rout + totsamp, cursamples, AButter[freqindex], BButter[freqindex], BUTTER_ORDER ); + + for ( i = 0; i < cursamples; i++ ) { // Get the squared values + lsum += lout [totsamp+i] * lout [totsamp+i]; + rsum += rout [totsamp+i] * rout [totsamp+i]; + } + + batchsamples -= cursamples; + cursamplepos += cursamples; + totsamp += cursamples; + if ( totsamp == sampleWindow ) { // Get the Root Mean Square (RMS) for this set of samples + double val = STEPS_per_dB * 10. * log10 ( (lsum+rsum) / totsamp * 0.5 + 1.e-37 ); + int ival = (int) val; + if ( ival < 0 ) ival = 0; + if ( ival >= sizeof(A)/sizeof(*A) ) ival = sizeof(A)/sizeof(*A) - 1; + A [ival]++; + lsum = rsum = 0.; + memmove ( loutbuf , loutbuf + totsamp, MAX_ORDER * sizeof(Float_t) ); + memmove ( routbuf , routbuf + totsamp, MAX_ORDER * sizeof(Float_t) ); + memmove ( lstepbuf, lstepbuf + totsamp, MAX_ORDER * sizeof(Float_t) ); + memmove ( rstepbuf, rstepbuf + totsamp, MAX_ORDER * sizeof(Float_t) ); + totsamp = 0; + } + if ( totsamp > sampleWindow ) // somehow I really screwed up: Error in programming! Contact author about totsamp > sampleWindow + return GAIN_ANALYSIS_ERROR; + } + if ( num_samples < MAX_ORDER ) { + memmove ( linprebuf, linprebuf + num_samples, (MAX_ORDER-num_samples) * sizeof(Float_t) ); + memmove ( rinprebuf, rinprebuf + num_samples, (MAX_ORDER-num_samples) * sizeof(Float_t) ); + memcpy ( linprebuf + MAX_ORDER - num_samples, left_samples, num_samples * sizeof(Float_t) ); + memcpy ( rinprebuf + MAX_ORDER - num_samples, right_samples, num_samples * sizeof(Float_t) ); + } + else { + memcpy ( linprebuf, left_samples + num_samples - MAX_ORDER, MAX_ORDER * sizeof(Float_t) ); + memcpy ( rinprebuf, right_samples + num_samples - MAX_ORDER, MAX_ORDER * sizeof(Float_t) ); + } + + return GAIN_ANALYSIS_OK; +} + + +static Float_t +analyzeResult ( Uint32_t* Array, size_t len ) +{ + Uint32_t elems; + Int32_t upper; + size_t i; + + elems = 0; + for ( i = 0; i < len; i++ ) + elems += Array[i]; + if ( elems == 0 ) + return GAIN_NOT_ENOUGH_SAMPLES; + + upper = (Int32_t) ceil (elems * (1. - RMS_PERCENTILE)); + for ( i = len; i-- > 0; ) { + if ( (upper -= Array[i]) <= 0 ) + break; + } + + return (Float_t) ((Float_t)PINK_REF - (Float_t)i / (Float_t)STEPS_per_dB); +} + + +Float_t +GetTitleGain ( void ) +{ + Float_t retval; + int i; + + retval = analyzeResult ( A, sizeof(A)/sizeof(*A) ); + + for ( i = 0; i < sizeof(A)/sizeof(*A); i++ ) { + B[i] += A[i]; + A[i] = 0; + } + + for ( i = 0; i < MAX_ORDER; i++ ) + linprebuf[i] = lstepbuf[i] = loutbuf[i] = rinprebuf[i] = rstepbuf[i] = routbuf[i] = 0.f; + + totsamp = 0; + lsum = rsum = 0.; + return retval; +} + + +Float_t +GetAlbumGain ( void ) +{ + return analyzeResult ( B, sizeof(B)/sizeof(*B) ); +} + +/* end of gain_analysis.c */ diff --git a/src/gain_analysis.h b/src/gain_analysis.h new file mode 100644 index 0000000..d041d8c --- /dev/null +++ b/src/gain_analysis.h @@ -0,0 +1,56 @@ +/* + * ReplayGainAnalysis - analyzes input samples and give the recommended dB change + * Copyright (C) 2001 David Robinson and Glen Sawyer + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * concept and filter values by David Robinson (David@Robinson.org) + * -- blame him if you think the idea is flawed + * coding by Glen Sawyer (glensawyer@hotmail.com) 442 N 700 E, Provo, UT 84606 USA + * -- blame him if you think this runs too slowly, or the coding is otherwise flawed + * + * For an explanation of the concepts and the basic algorithms involved, go to: + * http://www.replaygain.org/ + */ + +#ifndef GAIN_ANALYSIS_H +#define GAIN_ANALYSIS_H + +#include + +#define GAIN_NOT_ENOUGH_SAMPLES -24601 +#define GAIN_ANALYSIS_ERROR 0 +#define GAIN_ANALYSIS_OK 1 + +#define INIT_GAIN_ANALYSIS_ERROR 0 +#define INIT_GAIN_ANALYSIS_OK 1 + +#ifdef __cplusplus +extern "C" { +#endif + +typedef double Float_t; // Type used for filtering + +int InitGainAnalysis ( long samplefreq ); +int AnalyzeSamples ( const Float_t* left_samples, const Float_t* right_samples, size_t num_samples, int num_channels ); +int ResetSampleFrequency ( long samplefreq ); +Float_t GetTitleGain ( void ); +Float_t GetAlbumGain ( void ); + +#ifdef __cplusplus +} +#endif + +#endif /* GAIN_ANALYSIS_H */ diff --git a/src/grip.c b/src/grip.c new file mode 100644 index 0000000..f475b74 --- /dev/null +++ b/src/grip.c @@ -0,0 +1,1053 @@ +/* grip.c + * + * Copyright (c) 1998-2004 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "grip.h" +#include +#include "discdb.h" +#include "cdplay.h" +#include "discedit.h" +#include "rip.h" +#include "common.h" +#include "dialog.h" +#include "gripcfg.h" +#include "xpm.h" +#include "parsecfg.h" +#include "tray.h" + +static void ReallyDie(gint reply,gpointer data); +static void MakeStatusPage(GripInfo *ginfo); +static void DoHelp(GtkWidget *widget,gpointer data); +static void MakeHelpPage(GripInfo *ginfo); +static void MakeAboutPage(GripGUI *uinfo); +static void MakeStyles(GripGUI *uinfo); +static void Homepage(void); +static void LoadImages(GripGUI *uinfo); +static void DoLoadConfig(GripInfo *ginfo); +void DoSaveConfig(GripInfo *ginfo); + +#define BASE_CFG_ENTRIES \ +{"grip_version",CFG_ENTRY_STRING,256,ginfo->version},\ +{"cd_device",CFG_ENTRY_STRING,256,ginfo->cd_device},\ +{"force_scsi",CFG_ENTRY_STRING,256,ginfo->force_scsi},\ +{"ripexename",CFG_ENTRY_STRING,256,ginfo->ripexename},\ +{"ripcmdline",CFG_ENTRY_STRING,256,ginfo->ripcmdline},\ +{"wav_filter_cmd",CFG_ENTRY_STRING,256,ginfo->wav_filter_cmd},\ +{"disc_filter_cmd",CFG_ENTRY_STRING,256,ginfo->disc_filter_cmd},\ +{"mp3exename",CFG_ENTRY_STRING,256,ginfo->mp3exename},\ +{"mp3cmdline",CFG_ENTRY_STRING,256,ginfo->mp3cmdline},\ +{"dbserver",CFG_ENTRY_STRING,256,ginfo->dbserver.name},\ +{"ripfileformat",CFG_ENTRY_STRING,256,ginfo->ripfileformat},\ +{"mp3fileformat",CFG_ENTRY_STRING,256,ginfo->mp3fileformat},\ +{"mp3extension",CFG_ENTRY_STRING,10,ginfo->mp3extension},\ +{"m3ufileformat",CFG_ENTRY_STRING,256,ginfo->m3ufileformat},\ +{"delete_wavs",CFG_ENTRY_BOOL,0,&ginfo->delete_wavs},\ +{"add_m3u",CFG_ENTRY_BOOL,0,&ginfo->add_m3u},\ +{"rel_m3u",CFG_ENTRY_BOOL,0,&ginfo->rel_m3u},\ +{"add_to_db",CFG_ENTRY_BOOL,0,&ginfo->add_to_db},\ +{"use_proxy",CFG_ENTRY_BOOL,0,&ginfo->use_proxy},\ +{"proxy_name",CFG_ENTRY_STRING,256,ginfo->proxy_server.name},\ +{"proxy_port",CFG_ENTRY_INT,0,&(ginfo->proxy_server.port)},\ +{"proxy_user",CFG_ENTRY_STRING,80,ginfo->proxy_server.username},\ +{"proxy_pswd",CFG_ENTRY_STRING,80,ginfo->proxy_server.pswd},\ +{"cdupdate",CFG_ENTRY_STRING,256,ginfo->cdupdate},\ +{"user_email",CFG_ENTRY_STRING,256,ginfo->user_email},\ +{"ripnice",CFG_ENTRY_INT,0,&ginfo->ripnice},\ +{"mp3nice",CFG_ENTRY_INT,0,&ginfo->mp3nice},\ +{"mp3_filter_cmd",CFG_ENTRY_STRING,256,ginfo->mp3_filter_cmd},\ +{"doid3",CFG_ENTRY_BOOL,0,&ginfo->doid3},\ +{"doid3v2",CFG_ENTRY_BOOL,0,&ginfo->doid3v2},\ +{"tag_mp3_only",CFG_ENTRY_BOOL,0,&ginfo->tag_mp3_only},\ +{"id3_comment",CFG_ENTRY_STRING,30,ginfo->id3_comment},\ +{"max_wavs",CFG_ENTRY_INT,0,&ginfo->max_wavs},\ +{"auto_rip",CFG_ENTRY_BOOL,0,&ginfo->auto_rip},\ +{"eject_after_rip",CFG_ENTRY_BOOL,0,&ginfo->eject_after_rip},\ +{"eject_delay",CFG_ENTRY_INT,0,&ginfo->eject_delay},\ +{"delayed_encoding",CFG_ENTRY_BOOL,0,&ginfo->delayed_encoding},\ +{"delay_before_rip",CFG_ENTRY_BOOL,0,&ginfo->delay_before_rip},\ +{"stop_between_tracks",CFG_ENTRY_BOOL,0,&ginfo->stop_between_tracks},\ +{"beep_after_rip",CFG_ENTRY_BOOL,0,&ginfo->beep_after_rip},\ +{"faulty_eject",CFG_ENTRY_BOOL,0,&ginfo->faulty_eject},\ +{"poll_drive",CFG_ENTRY_BOOL,0,&ginfo->poll_drive},\ +{"poll_interval",CFG_ENTRY_INT,0,&ginfo->poll_interval},\ +{"use_proxy_env",CFG_ENTRY_BOOL,0,&ginfo->use_proxy_env},\ +{"db_cgi",CFG_ENTRY_STRING,256,ginfo->dbserver.cgi_prog},\ +{"cddb_submit_email",CFG_ENTRY_STRING,256,ginfo->discdb_submit_email},\ +{"discdb_encoding",CFG_ENTRY_STRING,16,ginfo->discdb_encoding},\ +{"id3_encoding",CFG_ENTRY_STRING,16,ginfo->id3_encoding},\ +{"id3v2_encoding",CFG_ENTRY_STRING,16,ginfo->id3v2_encoding},\ +{"db_use_freedb",CFG_ENTRY_BOOL,0,&ginfo->db_use_freedb},\ +{"dbserver2",CFG_ENTRY_STRING,256,ginfo->dbserver2.name},\ +{"db2_cgi",CFG_ENTRY_STRING,256,ginfo->dbserver2.cgi_prog},\ +{"no_interrupt",CFG_ENTRY_BOOL,0,&ginfo->no_interrupt},\ +{"stop_first",CFG_ENTRY_BOOL,0,&ginfo->stop_first},\ +{"play_first",CFG_ENTRY_BOOL,0,&ginfo->play_first},\ +{"play_on_insert",CFG_ENTRY_BOOL,0,&ginfo->play_on_insert},\ +{"automatic_cddb",CFG_ENTRY_BOOL,0,&ginfo->automatic_discdb},\ +{"automatic_reshuffle",CFG_ENTRY_BOOL,0,&ginfo->automatic_reshuffle},\ +{"no_lower_case",CFG_ENTRY_BOOL,0,&ginfo->sprefs.no_lower_case},\ +{"no_underscore",CFG_ENTRY_BOOL,0,&ginfo->sprefs.no_underscore},\ +{"allow_high_bits",CFG_ENTRY_BOOL,0,&ginfo->sprefs.allow_high_bits},\ +{"escape",CFG_ENTRY_BOOL,0,&ginfo->sprefs.escape},\ +{"allow_these_chars",CFG_ENTRY_STRING,256,ginfo->sprefs.allow_these_chars},\ +{"show_tray_icon",CFG_ENTRY_BOOL,0,&ginfo->show_tray_icon},\ +{"num_cpu",CFG_ENTRY_INT,0,&ginfo->edit_num_cpu},\ +{"kbits_per_sec",CFG_ENTRY_INT,0,&ginfo->kbits_per_sec},\ +{"selected_encoder",CFG_ENTRY_INT,0,&ginfo->selected_encoder},\ +{"selected_ripper",CFG_ENTRY_INT,0,&ginfo->selected_ripper},\ +{"play_mode",CFG_ENTRY_INT,0,&ginfo->play_mode},\ +{"playloop",CFG_ENTRY_BOOL,0,&ginfo->playloop},\ +{"win_width",CFG_ENTRY_INT,0,&uinfo->win_width},\ +{"win_height",CFG_ENTRY_INT,0,&uinfo->win_height},\ +{"win_height_edit",CFG_ENTRY_INT,0,&uinfo->win_height_edit},\ +{"win_width_min",CFG_ENTRY_INT,0,&uinfo->win_width_min},\ +{"win_height_min",CFG_ENTRY_INT,0,&uinfo->win_height_min},\ +{"vol_vis",CFG_ENTRY_BOOL,0,&uinfo->volvis},\ +{"track_edit_vis",CFG_ENTRY_BOOL,0,&uinfo->track_edit_visible},\ +{"track_prog_vis",CFG_ENTRY_BOOL,0,&uinfo->track_prog_visible},\ +{"volume",CFG_ENTRY_INT,0,&ginfo->volume}, + +#define CDPAR_CFG_ENTRIES \ +{"disable_paranoia",CFG_ENTRY_BOOL,0,&ginfo->disable_paranoia},\ +{"disable_extra_paranoia",CFG_ENTRY_BOOL,0,&ginfo->disable_extra_paranoia},\ +{"disable_scratch_detect",CFG_ENTRY_BOOL,0,&ginfo->disable_scratch_detect},\ +{"disable_scratch_repair",CFG_ENTRY_BOOL,0,&ginfo->disable_scratch_repair},\ +{"calc_gain",CFG_ENTRY_BOOL,0,&ginfo->calc_gain}, + +#ifdef CDPAR +#define CFG_ENTRIES BASE_CFG_ENTRIES CDPAR_CFG_ENTRIES +#else +#define CFG_ENTRIES BASE_CFG_ENTRIES +#endif + +gboolean AppWindowStateCB(GtkWidget *widget, GdkEventWindowState *event, gpointer data) +{ + GripInfo *ginfo = (GripInfo*)data; + GripGUI *uinfo = &(ginfo->gui_info); + GdkWindowState state = event->new_window_state; + + if ((state & GDK_WINDOW_STATE_WITHDRAWN) || (state & GDK_WINDOW_STATE_ICONIFIED)) { + ginfo->app_visible = FALSE; + return TRUE; + } else { + ginfo->app_visible = TRUE; + gtk_window_get_position(GTK_WINDOW(uinfo->app), &uinfo->x, &uinfo->y); + return TRUE; + } + + return FALSE; +} + +GtkWidget *GripNew(const gchar* geometry,char *device,char *scsi_device, + char *config_filename, + gboolean force_small, + gboolean local_mode,gboolean no_redirect) +{ + GtkWidget *app; + GripInfo *ginfo; + GripGUI *uinfo; + int major,minor,point; + char buf[256]; + + gnome_window_icon_set_default_from_file(GNOME_ICONDIR"/gripicon.png"); + + app=gnome_app_new(PACKAGE,_("Grip")); + + ginfo=g_new0(GripInfo,1); + + gtk_object_set_user_data(GTK_OBJECT(app),(gpointer)ginfo); + + uinfo=&(ginfo->gui_info); + uinfo->app=app; + uinfo->status_window=NULL; + uinfo->rip_status_window=NULL; + uinfo->encode_status_window=NULL; + uinfo->track_list=NULL; + + uinfo->win_width=WINWIDTH; + uinfo->win_height=WINHEIGHT; + uinfo->win_height_edit=WINHEIGHTEDIT; + uinfo->win_width_min=MIN_WINWIDTH; + uinfo->win_height_min=MIN_WINHEIGHT; + + /* if(geometry != NULL) { + gint x,y,w,h; + + if(gnome_parse_geometry(geometry, + &x,&y,&w,&h)) { + if(x != -1) { + gtk_widget_set_uposition(app,x,y); + } + + if(w != -1) { + uinfo->win_width=w; + uinfo->win_height=h; + } + } + else { + g_error(_("Could not parse geometry string `%s'"), geometry); + } + } + */ + + if(config_filename && *config_filename) + g_snprintf(ginfo->config_filename,256,"%s",config_filename); + else { + strcpy(ginfo->config_filename,".grip"); + } + + Debug("Using config file [%s]\n",ginfo->config_filename); + + DoLoadConfig(ginfo); + + if(device) g_snprintf(ginfo->cd_device,256,"%s",device); + if(scsi_device) g_snprintf(ginfo->force_scsi,256,"%s",scsi_device); + + uinfo->minimized=force_small; + ginfo->local_mode=local_mode; + ginfo->do_redirect=!no_redirect; + + if(!CDInitDevice(ginfo->cd_device,&(ginfo->disc))) { + sprintf(buf,_("Error: Unable to initialize [%s]\n"),ginfo->cd_device); + + DisplayMsg(buf); + } + + CDStat(&(ginfo->disc),TRUE); + + gtk_window_set_policy(GTK_WINDOW(app),FALSE,TRUE,FALSE); + gtk_window_set_wmclass(GTK_WINDOW(app),"grip","Grip"); + g_signal_connect(G_OBJECT(app),"delete_event", + G_CALLBACK(GripDie),NULL); + + if(uinfo->minimized) { + gtk_widget_set_size_request(GTK_WIDGET(app),MIN_WINWIDTH, + MIN_WINHEIGHT); + + gtk_window_resize(GTK_WINDOW(app),uinfo->win_width_min, + uinfo->win_height_min); + } + else { + gtk_widget_set_size_request(GTK_WIDGET(app),WINWIDTH, + WINHEIGHT); + + if(uinfo->track_edit_visible) { + gtk_window_resize(GTK_WINDOW(app),uinfo->win_width, + uinfo->win_height_edit); + } + else { + gtk_window_resize(GTK_WINDOW(app),uinfo->win_width, + uinfo->win_height); + } + } + + gtk_widget_realize(app); + + uinfo->winbox=gtk_vbox_new(FALSE,3); + if(!uinfo->minimized) + gtk_container_border_width(GTK_CONTAINER(uinfo->winbox),3); + + uinfo->notebook=gtk_notebook_new(); + + LoadImages(uinfo); + MakeStyles(uinfo); + MakeTrackPage(ginfo); + MakeRipPage(ginfo); + MakeConfigPage(ginfo); + MakeStatusPage(ginfo); + MakeHelpPage(ginfo); + MakeAboutPage(uinfo); + ginfo->tray_icon_made = FALSE; + ginfo->tray_menu_sensitive = TRUE; + + gtk_box_pack_start(GTK_BOX(uinfo->winbox),uinfo->notebook,TRUE,TRUE,0); + if(!uinfo->minimized) gtk_widget_show(uinfo->notebook); + + uinfo->track_edit_box=MakeEditBox(ginfo); + gtk_box_pack_start(GTK_BOX(uinfo->winbox),uinfo->track_edit_box, + FALSE,FALSE,0); + if(uinfo->track_edit_visible) gtk_widget_show(uinfo->track_edit_box); + + + uinfo->playopts=MakePlayOpts(ginfo); + gtk_box_pack_start(GTK_BOX(uinfo->winbox),uinfo->playopts,FALSE,FALSE,0); + if(uinfo->track_prog_visible) gtk_widget_show(uinfo->playopts); + + uinfo->controls=MakeControls(ginfo); + if(uinfo->minimized) + gtk_box_pack_start(GTK_BOX(uinfo->winbox),uinfo->controls,TRUE,TRUE,0); + else + gtk_box_pack_start(GTK_BOX(uinfo->winbox),uinfo->controls,FALSE,FALSE,0); + gtk_widget_show(uinfo->controls); + + gnome_app_set_contents(GNOME_APP(app),uinfo->winbox); + gtk_widget_show(uinfo->winbox); + + CheckNewDisc(ginfo,FALSE); + + /* Check if we're running this version for the first time */ + if(strcmp(VERSION,ginfo->version)!=0) { + strcpy(ginfo->version,VERSION); + + sscanf(VERSION,"%d.%d.%d",&major,&minor,&point); + + /* Check if we have a dev release */ + if(minor%2) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("This is a development version of Grip. If you encounter problems, you are encouraged to revert to the latest stable version.")); + } + } + + g_signal_connect(app, "window-state-event", G_CALLBACK(AppWindowStateCB), ginfo); + + LogStatus(ginfo,_("Grip started successfully\n")); + + return app; +} + +void GripDie(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)gtk_object_get_user_data(GTK_OBJECT(widget)); + +#ifndef GRIPCD + if(ginfo->ripping_a_disc || ginfo->encoding) + gnome_app_ok_cancel_modal((GnomeApp *)ginfo->gui_info.app, + _("Work is in progress.\nReally shut down?"), + ReallyDie,(gpointer)ginfo); + else ReallyDie(0,ginfo); +#else + ReallyDie(0,ginfo); +#endif +} + +static void ReallyDie(gint reply,gpointer data) +{ + GripInfo *ginfo; + + if(reply) return; + + ginfo=(GripInfo *)data; + +#ifndef GRIPCD + if(ginfo->ripping_a_disc) KillRip(NULL,ginfo); + if(ginfo->encoding) KillEncode(NULL,ginfo); +#endif + + if(!ginfo->no_interrupt) + CDStop(&(ginfo->disc)); + + DoSaveConfig(ginfo); + + gtk_main_quit(); +} + +GtkWidget *MakeNewPage(GtkWidget *notebook,char *name) +{ + GtkWidget *page; + GtkWidget *label; + + page=gtk_frame_new(NULL); + gtk_widget_show(page); + + label=gtk_label_new(name); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page,label); + + return page; +} + +static void MakeStatusPage(GripInfo *ginfo) +{ + GtkWidget *status_page; + GtkWidget *vbox,*vbox2; + GtkWidget *notebook; + GtkWidget *page; + GtkWidget *label; + + status_page=MakeNewPage(ginfo->gui_info.notebook,_("Status")); + + vbox2=gtk_vbox_new(FALSE,0); + notebook=gtk_notebook_new(); + + page=gtk_frame_new(NULL); + + vbox=gtk_vbox_new(FALSE,4); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + + ginfo->gui_info.status_window=NewStatusWindow(vbox); + + gtk_container_add(GTK_CONTAINER(page),vbox); + gtk_widget_show(vbox); + + label=gtk_label_new(_("General")); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page,label); + gtk_widget_show(page); + + + page=gtk_frame_new(NULL); + + vbox=gtk_vbox_new(FALSE,4); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + + ginfo->gui_info.rip_status_window=NewStatusWindow(vbox); + + gtk_container_add(GTK_CONTAINER(page),vbox); + gtk_widget_show(vbox); + + label=gtk_label_new(_("Rip")); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page,label); + /* gtk_widget_show(page);*/ + + + page=gtk_frame_new(NULL); + + vbox=gtk_vbox_new(FALSE,4); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + + ginfo->gui_info.encode_status_window=NewStatusWindow(vbox); + + gtk_container_add(GTK_CONTAINER(page),vbox); + gtk_widget_show(vbox); + + label=gtk_label_new(_("Encode")); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page,label); + /* gtk_widget_show(page);*/ + + + gtk_box_pack_start(GTK_BOX(vbox2),notebook,TRUE,TRUE,0); + gtk_widget_show(notebook); + + gtk_container_add(GTK_CONTAINER(status_page),vbox2); + gtk_widget_show(vbox2); +} + +void LogStatus(GripInfo *ginfo,char *fmt,...) +{ + va_list args; + char *buf; + + if(!ginfo->gui_info.status_window) return; + + va_start(args,fmt); + + buf=g_strdup_vprintf(fmt,args); + + va_end(args); + + StatusWindowWrite(ginfo->gui_info.status_window,buf); + + g_free(buf); +} + +static void DoHelp(GtkWidget *widget,gpointer data) +{ + char *section; + + section=(char *)data; + + gnome_help_display("grip.xml",section,NULL); +} + +static void MakeHelpPage(GripInfo *ginfo) +{ + GtkWidget *help_page; + GtkWidget *button; + GtkWidget *vbox; + + help_page=MakeNewPage(ginfo->gui_info.notebook,_("Help")); + + vbox=gtk_vbox_new(FALSE,0); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + + button=gtk_button_new_with_label(_("Table Of Contents")); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(DoHelp),NULL); + gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,0); + gtk_widget_show(button); + + button=gtk_button_new_with_label(_("Playing CDs")); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(DoHelp),(gpointer)"cdplayer"); + gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,0); + gtk_widget_show(button); + + button=gtk_button_new_with_label(_("Ripping CDs")); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(DoHelp),(gpointer)"ripping"); + gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,0); + gtk_widget_show(button); + + button=gtk_button_new_with_label(_("Configuring Grip")); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(DoHelp),(gpointer)"configure"); + gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,0); + gtk_widget_show(button); + + button=gtk_button_new_with_label(_("FAQ")); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(DoHelp),(gpointer)"faq"); + gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,0); + gtk_widget_show(button); + + button=gtk_button_new_with_label(_("Getting More Help")); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(DoHelp),(gpointer)"morehelp"); + gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,0); + gtk_widget_show(button); + + button=gtk_button_new_with_label(_("Reporting Bugs")); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(DoHelp),(gpointer)"bugs"); + gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,0); + gtk_widget_show(button); + + gtk_container_add(GTK_CONTAINER(help_page),vbox); + gtk_widget_show(vbox); +} + +void MakeAboutPage(GripGUI *uinfo) +{ + GtkWidget *aboutpage; + GtkWidget *vbox,*vbox2,*hbox; + GtkWidget *label; + GtkWidget *logo; + GtkWidget *ebox; + GtkWidget *button; + char versionbuf[20]; + + aboutpage=MakeNewPage(uinfo->notebook,_("About")); + + ebox=gtk_event_box_new(); + gtk_widget_set_style(ebox,uinfo->style_wb); + + vbox=gtk_vbox_new(TRUE,5); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + +#ifndef GRIPCD + logo=Loadxpm(GTK_WIDGET(uinfo->app),grip_xpm); +#else + logo=Loadxpm(GTK_WIDGET(uinfo->app),gcd_xpm); +#endif + + gtk_box_pack_start(GTK_BOX(vbox),logo,FALSE,FALSE,0); + gtk_widget_show(logo); + + vbox2=gtk_vbox_new(TRUE,0); + + sprintf(versionbuf,_("Version %s"),VERSION); + label=gtk_label_new(versionbuf); + gtk_widget_set_style(label,uinfo->style_wb); + gtk_box_pack_start(GTK_BOX(vbox2),label,FALSE,FALSE,0); + gtk_widget_show(label); + + label=gtk_label_new("Copyright 1998-2005, Mike Oliphant"); + gtk_widget_set_style(label,uinfo->style_wb); + gtk_box_pack_start(GTK_BOX(vbox2),label,FALSE,FALSE,0); + gtk_widget_show(label); + +#if defined(__sun__) + label=gtk_label_new("Solaris Port, David Meleedy"); + gtk_widget_set_style(label,uinfo->style_wb); + gtk_box_pack_start(GTK_BOX(vbox2),label,FALSE,FALSE,0); + gtk_widget_show(label); +#endif + + hbox=gtk_hbox_new(TRUE,0); + + button=gtk_button_new_with_label("http://www.nostatic.org/grip"); + gtk_widget_set_style(button,uinfo->style_dark_grey); + gtk_widget_set_style(GTK_BIN(button)->child, + uinfo->style_dark_grey); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(Homepage),NULL); + gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0); + gtk_widget_show(button); + + gtk_box_pack_start(GTK_BOX(vbox2),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + + gtk_container_add(GTK_CONTAINER(vbox),vbox2); + gtk_widget_show(vbox2); + + gtk_container_add(GTK_CONTAINER(ebox),vbox); + gtk_widget_show(vbox); + + gtk_container_add(GTK_CONTAINER(aboutpage),ebox); + gtk_widget_show(ebox); +} + +static void MakeStyles(GripGUI *uinfo) +{ + GdkColor gdkblack; + GdkColor gdkwhite; + GdkColor *color_LCD; + GdkColor *color_dark_grey; + + gdk_color_white(gdk_colormap_get_system(),&gdkwhite); + gdk_color_black(gdk_colormap_get_system(),&gdkblack); + + color_LCD=MakeColor(33686,38273,29557); + color_dark_grey=MakeColor(0x4444,0x4444,0x4444); + + uinfo->style_wb=MakeStyle(&gdkwhite,&gdkblack,FALSE); + uinfo->style_LCD=MakeStyle(color_LCD,color_LCD,FALSE); + uinfo->style_dark_grey=MakeStyle(&gdkwhite,color_dark_grey,TRUE); +} + +static void Homepage(void) +{ + system("gnome-moz-remote http://www.nostatic.org/grip"); +} + +static void LoadImages(GripGUI *uinfo) +{ + uinfo->check_image=Loadxpm(uinfo->app,check_xpm); + uinfo->eject_image=Loadxpm(uinfo->app,eject_xpm); + uinfo->cdscan_image=Loadxpm(uinfo->app,cdscan_xpm); + uinfo->ff_image=Loadxpm(uinfo->app,ff_xpm); + uinfo->lowleft_image=Loadxpm(uinfo->app,lowleft_xpm); + uinfo->lowright_image=Loadxpm(uinfo->app,lowright_xpm); + uinfo->minmax_image=Loadxpm(uinfo->app,minmax_xpm); + uinfo->nexttrk_image=Loadxpm(uinfo->app,nexttrk_xpm); + uinfo->playpaus_image=Loadxpm(uinfo->app,playpaus_xpm); + uinfo->prevtrk_image=Loadxpm(uinfo->app,prevtrk_xpm); + uinfo->loop_image=Loadxpm(uinfo->app,loop_xpm); + uinfo->noloop_image=Loadxpm(uinfo->app,noloop_xpm); + uinfo->random_image=Loadxpm(uinfo->app,random_xpm); + uinfo->playlist_image=Loadxpm(uinfo->app,playlist_xpm); + uinfo->playnorm_image=Loadxpm(uinfo->app,playnorm_xpm); + uinfo->quit_image=Loadxpm(uinfo->app,quit_xpm); + uinfo->rew_image=Loadxpm(uinfo->app,rew_xpm); + uinfo->stop_image=Loadxpm(uinfo->app,stop_xpm); + uinfo->upleft_image=Loadxpm(uinfo->app,upleft_xpm); + uinfo->upright_image=Loadxpm(uinfo->app,upright_xpm); + uinfo->vol_image=Loadxpm(uinfo->app,vol_xpm); + uinfo->discdbwht_image=Loadxpm(uinfo->app,discdbwht_xpm); + uinfo->rotate_image=Loadxpm(uinfo->app,rotate_xpm); + uinfo->edit_image=Loadxpm(uinfo->app,edit_xpm); + uinfo->progtrack_image=Loadxpm(uinfo->app,progtrack_xpm); + uinfo->mail_image=Loadxpm(uinfo->app,mail_xpm); + uinfo->save_image=Loadxpm(uinfo->app,save_xpm); + + uinfo->empty_image=NewBlankPixmap(uinfo->app); + + uinfo->discdb_pix[0]=Loadxpm(uinfo->app,discdb0_xpm); + uinfo->discdb_pix[1]=Loadxpm(uinfo->app,discdb1_xpm); + + uinfo->play_pix[0]=Loadxpm(uinfo->app,playnorm_xpm); + uinfo->play_pix[1]=Loadxpm(uinfo->app,random_xpm); + uinfo->play_pix[2]=Loadxpm(uinfo->app,playlist_xpm); + +#ifndef GRIPCD + uinfo->rip_pix[0]=Loadxpm(uinfo->app,rip0_xpm); + uinfo->rip_pix[1]=Loadxpm(uinfo->app,rip1_xpm); + uinfo->rip_pix[2]=Loadxpm(uinfo->app,rip2_xpm); + uinfo->rip_pix[3]=Loadxpm(uinfo->app,rip3_xpm); + + uinfo->mp3_pix[0]=Loadxpm(uinfo->app,enc0_xpm); + uinfo->mp3_pix[1]=Loadxpm(uinfo->app,enc1_xpm); + uinfo->mp3_pix[2]=Loadxpm(uinfo->app,enc2_xpm); + uinfo->mp3_pix[3]=Loadxpm(uinfo->app,enc3_xpm); + + uinfo->smile_pix[0]=Loadxpm(uinfo->app,smile1_xpm); + uinfo->smile_pix[1]=Loadxpm(uinfo->app,smile2_xpm); + uinfo->smile_pix[2]=Loadxpm(uinfo->app,smile3_xpm); + uinfo->smile_pix[3]=Loadxpm(uinfo->app,smile4_xpm); + uinfo->smile_pix[4]=Loadxpm(uinfo->app,smile5_xpm); + uinfo->smile_pix[5]=Loadxpm(uinfo->app,smile6_xpm); + uinfo->smile_pix[6]=Loadxpm(uinfo->app,smile7_xpm); + uinfo->smile_pix[7]=Loadxpm(uinfo->app,smile8_xpm); +#endif +} + +void GripUpdate(GtkWidget *app) +{ + GripInfo *ginfo; + time_t secs; + + ginfo=(GripInfo *)gtk_object_get_user_data(GTK_OBJECT(app)); + + if(ginfo->ffwding) FastFwd(ginfo); + if(ginfo->rewinding) Rewind(ginfo); + + secs=time(NULL); + + /* Make sure we don't mod by zero */ + if(!ginfo->poll_interval) + ginfo->poll_interval=1; + + if(ginfo->ripping|ginfo->encoding) UpdateRipProgress(ginfo); + + if(!ginfo->ripping_a_disc) { + if(ginfo->poll_drive && !(secs%ginfo->poll_interval)) { + if(!ginfo->have_disc) + CheckNewDisc(ginfo,FALSE); + } + + UpdateDisplay(ginfo); + } + + UpdateTray(ginfo); +} + +void Busy(GripGUI *uinfo) +{ + gdk_window_set_cursor(uinfo->app->window,uinfo->wait_cursor); + + UpdateGTK(); +} + +void UnBusy(GripGUI *uinfo) +{ + gdk_window_set_cursor(uinfo->app->window,NULL); + + UpdateGTK(); +} + +static void DoLoadConfig(GripInfo *ginfo) +{ + GripGUI *uinfo=&(ginfo->gui_info); + char filename[256]; + char renamefile[256]; + char *proxy_env,*tok; + char outputdir[256]; + int confret; + CFGEntry cfg_entries[]={ + CFG_ENTRIES + {"outputdir",CFG_ENTRY_STRING,256,outputdir}, + {"",CFG_ENTRY_LAST,0,NULL} + }; + + outputdir[0]='\0'; + + uinfo->minimized=FALSE; + uinfo->volvis=FALSE; + uinfo->track_prog_visible=FALSE; + uinfo->track_edit_visible=FALSE; + + uinfo->wait_cursor=gdk_cursor_new(GDK_WATCH); + + uinfo->tray_icon=NULL; + + uinfo->id3_genre_item_list=NULL; + + *ginfo->version='\0'; + + strcpy(ginfo->cd_device,"/dev/cdrom"); + *ginfo->force_scsi='\0'; + + ginfo->local_mode=FALSE; + ginfo->have_disc=FALSE; + ginfo->tray_open=FALSE; + ginfo->faulty_eject=FALSE; + ginfo->looking_up=FALSE; + ginfo->play_mode=PM_NORMAL; + ginfo->playloop=TRUE; + ginfo->automatic_reshuffle=TRUE; + ginfo->ask_submit=FALSE; + ginfo->is_new_disc=FALSE; + ginfo->first_time=TRUE; + ginfo->automatic_discdb=TRUE; + ginfo->auto_eject_countdown=0; + ginfo->current_discid=0; + ginfo->volume=255; +#if defined(__FreeBSD__) || defined(__NetBSD__) + ginfo->poll_drive=FALSE; + ginfo->poll_interval=15; +#else + ginfo->poll_drive=TRUE; + ginfo->poll_interval=1; +#endif + + ginfo->changer_slots=0; + ginfo->current_disc=0; + + ginfo->proxy_server.name[0]='\0'; + ginfo->proxy_server.port=8000; + ginfo->use_proxy=FALSE; + ginfo->use_proxy_env=FALSE; + + strcpy(ginfo->dbserver.name,"freedb.freedb.org"); + strcpy(ginfo->dbserver.cgi_prog,"~cddb/cddb.cgi"); + ginfo->dbserver.port=80; + ginfo->dbserver.use_proxy=0; + ginfo->dbserver.proxy=&(ginfo->proxy_server); + + strcpy(ginfo->dbserver2.name,""); + strcpy(ginfo->dbserver2.cgi_prog,"~cddb/cddb.cgi"); + ginfo->dbserver2.port=80; + ginfo->dbserver2.use_proxy=0; + ginfo->dbserver2.proxy=&(ginfo->proxy_server); + + strcpy(ginfo->discdb_submit_email,"freedb-submit@freedb.org"); + ginfo->db_use_freedb=TRUE; + *ginfo->user_email='\0'; + + strcpy(ginfo->discdb_encoding,"UTF-8"); + strcpy(ginfo->id3_encoding,"UTF-8"); + strcpy(ginfo->id3v2_encoding,"UTF-8"); + + ginfo->local_mode=FALSE; + ginfo->update_required=FALSE; + ginfo->looking_up=FALSE; + ginfo->ask_submit=FALSE; + ginfo->is_new_disc=FALSE; + ginfo->automatic_discdb=TRUE; + ginfo->play_first=TRUE; + ginfo->play_on_insert=FALSE; + ginfo->stop_first=FALSE; + ginfo->no_interrupt=FALSE; + ginfo->playing=FALSE; + ginfo->stopped=FALSE; + ginfo->ffwding=FALSE; + ginfo->rewinding=FALSE; + + strcpy(ginfo->title_split_chars,"/"); + + ginfo->curr_pipe_fd=-1; + + ginfo->num_cpu=1; + ginfo->ripping=FALSE; + ginfo->ripping_a_disc=FALSE; + ginfo->encoding=FALSE; + ginfo->rip_partial=FALSE; + ginfo->stop_rip=FALSE; + ginfo->stop_encode=FALSE; + ginfo->rip_finished=0; + ginfo->num_wavs=0; + ginfo->doencode=FALSE; + ginfo->encode_list=NULL; + ginfo->pending_list=NULL; + ginfo->delayed_encoding = 0; + ginfo->do_redirect=TRUE; + ginfo->selected_ripper=0; +#ifdef CDPAR + ginfo->stop_thread_rip_now=FALSE; + ginfo->using_builtin_cdp=TRUE; + ginfo->disable_paranoia=FALSE; + ginfo->disable_extra_paranoia=FALSE; + ginfo->disable_scratch_detect=FALSE; + ginfo->disable_scratch_repair=FALSE; + ginfo->calc_gain=FALSE; +#else + ginfo->using_builtin_cdp=FALSE; +#endif + ginfo->in_rip_thread=FALSE; + strcpy(ginfo->ripfileformat,"~/mp3/%A/%d/%n.wav"); +#ifdef __linux__ + FindExeInPath("cdparanoia", ginfo->ripexename, sizeof(ginfo->ripexename)); + strcpy(ginfo->ripcmdline,"-d %c %t:[.%s]-%t:[.%e] %w"); +#else + FindExeInPath("cdda2wav", ginfo->ripexename, sizeof(ginfo->ripexename)); +#ifdef __sun__ + strcpy(ginfo->ripcmdline,"-x -H -t %t -O wav %w"); +#else + strcpy(ginfo->ripcmdline,"-D %C -x -H -t %t -O wav %w"); +#endif /* not sun */ +#endif /* not linux */ + + ginfo->ripnice=0; + ginfo->max_wavs=99; + ginfo->auto_rip=FALSE; + ginfo->beep_after_rip=TRUE; + ginfo->eject_after_rip=TRUE; + ginfo->eject_delay=0; + ginfo->delay_before_rip=FALSE; + ginfo->stop_between_tracks=FALSE; + *ginfo->wav_filter_cmd='\0'; + *ginfo->disc_filter_cmd='\0'; + ginfo->selected_encoder=1; + strcpy(ginfo->mp3cmdline,"-h -b %b %w %m"); + FindExeInPath("lame", ginfo->mp3exename, sizeof(ginfo->mp3exename)); + strcpy(ginfo->mp3fileformat,"~/mp3/%A/%d/%n.%x"); + strcpy(ginfo->mp3extension,"mp3"); + ginfo->mp3nice=0; + *ginfo->mp3_filter_cmd='\0'; + ginfo->delete_wavs=TRUE; + ginfo->add_to_db=FALSE; + ginfo->add_m3u=TRUE; + ginfo->rel_m3u=TRUE; + strcpy(ginfo->m3ufileformat,"~/mp3/%A-%d.m3u"); + ginfo->kbits_per_sec=128; + ginfo->edit_num_cpu=1; + ginfo->doid3=TRUE; + ginfo->doid3=FALSE; + ginfo->tag_mp3_only=TRUE; + strcpy(ginfo->id3_comment,_("Created by Grip")); + *ginfo->cdupdate='\0'; + ginfo->sprefs.no_lower_case=FALSE; + ginfo->sprefs.allow_high_bits=FALSE; + ginfo->sprefs.escape=FALSE; + ginfo->sprefs.no_underscore=FALSE; + *ginfo->sprefs.allow_these_chars='\0'; + ginfo->show_tray_icon=TRUE; + + sprintf(filename,"%s/%s",getenv("HOME"),ginfo->config_filename); + + confret=LoadConfig(filename,"GRIP",2,2,cfg_entries); + + if(confret<0) { + /* Check if the config is out of date */ + if(confret==-2) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Your config file is out of date -- " + "resetting to defaults.\n" + "You will need to re-configure Grip.\n" + "Your old config file has been saved with -old appended.")); + + sprintf(renamefile,"%s-old",filename); + + rename(filename,renamefile); + } + + DoSaveConfig(ginfo); + } + + LoadRipperConfig(ginfo,ginfo->selected_ripper); + LoadEncoderConfig(ginfo,ginfo->selected_encoder); + +#ifndef GRIPCD + /* Phase out 'outputdir' variable */ + + if(*outputdir) { + strcpy(filename,outputdir); + MakePath(filename); + strcat(filename,ginfo->mp3fileformat); + strcpy(ginfo->mp3fileformat,filename); + + strcpy(filename,outputdir); + MakePath(filename); + strcat(filename,ginfo->ripfileformat); + strcpy(ginfo->ripfileformat,filename); + + *outputdir='\0'; + } +#endif + + ginfo->dbserver2.use_proxy=ginfo->dbserver.use_proxy=ginfo->use_proxy; + ginfo->dbserver2.proxy=ginfo->dbserver.proxy; + + ginfo->num_cpu=ginfo->edit_num_cpu; + + if(!*ginfo->user_email) { + char *host; + char *user; + + host = getenv("HOST"); + if(!host) + host = getenv("HOSTNAME"); + if(!host) + host = "localhost"; + + user = getenv("USER"); + if(!user) + user = getenv("USERNAME"); + if(!user) + user = "user"; + + g_snprintf(ginfo->user_email,256,"%s@%s",user,host); + } + + if(ginfo->use_proxy_env) { /* Get proxy info from "http_proxy" */ + proxy_env=getenv("http_proxy"); + + if(proxy_env) { + + /* Skip the "http://" if it's present */ + + if(!strncasecmp(proxy_env,"http://",7)) proxy_env+=7; + + tok=strtok(proxy_env,":"); + if(tok) strncpy(ginfo->proxy_server.name,tok,256); + + tok=strtok(NULL,"/"); + if(tok) ginfo->proxy_server.port=atoi(tok); + + Debug(_("server is %s, port %d\n"),ginfo->proxy_server.name, + ginfo->proxy_server.port); + } + } +} + +void DoSaveConfig(GripInfo *ginfo) +{ + char filename[256]; + GripGUI *uinfo=&(ginfo->gui_info); + CFGEntry cfg_entries[]={ + CFG_ENTRIES + {"",CFG_ENTRY_LAST,0,NULL} + }; + + if(ginfo->edit_num_cpu>MAX_NUM_CPU) ginfo->edit_num_cpu=MAX_NUM_CPU; + + g_snprintf(filename,256,"%s/%s",getenv("HOME"),ginfo->config_filename); + + if(!SaveConfig(filename,"GRIP",2,cfg_entries)) + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Error: Unable to save config file.")); + + SaveRipperConfig(ginfo,ginfo->selected_ripper); + SaveEncoderConfig(ginfo,ginfo->selected_encoder); +} + +/* Shut down stuff (generally before an exec) */ +void CloseStuff(void *user_data) +{ + GripInfo *ginfo; + int fd; + + ginfo=(GripInfo *)user_data; + + close(ConnectionNumber(GDK_DISPLAY())); + close(ginfo->disc.cd_desc); + + fd=open("/dev/null",O_RDWR); + dup2(fd,0); + + if(ginfo->do_redirect) { + if(ginfo->curr_pipe_fd>0) { + dup2(ginfo->curr_pipe_fd,1); + dup2(ginfo->curr_pipe_fd,2); + + ginfo->curr_pipe_fd=-1; + } + else { + dup2(fd,1); + dup2(fd,2); + } + } + + /* Close any other filehandles that might be around */ + for(fd=3;fd + * + * http://www.nostatic.org/grip + * + * 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 + * + */ + +#ifndef GRIP_H +#define GRIP_H + +#include "config.h" +#include +#include "cddev.h" +#include "discdb.h" +#include "pthread.h" +#include "launch.h" +#include "status_window.h" +#include "eggtrayicon.h" + +#if defined(HAVE_CDDA_INTERFACE_H) || defined(HAVE_CDDA_CDDA_INTERFACE_H) +#define CDPAR +#endif + +#define WINWIDTH 400 +#define WINHEIGHT 450 + +#define WINHEIGHTEDIT 600 + +#define MIN_WINWIDTH 200 +#define MIN_WINHEIGHT 80 + +#define MAX_NUM_CPU 16 + +#define RRand(range) (random()%(range)) + +#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__osf__) /* __osf__ ?? */ + +#define MAILER "/usr/sbin/sendmail -i -t" + +#elif defined(__sparc__) + +#define MAILER "/usr/lib/sendmail -i -t" + +#endif + +typedef struct _grip_gui { + GtkWidget *app; + GtkWidget *winbox; + GtkWidget *notebook; + gboolean minimized; + int win_width; + int win_height; + int win_height_edit; + int win_width_min; + int win_height_min; + int x; + int y; + GtkStyle *style_wb; + GtkStyle *style_LCD; + GtkStyle *style_dark_grey; + + GtkWidget *disc_name_label; + GtkWidget *disc_artist_label; + GtkListStore *track_list_store; + GtkWidget *track_list; + + GtkWidget *current_track_label; + int time_display_mode; + GtkWidget *play_time_label; + GtkWidget *rip_indicator; + GtkWidget *lcd_smile_indicator; + GtkWidget *mp3_indicator[MAX_NUM_CPU]; + GtkWidget *discdb_indicator; + GtkWidget *control_button_box; + GtkWidget *controls; + gboolean control_buttons_visible; + GdkCursor *wait_cursor; + + gboolean track_edit_visible; + GtkWidget *track_edit_box; + GtkWidget *artist_edit_entry; + GtkWidget *title_edit_entry; + GtkWidget *id3_genre_combo; + GList *id3_genre_item_list; + GtkWidget *year_spin_button; + GtkWidget *track_edit_entry; + GtkWidget *multi_artist_box; + GtkWidget *track_artist_edit_entry; + GtkWidget *split_chars_entry; + GtkWidget *multi_artist_button; + GtkWidget *playopts; + GtkWidget *playlist_entry; + GtkWidget *play_indicator; + GtkWidget *loop_indicator; + gboolean track_prog_visible; + + GtkWidget *volume_control; + gboolean volvis; + + StatusWindow *status_window; + StatusWindow *rip_status_window; + StatusWindow *encode_status_window; + + GtkWidget *play_sector_label; + + GtkWidget *partial_rip_box; + GtkWidget *rip_prog_label; + GtkWidget *ripprogbar; + GtkWidget *smile_indicator; + GtkWidget *mp3_prog_label[MAX_NUM_CPU]; + GtkWidget *mp3progbar[MAX_NUM_CPU]; + + GtkWidget *start_sector_entry; + GtkWidget *end_sector_entry; + + GtkWidget *rip_exe_box; + GtkWidget *rip_builtin_box; + GtkWidget *ripexename_entry; + GtkWidget *ripcmdline_entry; + GtkWidget *mp3exename_entry; + GtkWidget *mp3cmdline_entry; + GtkWidget *mp3extension_entry; + + /* Overall prgress */ + GtkWidget *all_label; + GtkWidget *all_rip_label; + GtkWidget *all_enc_label; + GtkWidget *all_ripprogbar; + GtkWidget *all_encprogbar; + + /* Images */ + GtkWidget *check_image; + GtkWidget *eject_image; + GtkWidget *cdscan_image; + GtkWidget *ff_image; + GtkWidget *lowleft_image; + GtkWidget *lowright_image; + GtkWidget *minmax_image; + GtkWidget *nexttrk_image; + GtkWidget *playpaus_image; + GtkWidget *prevtrk_image; + GtkWidget *loop_image; + GtkWidget *noloop_image; + GtkWidget *random_image; + GtkWidget *playlist_image; + GtkWidget *playnorm_image; + GtkWidget *quit_image; + GtkWidget *rew_image; + GtkWidget *stop_image; + GtkWidget *upleft_image; + GtkWidget *upright_image; + GtkWidget *vol_image; + GtkWidget *discdbwht_image; + GtkWidget *rotate_image; + GtkWidget *edit_image; + GtkWidget *progtrack_image; + GtkWidget *mail_image; + GtkWidget *save_image; + GtkWidget *empty_image; + + GtkWidget *discdb_pix[2]; + GtkWidget *rip_pix[4]; + GtkWidget *mp3_pix[4]; + GtkWidget *smile_pix[8]; + + GtkWidget *play_pix[3]; + + /* notification area widgets */ + EggTrayIcon *tray_icon; + GtkTooltips *tray_tips; + GtkWidget *tray_ebox; + GtkWidget *tray_menu; + GtkWidget *tray_menu_play; + GtkWidget *tray_menu_pause; +} GripGUI; + +struct _encode_track; + +typedef struct _grip_info { + char version[256]; + DiscInfo disc; + DiscData ddata; + gboolean use_proxy; + gboolean use_proxy_env; + ProxyServer proxy_server; + DiscDBServer dbserver; + DiscDBServer dbserver2; + char config_filename[256]; + char cd_device[256]; + char force_scsi[256]; + char discdb_submit_email[256]; + char discdb_encoding[16]; + char id3_encoding[16]; + char id3v2_encoding[16]; + gboolean db_use_freedb; + char user_email[256]; + gboolean local_mode; + gboolean update_required; + gboolean have_disc; + gboolean tray_open; + gboolean faulty_eject; + gboolean looking_up; + gboolean ask_submit; + gboolean is_new_disc; + gboolean first_time; + gboolean play_first; + gboolean play_on_insert; + gboolean stop_first; + gboolean no_interrupt; + gboolean automatic_discdb; + gboolean poll_drive; + int poll_interval; + int auto_eject_countdown; + int current_discid; + pthread_t discdb_thread; + int volume; + + int current_disc; + int changer_slots; + + gboolean playing; + gboolean stopped; + gboolean ffwding; + gboolean rewinding; + int play_mode; + gboolean playloop; + int current_track_index; + int tracks_prog[MAX_TRACKS]; + int prog_totaltracks; + gboolean automatic_reshuffle; + + char title_split_chars[6]; + + GripGUI gui_info; + + int curr_pipe_fd; + + int num_cpu; + gboolean ripping; + gboolean encoding; + gboolean stop_rip; + gboolean stop_encode; + gboolean ripping_a_disc; + time_t rip_finished; + int rippid; + int num_wavs; + int rip_track; + time_t rip_started; + int ripsize; + char ripfile[PATH_MAX]; + int start_sector; + int end_sector; + gboolean doencode; + int mp3pid[MAX_NUM_CPU]; + char mp3file[MAX_NUM_CPU][PATH_MAX]; + int mp3size[MAX_NUM_CPU]; + int mp3_started[MAX_NUM_CPU]; + int mp3_enc_track[MAX_NUM_CPU]; + char rip_delete_file[MAX_NUM_CPU][PATH_MAX]; + double track_gain_adjustment; + double disc_gain_adjustment; + struct _encode_track *encoded_track[MAX_NUM_CPU]; + GList *encode_list; + GList *pending_list; + gboolean delayed_encoding; + int selected_ripper; + gboolean using_builtin_cdp; + gboolean in_rip_thread; + gboolean do_redirect; +#ifdef CDPAR + pthread_t cdp_thread; + gboolean stop_thread_rip_now; + gboolean disable_paranoia; + gboolean disable_extra_paranoia; + gboolean disable_scratch_detect; + gboolean disable_scratch_repair; + gboolean calc_gain; + int rip_smile_level; + gfloat rip_percent_done; +#endif + char ripexename[256]; + char ripfileformat[256]; + char ripcmdline[256]; + int ripnice; + int max_wavs; + gboolean auto_rip; + gboolean beep_after_rip; + gboolean eject_after_rip; + gboolean rip_partial; + int eject_delay; + gboolean delay_before_rip; + gboolean stop_between_tracks; + char wav_filter_cmd[256]; + char disc_filter_cmd[256]; + int selected_encoder; + char mp3cmdline[256]; + char mp3extension[10]; + char mp3fileformat[256]; + char mp3exename[256]; + gboolean delete_wavs; + gboolean add_to_db; + gboolean add_m3u; + gboolean rel_m3u; + char m3ufileformat[256]; + int kbits_per_sec; + int edit_num_cpu; + int mp3nice; + char mp3_filter_cmd[256]; + gboolean doid3; + gboolean doid3v2; + gboolean tag_mp3_only; + char id3_comment[30]; + char cdupdate[256]; + StrTransPrefs sprefs; + gboolean keep_min_size; + + /* some vars for use in TrayIconUpdate */ + gfloat rip_percent; + gfloat enc_percent; + + gfloat rip_tot_percent; + gfloat enc_tot_percent; + + gboolean app_visible; + + gboolean show_tray_icon; + gboolean tray_icon_made; + gboolean tray_menu_sensitive; + + /* these are for calculating ripping progress */ + size_t all_ripsize; + size_t all_ripdone; + size_t all_riplast; + size_t all_encsize; + size_t all_encdone; + size_t all_enclast[MAX_NUM_CPU]; +} GripInfo; + +GtkWidget *GripNew(const gchar* geometry,char *device,char *scsi_device, + char *config_filename, gboolean force_small, + gboolean local_mode,gboolean no_redirect); +void GripDie(GtkWidget *widget,gpointer data); +void GripUpdate(GtkWidget *app); +GtkWidget *MakeNewPage(GtkWidget *notebook,char *name); +void LogStatus(GripInfo *ginfo,char *fmt,...); +void Busy(GripGUI *uinfo); +void UnBusy(GripGUI *uinfo); +void CloseStuff(void *user_data); + +#endif /* ifndef GRIP_H */ + diff --git a/src/grip_id3.h b/src/grip_id3.h new file mode 100644 index 0000000..e184a80 --- /dev/null +++ b/src/grip_id3.h @@ -0,0 +1,44 @@ +/* id3.h + * + * Copyright (c) 1998-2002 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include +#include "glib.h" + +typedef struct { + char *name; + int num; +} ID3Genre; + +gboolean ID3v1TagFile(char *filename,char *title,char *artist,char *album, + char *year,char *comment,unsigned char genre, + unsigned char tracknum, char *id3_encoding); +#ifdef HAVE_ID3V2 +gboolean ID3v2TagFile(char *filename, char *title, char *artist, char *album, + char *year, char *comment, unsigned char genre, unsigned + char tracknum,char *id3v2_encoding); +#endif +char *ID3GenreString(int genre); +ID3Genre *ID3GenreByNum(int num); +int ID3GenreValue(char *genre); +int ID3GenrePos(int genre); +int DiscDB2ID3(int genre); +int ID32DiscDB(int id3_genre); diff --git a/src/gripcfg.c b/src/gripcfg.c new file mode 100644 index 0000000..8f8ea75 --- /dev/null +++ b/src/gripcfg.c @@ -0,0 +1,938 @@ +/* gripcfg.c + * + * Copyright (c) 1998-2004 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include +#include +#include "grip.h" +#include "gripcfg.h" +#include "dialog.h" +#include "parsecfg.h" + +static void UseProxyChanged(GtkWidget *widget,gpointer data); +static void RipperSelected(GtkWidget *widget,gpointer data); +static void EncoderSelected(GtkWidget *widget,gpointer data); + +static Ripper ripper_defaults[]={ +#ifdef CDPAR + {"grip (cdparanoia)",""}, +#endif +#if defined(__linux__) + {"cdparanoia","-d %c %t:[.%s]-%t:[.%e] %w"}, +#endif +#if defined(__sun__) + {"cdda2wav","-x -H -t %t -O wav %w"}, +#else + {"cdda2wav","-D %C -x -H -t %t -O wav %w"}, +#endif + {"other",""}, + {"",""} +}; + +static MP3Encoder encoder_defaults[]={{"bladeenc","-%b -QUIT %w %m","mp3"}, + {"lame","-h -b %b %w %m","mp3"}, + {"l3enc","-br %b %w %m","mp3"}, + {"xingmp3enc","-B %b -Q %w","mp3"}, + {"mp3encode","-p 2 -l 3 -b %b %w %m", + "mp3"}, + {"gogo","-b %b %w %m","mp3"}, + {"oggenc", + "-o %m -a %a -l %d -t %n -b %b -N %t -G %G -d %y %w", + "ogg"}, + {"flac","-V -o %m %w","flac"}, + {"other","",""}, + {"",""} +}; + +static CFGEntry encoder_cfg_entries[]={ + {"name",CFG_ENTRY_STRING,256,NULL}, + {"cmdline",CFG_ENTRY_STRING,256,NULL}, + {"exe",CFG_ENTRY_STRING,256,NULL}, + {"extension",CFG_ENTRY_STRING,10,NULL} +}; + +static void UseProxyChanged(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + ginfo->dbserver2.use_proxy=ginfo->dbserver.use_proxy=ginfo->use_proxy; +} + +void MakeConfigPage(GripInfo *ginfo) +{ + GripGUI *uinfo; + GtkWidget *vbox,*vbox2,*dbvbox; + GtkWidget *entry; + GtkWidget *realentry; + GtkWidget *label; + GtkWidget *page,*page2; + GtkWidget *check; + GtkWidget *notebook; + GtkWidget *config_notebook; + GtkWidget *configpage; + GtkWidget *button; +#ifndef GRIPCD + GtkWidget *hsep; + GtkWidget *hbox; + GtkWidget *menu,*optmenu; + GtkWidget *item; + MP3Encoder *enc; + Ripper *rip; +#endif + + uinfo=&(ginfo->gui_info); + + configpage=MakeNewPage(uinfo->notebook,_("Config")); + + vbox2=gtk_vbox_new(FALSE,0); + config_notebook=gtk_notebook_new(); + + page=gtk_frame_new(NULL); + vbox=gtk_vbox_new(FALSE,2); + + entry=MakeStrEntry(NULL,ginfo->cd_device,_("CDRom device"),255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + check=MakeCheckButton(NULL,&ginfo->no_interrupt, + _("Don't interrupt playback on exit/startup")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->stop_first,_("Rewind when stopped")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->play_first, + _("Startup with first track if not playing")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->play_on_insert, + _("Auto-play on disc insert")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->automatic_reshuffle, + _("Reshuffle before each playback")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->faulty_eject, + _("Work around faulty eject")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->poll_drive, + _("Poll disc drive for new disc")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + entry=MakeNumEntry(NULL,&ginfo->poll_interval,_("Poll interval (seconds)"), + 3); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + gtk_container_add(GTK_CONTAINER(page),vbox); + gtk_widget_show(vbox); + + label=gtk_label_new(_("CD")); + gtk_notebook_append_page(GTK_NOTEBOOK(config_notebook),page,label); + gtk_widget_show(page); + +#ifndef GRIPCD + page=gtk_frame_new(NULL); + + notebook=gtk_notebook_new(); + + page2=gtk_frame_new(NULL); + + vbox=gtk_vbox_new(FALSE,4); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + + hbox=gtk_hbox_new(FALSE,3); + + label=gtk_label_new(_("Ripper:")); + gtk_box_pack_start(GTK_BOX(hbox),label,TRUE,TRUE,0); + gtk_widget_show(label); + + menu=gtk_menu_new(); + + rip=ripper_defaults; + + while(*(rip->name)) { + item=gtk_menu_item_new_with_label(rip->name); + gtk_object_set_user_data(GTK_OBJECT(item),(gpointer)rip); + gtk_signal_connect(GTK_OBJECT(item),"activate", + GTK_SIGNAL_FUNC(RipperSelected),(gpointer)ginfo); + gtk_menu_append(GTK_MENU(menu),item); + gtk_widget_show(item); + + rip++; + } + + /* Make sure the selected ripper is active */ + gtk_menu_set_active(GTK_MENU(menu),ginfo->selected_ripper); + +#ifdef CDPAR + if(ginfo->selected_ripper==0) ginfo->using_builtin_cdp=TRUE; + else ginfo->using_builtin_cdp=FALSE; +#else + ginfo->using_builtin_cdp=FALSE; +#endif + + optmenu=gtk_option_menu_new(); + gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu),menu); + gtk_widget_show(menu); + gtk_box_pack_start(GTK_BOX(hbox),optmenu,TRUE,TRUE,0); + gtk_widget_show(optmenu); + + gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + hsep=gtk_hseparator_new(); + gtk_box_pack_start(GTK_BOX(vbox),hsep,FALSE,FALSE,0); + gtk_widget_show(hsep); + + uinfo->rip_exe_box=gtk_vbox_new(FALSE,2); + + entry=MakeStrEntry(&(uinfo->ripexename_entry),ginfo->ripexename, + _("Ripping executable"),255,TRUE); + gtk_box_pack_start(GTK_BOX(uinfo->rip_exe_box),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeStrEntry(&(uinfo->ripcmdline_entry),ginfo->ripcmdline, + _("Rip command-line"),255,TRUE); + gtk_box_pack_start(GTK_BOX(uinfo->rip_exe_box),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + gtk_box_pack_start(GTK_BOX(vbox),uinfo->rip_exe_box,FALSE,FALSE,0); + if(!ginfo->using_builtin_cdp) + gtk_widget_show(uinfo->rip_exe_box); + +#ifdef CDPAR + uinfo->rip_builtin_box=gtk_vbox_new(FALSE,2); + + check=MakeCheckButton(NULL,&ginfo->disable_paranoia,_("Disable paranoia")); + gtk_box_pack_start(GTK_BOX(uinfo->rip_builtin_box),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->disable_extra_paranoia, + _("Disable extra paranoia")); + gtk_box_pack_start(GTK_BOX(uinfo->rip_builtin_box),check,FALSE,FALSE,0); + gtk_widget_show(check); + + hbox=gtk_hbox_new(FALSE,3); + + label=gtk_label_new(_("Disable scratch")); + gtk_box_pack_start(GTK_BOX(hbox),label,TRUE,TRUE,0); + gtk_widget_show(label); + + check=MakeCheckButton(NULL,&ginfo->disable_scratch_detect,_("detection")); + gtk_box_pack_start(GTK_BOX(hbox),check,TRUE,TRUE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->disable_scratch_repair,_("repair")); + gtk_box_pack_start(GTK_BOX(hbox),check,TRUE,TRUE,0); + gtk_widget_show(check); + + gtk_box_pack_start(GTK_BOX(uinfo->rip_builtin_box),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + check=MakeCheckButton(NULL,&ginfo->calc_gain, + _("Calculate gain adjustment")); + gtk_box_pack_start(GTK_BOX(uinfo->rip_builtin_box),check,FALSE,FALSE,0); + gtk_widget_show(check); + + gtk_box_pack_start(GTK_BOX(vbox),uinfo->rip_builtin_box,FALSE,FALSE,0); + if(ginfo->using_builtin_cdp) gtk_widget_show(uinfo->rip_builtin_box); +#endif + + entry=MakeStrEntry(NULL,ginfo->ripfileformat,_("Rip file format"),255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeStrEntry(NULL,ginfo->force_scsi,_("Generic SCSI device"), + 255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + gtk_container_add(GTK_CONTAINER(page2),vbox); + gtk_widget_show(vbox); + + label=gtk_label_new(_("Ripper")); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page2,label); + gtk_widget_show(page2); + + page2=gtk_frame_new(NULL); + + vbox=gtk_vbox_new(FALSE,2); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + + entry=MakeNumEntry(NULL,&ginfo->ripnice,_("Rip 'nice' value"),3); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeNumEntry(NULL,&ginfo->max_wavs,_("Max non-encoded .wav's"),3); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + hbox=gtk_hbox_new(FALSE,3); + + check=MakeCheckButton(NULL,&ginfo->auto_rip,_("Auto-rip on insert")); + gtk_box_pack_start(GTK_BOX(hbox),check,TRUE,TRUE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->beep_after_rip,_("Beep after rip")); + gtk_box_pack_start(GTK_BOX(hbox),check,TRUE,TRUE,0); + gtk_widget_show(check); + + gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + hbox=gtk_hbox_new(FALSE,3); + + check=MakeCheckButton(NULL,&ginfo->eject_after_rip, + _("Auto-eject after rip")); + gtk_box_pack_start(GTK_BOX(hbox),check,TRUE,TRUE,0); + gtk_widget_show(check); + + entry=MakeNumEntry(NULL,&ginfo->eject_delay,_("Auto-eject delay"),3); + gtk_box_pack_start(GTK_BOX(hbox),entry,TRUE,TRUE,0); + gtk_widget_show(entry); + + gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + check=MakeCheckButton(NULL,&ginfo->delay_before_rip, + _("Delay before ripping")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton (NULL, &ginfo->delayed_encoding, + _("Delay encoding until disc is ripped")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->stop_between_tracks, + _("Stop cdrom drive between tracks")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + entry=MakeStrEntry(NULL,ginfo->wav_filter_cmd,_("Wav filter command"), + 255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeStrEntry(NULL,ginfo->disc_filter_cmd,_("Disc filter command"), + 255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + gtk_container_add(GTK_CONTAINER(page2),vbox); + gtk_widget_show(vbox); + + label=gtk_label_new(_("Options")); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page2,label); + gtk_widget_show(page2); + + gtk_container_add(GTK_CONTAINER(page),notebook); + gtk_widget_show(notebook); + + label=gtk_label_new(_("Rip")); + gtk_notebook_append_page(GTK_NOTEBOOK(config_notebook),page,label); + gtk_widget_show(page); + + page=gtk_frame_new(NULL); + + notebook=gtk_notebook_new(); + + page2=gtk_frame_new(NULL); + + vbox=gtk_vbox_new(FALSE,4); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + + hbox=gtk_hbox_new(FALSE,3); + + label=gtk_label_new(_("Encoder:")); + gtk_box_pack_start(GTK_BOX(hbox),label,TRUE,TRUE,0); + gtk_widget_show(label); + + menu=gtk_menu_new(); + + enc=encoder_defaults; + + while(*(enc->name)) { + item=gtk_menu_item_new_with_label(enc->name); + gtk_object_set_user_data(GTK_OBJECT(item),(gpointer)enc); + gtk_signal_connect(GTK_OBJECT(item),"activate", + GTK_SIGNAL_FUNC(EncoderSelected),(gpointer)ginfo); + gtk_menu_append(GTK_MENU(menu),item); + gtk_widget_show(item); + + enc++; + } + + gtk_menu_set_active(GTK_MENU(menu),ginfo->selected_encoder); + + optmenu=gtk_option_menu_new(); + gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu),menu); + gtk_widget_show(menu); + gtk_box_pack_start(GTK_BOX(hbox),optmenu,TRUE,TRUE,0); + gtk_widget_show(optmenu); + + gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + hsep=gtk_hseparator_new(); + gtk_box_pack_start(GTK_BOX(vbox),hsep,FALSE,FALSE,0); + gtk_widget_show(hsep); + + entry=MakeStrEntry(&(uinfo->mp3exename_entry),ginfo->mp3exename, + _("Encoder executable"),255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeStrEntry(&(uinfo->mp3cmdline_entry),ginfo->mp3cmdline, + _("Encoder command-line"), + 255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeStrEntry(&(uinfo->mp3extension_entry),ginfo->mp3extension, + _("Encode file extension"), + 10,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeStrEntry(NULL,ginfo->mp3fileformat,_("Encode file format"), + 255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + gtk_container_add(GTK_CONTAINER(page2),vbox); + gtk_widget_show(vbox); + + label=gtk_label_new(_("Encoder")); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page2,label); + gtk_widget_show(page2); + + page2=gtk_frame_new(NULL); + + vbox=gtk_vbox_new(FALSE,0); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + + check=MakeCheckButton(NULL,&ginfo->delete_wavs, + _("Delete .wav after encoding")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->add_to_db, + _("Insert info into SQL database")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->add_m3u,_("Create .m3u files")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->rel_m3u, + _("Use relative paths in .m3u files")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + entry=MakeStrEntry(NULL,ginfo->m3ufileformat,_("M3U file format"),255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeNumEntry(NULL,&ginfo->kbits_per_sec, + _("Encoding bitrate (kbits/sec)"),3); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeNumEntry(NULL,&ginfo->edit_num_cpu,_("Number of CPUs to use"),3); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeNumEntry(NULL,&ginfo->mp3nice,_("Encode 'nice' value"),3); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeStrEntry(NULL,ginfo->mp3_filter_cmd,_("Encode filter command"), + 255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + gtk_container_add(GTK_CONTAINER(page2),vbox); + gtk_widget_show(vbox); + + label=gtk_label_new(_("Options")); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page2,label); + gtk_widget_show(page2); + + gtk_container_add(GTK_CONTAINER(page),notebook); + gtk_widget_show(notebook); + + label=gtk_label_new(_("Encode")); + gtk_notebook_append_page(GTK_NOTEBOOK(config_notebook),page,label); + gtk_widget_show(page); + + page=gtk_frame_new(NULL); + + vbox=gtk_vbox_new(FALSE,2); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + + check=MakeCheckButton(NULL,&ginfo->doid3,_("Add ID3 tags to encoded files")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + +#ifdef HAVE_ID3V2 + check=MakeCheckButton(NULL,&ginfo->doid3v2, + _("Add ID3v2 tags to encoded files")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); +#endif + + check=MakeCheckButton(NULL,&ginfo->tag_mp3_only, + _("Only tag files ending in '.mp3'")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + entry=MakeStrEntry(NULL,ginfo->id3_comment,_("ID3 comment field"),29,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeStrEntry(NULL,ginfo->id3_encoding, + _("ID3v1 Character set encoding"),16,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + +#ifdef HAVE_ID3V2 + entry=MakeStrEntry(NULL,ginfo->id3v2_encoding, + _("ID3v2 Character set encoding"),16,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); +#endif + + gtk_container_add(GTK_CONTAINER(page),vbox); + gtk_widget_show(vbox); + + label = gtk_label_new(_("ID3")); + gtk_notebook_append_page(GTK_NOTEBOOK(config_notebook),page,label); + gtk_widget_show(page); +#endif + + page=gtk_frame_new(NULL); + + dbvbox=gtk_vbox_new(FALSE,4); + gtk_container_border_width(GTK_CONTAINER(dbvbox),3); + + notebook=gtk_notebook_new(); + + page2=gtk_frame_new(NULL); + + vbox=gtk_vbox_new(FALSE,2); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + + entry=MakeStrEntry(NULL,ginfo->dbserver.name,_("DB server"),255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeStrEntry(NULL,ginfo->dbserver.cgi_prog,_("CGI path"),255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + gtk_container_add(GTK_CONTAINER(page2),vbox); + gtk_widget_show(vbox); + + label=gtk_label_new(_("Primary Server")); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page2,label); + gtk_widget_show(page2); + + page2=gtk_frame_new(NULL); + + vbox=gtk_vbox_new(FALSE,2); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + + entry=MakeStrEntry(NULL,ginfo->dbserver2.name,_("DB server"),255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeStrEntry(NULL,ginfo->dbserver2.cgi_prog,_("CGI path"),255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + gtk_container_add(GTK_CONTAINER(page2),vbox); + gtk_widget_show(vbox); + + label=gtk_label_new(_("Secondary Server")); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page2,label); + gtk_widget_show(page2); + + + gtk_box_pack_start(GTK_BOX(dbvbox),notebook,FALSE,FALSE,0); + gtk_widget_show(notebook); + + + entry=MakeStrEntry(NULL,ginfo->discdb_submit_email, + _("DB Submit email"),255,TRUE); + gtk_box_pack_start(GTK_BOX(dbvbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeStrEntry(NULL,ginfo->discdb_encoding, + _("DB Character set encoding"),16,TRUE); + gtk_box_pack_start(GTK_BOX(dbvbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + check=MakeCheckButton(NULL,&ginfo->db_use_freedb, + _("Use freedb extensions")); + gtk_box_pack_start(GTK_BOX(dbvbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->automatic_discdb, + _("Perform disc lookups automatically")); + gtk_box_pack_start(GTK_BOX(dbvbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + gtk_container_add(GTK_CONTAINER(page),dbvbox); + gtk_widget_show(dbvbox); + + + label=gtk_label_new(_("DiscDB")); + gtk_notebook_append_page(GTK_NOTEBOOK(config_notebook),page,label); + gtk_widget_show(page); + + page=gtk_frame_new(NULL); + + vbox=gtk_vbox_new(FALSE,2); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + + check=MakeCheckButton(&button,&ginfo->use_proxy,_("Use proxy server")); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(UseProxyChanged),(gpointer)ginfo); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->use_proxy_env, + _("Get server from 'http_proxy' env. var")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + entry=MakeStrEntry(NULL,ginfo->proxy_server.name,_("Proxy server"),255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeNumEntry(NULL,&(ginfo->proxy_server.port),_("Proxy port"),5); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeStrEntry(NULL,ginfo->proxy_server.username,_("Proxy username"), + 80,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeStrEntry(&realentry,ginfo->proxy_server.pswd, + _("Proxy password"),80,TRUE); + gtk_entry_set_visibility(GTK_ENTRY(realentry),FALSE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + gtk_container_add(GTK_CONTAINER(page),vbox); + gtk_widget_show(vbox); + + label=gtk_label_new(_("Proxy")); + gtk_notebook_append_page(GTK_NOTEBOOK(config_notebook),page,label); + gtk_widget_show(page); + + page=gtk_frame_new(NULL); + + vbox=gtk_vbox_new(FALSE,2); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + + entry=MakeStrEntry(NULL,ginfo->user_email,_("Email address"),255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + entry=MakeStrEntry(NULL,ginfo->cdupdate,_("CD update program"),255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + check=MakeCheckButton(NULL,&ginfo->sprefs.no_lower_case, + _("Do not lowercase filenames")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->sprefs.allow_high_bits, + _("Allow high bits in filenames")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->sprefs.escape, + _("Replace incompatible characters by hexadecimal numbers")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + check=MakeCheckButton(NULL,&ginfo->sprefs.no_underscore, + _("Do not change spaces to underscores")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + entry=MakeStrEntry(NULL,ginfo->sprefs.allow_these_chars, + _("Characters to not strip\nin filenames"),255,TRUE); + gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0); + gtk_widget_show(entry); + + check=MakeCheckButton(NULL,&ginfo->show_tray_icon, + _("Show tray icon")); + gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); + gtk_widget_show(check); + + gtk_container_add(GTK_CONTAINER(page),vbox); + gtk_widget_show(vbox); + + label=gtk_label_new(_("Misc")); + gtk_notebook_append_page(GTK_NOTEBOOK(config_notebook),page,label); + gtk_widget_show(page); + + gtk_box_pack_start(GTK_BOX(vbox2),config_notebook,FALSE,FALSE,0); + gtk_widget_show(config_notebook); + + gtk_container_add(GTK_CONTAINER(configpage),vbox2); + gtk_widget_show(vbox2); +} + +static void RipperSelected(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + GripGUI *uinfo; + Ripper *rip; + char buf[256]; + int selected_ripper; + + ginfo=(GripInfo *)data; + uinfo=&(ginfo->gui_info); + rip=(Ripper *)gtk_object_get_user_data(GTK_OBJECT(widget)); + + SaveRipperConfig(ginfo,ginfo->selected_ripper); + + selected_ripper=rip-ripper_defaults; + + /* Don't overwrite if the selection hasn't changed */ + if(ginfo->selected_ripper == selected_ripper) { + return; + } + + ginfo->selected_ripper = selected_ripper; + +#ifdef CDPAR + if(ginfo->selected_ripper==0) { + ginfo->using_builtin_cdp=TRUE; + + gtk_widget_hide(uinfo->rip_exe_box); + gtk_widget_show(uinfo->rip_builtin_box); + } + else { + ginfo->using_builtin_cdp=FALSE; + + gtk_widget_show(uinfo->rip_exe_box); + gtk_widget_hide(uinfo->rip_builtin_box); + } +#endif + + if(!ginfo->using_builtin_cdp) { + if(LoadRipperConfig(ginfo,ginfo->selected_ripper)) { + strcpy(buf,ginfo->ripexename); + gtk_entry_set_text(GTK_ENTRY(uinfo->ripexename_entry),buf); + strcpy(buf,ginfo->ripcmdline); + gtk_entry_set_text(GTK_ENTRY(uinfo->ripcmdline_entry),buf); + } + else { + if(strcmp(rip->name,"other")) { + FindExeInPath(rip->name, buf, sizeof(buf)); + gtk_entry_set_text(GTK_ENTRY(uinfo->ripexename_entry), buf); + } + else gtk_entry_set_text(GTK_ENTRY(uinfo->ripexename_entry),""); + + gtk_entry_set_text(GTK_ENTRY(uinfo->ripcmdline_entry),rip->cmdline); + } + } +} + +#define RIP_CFG_ENTRIES \ + {"exe",CFG_ENTRY_STRING,256,ginfo->ripexename},\ + {"cmdline",CFG_ENTRY_STRING,256,ginfo->ripcmdline},\ + {"",CFG_ENTRY_LAST,0,NULL} + +gboolean LoadRipperConfig(GripInfo *ginfo,int ripcfg) +{ + char buf[256]; + CFGEntry rip_cfg_entries[]={ + RIP_CFG_ENTRIES + }; + +#ifdef CDPAR + if(ripcfg==0) return; +#endif + + sprintf(buf,"%s/%s-%s",getenv("HOME"),ginfo->config_filename, + ripper_defaults[ripcfg].name); + + return (LoadConfig(buf,"GRIP",2,2,rip_cfg_entries)==1); +} + +void SaveRipperConfig(GripInfo *ginfo,int ripcfg) +{ + char buf[256]; + CFGEntry rip_cfg_entries[]={ + RIP_CFG_ENTRIES + }; + +#ifdef CDPAR + if(ripcfg==0) return; +#endif + + sprintf(buf,"%s/%s-%s",getenv("HOME"),ginfo->config_filename, + ripper_defaults[ripcfg].name); + + if(!SaveConfig(buf,"GRIP",2,rip_cfg_entries)) + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Error: Unable to save ripper config.")); +} + +static void EncoderSelected(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + GripGUI *uinfo; + MP3Encoder *enc; + char buf[256]; + + ginfo=(GripInfo *)data; + uinfo=&(ginfo->gui_info); + enc=(MP3Encoder *)gtk_object_get_user_data(GTK_OBJECT(widget)); + + SaveEncoderConfig(ginfo,ginfo->selected_encoder); + + ginfo->selected_encoder=enc-encoder_defaults; + + if(LoadEncoderConfig(ginfo,ginfo->selected_encoder)) { + strcpy(buf,ginfo->mp3exename); + gtk_entry_set_text(GTK_ENTRY(uinfo->mp3exename_entry),buf); + + strcpy(buf,ginfo->mp3cmdline); + gtk_entry_set_text(GTK_ENTRY(uinfo->mp3cmdline_entry),buf); + + strcpy(buf,ginfo->mp3extension); + gtk_entry_set_text(GTK_ENTRY(uinfo->mp3extension_entry),buf); + } + else { + if(strcmp(enc->name,"other")) { + FindExeInPath(enc->name, buf, sizeof(buf)); + gtk_entry_set_text(GTK_ENTRY(uinfo->mp3exename_entry),buf); + } + else gtk_entry_set_text(GTK_ENTRY(uinfo->mp3exename_entry),""); + + gtk_entry_set_text(GTK_ENTRY(uinfo->mp3cmdline_entry),enc->cmdline); + gtk_entry_set_text(GTK_ENTRY(uinfo->mp3extension_entry),enc->extension); + } +} + +#define ENCODE_CFG_ENTRIES \ + {"exe",CFG_ENTRY_STRING,256,ginfo->mp3exename},\ + {"cmdline",CFG_ENTRY_STRING,256,ginfo->mp3cmdline},\ + {"extension",CFG_ENTRY_STRING,10,ginfo->mp3extension},\ + {"",CFG_ENTRY_LAST,0,NULL} + +gboolean LoadEncoderConfig(GripInfo *ginfo,int encodecfg) +{ + char buf[256]; + CFGEntry encode_cfg_entries[]={ + ENCODE_CFG_ENTRIES + }; + + sprintf(buf,"%s/%s-%s",getenv("HOME"),ginfo->config_filename, + encoder_defaults[encodecfg].name); + + return (LoadConfig(buf,"GRIP",2,2,encode_cfg_entries)==1); +} + +void SaveEncoderConfig(GripInfo *ginfo,int encodecfg) +{ + char buf[256]; + CFGEntry encode_cfg_entries[]={ + ENCODE_CFG_ENTRIES + }; + + sprintf(buf,"%s/%s-%s",getenv("HOME"),ginfo->config_filename, + encoder_defaults[encodecfg].name); + + if(!SaveConfig(buf,"GRIP",2,encode_cfg_entries)) + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Error: Unable to save encoder config.")); +} + +void FindExeInPath(char *exename, char *buf, int bsize) +{ + char *path; + static char **PATH = 0; + + if(!PATH) { + const char *env = g_getenv("PATH"); + + PATH = g_strsplit(env ? env : "/usr/local/bin:/usr/bin:/bin", ":", 0); + } + + path = FindExe(exename, PATH); + + if(!path) { + g_snprintf(buf, bsize, "%s", exename); + } + else { + g_snprintf(buf, bsize, "%s/%s", path, exename); + } +} + +char *FindExe(char *exename,char **paths) +{ + char **path; + char buf[256]; + + path=paths; + + while(*path) { + g_snprintf(buf,256,"%s/%s",*path,exename); + + if(FileExists(buf)) return *path; + + path++; + } + + return NULL; +} + +gboolean FileExists(char *filename) +{ + struct stat mystat; + + return (stat(filename,&mystat)>=0); +} + diff --git a/src/gripcfg.h b/src/gripcfg.h new file mode 100644 index 0000000..e5419f9 --- /dev/null +++ b/src/gripcfg.h @@ -0,0 +1,46 @@ +/* gripcfg.h + * + * Copyright (c) 1998-2002 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * 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 + */ + +/* Ripper default info structure */ + +typedef struct _ripper { + char name[20]; + char cmdline[256]; +} Ripper; + +/* Encoder default info structure */ + +typedef struct _mp3_encoder { + char name[20]; + char cmdline[256]; + char extension[10]; +} MP3Encoder; + + +void MakeConfigPage(GripInfo *ginfo); +gboolean LoadRipperConfig(GripInfo *ginfo,int ripcfg); +void SaveRipperConfig(GripInfo *ginfo,int ripcfg); +gboolean LoadEncoderConfig(GripInfo *ginfo,int encodecfg); +void SaveEncoderConfig(GripInfo *ginfo,int encodecfg); +char *FindExe(char *exename,char **paths); +void FindExeInPath(char *exename, char *buf, int bsize); +gboolean FileExists(char *filename); diff --git a/src/id3.c b/src/id3.c new file mode 100644 index 0000000..ab3dda7 --- /dev/null +++ b/src/id3.c @@ -0,0 +1,478 @@ +/* id3.c + * + * Copyright (c) 1998-2004 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include +#include +#include +#include +#include "grip_id3.h" + +static void ID3Put(char *dest,char *src,int len,char *encoding); + +/* this array contains string representations of all known ID3 tags */ +/* taken from mp3id3 in the mp3tools 0.7 package */ + +ID3Genre id3_genres[] = { + {"Alternative",20}, + {"Anime",146}, + {"Blues",0}, + {"Classical",32}, + {"Country",2}, + {"Folk",80}, + {"Jazz",8}, + {"Metal",9}, + {"Pop",13}, + {"Rap",15}, + {"Reggae",16}, + {"Rock",17}, + {"Other",12}, + {"Acapella",123}, + {"Acid",34}, + {"Acid Jazz",74}, + {"Acid Punk",73}, + {"Acoustic",99}, + {"AlternRock",40}, + {"Ambient",26}, + {"Avantgarde",90}, + {"Ballad",116}, + {"Bass",41}, + {"Beat",135}, + {"Bebob",85}, + {"Big Band",96}, + {"Black Metal",138}, + {"Bluegrass",89}, + {"Booty Bass",107}, + {"BritPop",132}, + {"Cabaret",65}, + {"Celtic",88}, + {"Chamber Music",104}, + {"Chanson",102}, + {"Chorus",97}, + {"Christian Gangsta Rap",136}, + {"Christian Rap",61}, + {"Christian Rock",141}, + {"Classic Rock",1}, + {"Club",112}, + {"Club-House",128}, + {"Comedy",57}, + {"Contemporary Christian",140}, + {"Crossover",139}, + {"Cult",58}, + {"Dance",3}, + {"Dance Hall",125}, + {"Darkwave",50}, + {"Death Metal",22}, + {"Disco",4}, + {"Dream",55}, + {"Drum & Bass",127}, + {"Drum Solo",122}, + {"Duet",120}, + {"Easy Listening",98}, + {"Electronic",52}, + {"Ethnic",48}, + {"Eurodance",54}, + {"Euro-house",124}, + {"Euro-Techno",25}, + {"Fast Fusion",84}, + {"Folklore",115}, + {"Folk/Rock",81}, + {"Freestyle",119}, + {"Funk",5}, + {"Fusion",30}, + {"Game",36}, + {"Gangsta",59}, + {"Goa",126}, + {"Gospel",38}, + {"Gothic",49}, + {"Gothic Rock",91}, + {"Grunge",6}, + {"Hardcore",129}, + {"Hard Rock",79}, + {"Heavy Metal",137}, + {"Hip-Hop",7}, + {"House",35}, + {"Humour",100}, + {"Indie",131}, + {"Industrial",19}, + {"Instrumental",33}, + {"Instrumental Pop",46}, + {"Instrumental Rock",47}, + {"Jazz+Funk",29}, + {"JPop",145}, + {"Jungle",63}, + {"Latin",86}, + {"Lo-Fi",71}, + {"Meditative",45}, + {"Merengue",142}, + {"Musical",77}, + {"National Folk",82}, + {"Native American",64}, + {"Negerpunk",133}, + {"New Age",10}, + {"New Wave",66}, + {"Noise",39}, + {"Oldies",11}, + {"Opera",103}, + {"Polka",75}, + {"Polsk Punk",134}, + {"Pop-Folk",53}, + {"Pop/Funk",62}, + {"Porn Groove",109}, + {"Power Ballad",117}, + {"Pranks",23}, + {"Primus",108}, + {"Progressive Rock",92}, + {"Psychadelic",67}, + {"Psychedelic Rock",93}, + {"Punk",43}, + {"Punk Rock",121}, + {"Rave",68}, + {"R&B",14}, + {"Retro",76}, + {"Revival",87}, + {"Rhythmic Soul",118}, + {"Rock & Roll",78}, + {"Salsa",143}, + {"Samba",114}, + {"Satire",110}, + {"Showtunes",69}, + {"Ska",21}, + {"Slow Jam",111}, + {"Slow Rock",95}, + {"Sonata",105}, + {"Soul",42}, + {"Sound Clip",37}, + {"Soundtrack",24}, + {"Southern Rock",56}, + {"Space",44}, + {"Speech",101}, + {"Swing",83}, + {"Symphonic Rock",94}, + {"Symphony",106}, + {"SynthPop",147}, + {"Tango",113}, + {"Techno",18}, + {"Techno-Industrial",51}, + {"Terror",130}, + {"Top 40",60}, + {"Trailer",70}, + {"Trance",31}, + {"Trash Metal",144}, + {"Tribal",72}, + {"Trip-Hop",27}, + {"Vocal",28}, + {NULL,145} +}; + +/* This array maps CDDB_ genre numbers to closest id3 genre */ +int cddb_2_id3[] = +{ + 12, /* CDDB_UNKNOWN */ + 0, /* CDDB_BLUES */ + 32, /* CDDB_CLASSICAL */ + 2, /* CDDB_COUNTRY */ + 12, /* CDDB_DATA */ + 80, /* CDDB_FOLK */ + 8, /* CDDB_JAZZ */ + 12, /* CDDB_MISC */ + 10, /* CDDB_NEWAGE */ + 16, /* CDDB_REGGAE */ + 17, /* CDDB_ROCK */ + 24, /* CDDB_SOUNDTRACK */ +}; + +/* ID3 tag structure */ + +typedef struct _id3_tag { + char tag[3]; + char title[30]; + char artist[30]; + char album[30]; + char year[4]; + char comment[28]; + unsigned char id3v1_1_mark; + unsigned char tracknum; + unsigned char genre; +} ID3v1Tag; + +#ifdef HAVE_ID3V2 + +#include + +/* Things you might want to mess with. Surprisingly, the code will probably + cope with you just messing with this section. */ +#define NUM_FRAMES 7 +static ID3_FrameID frameids[ NUM_FRAMES ] = { + ID3FID_TITLE, ID3FID_LEADARTIST, ID3FID_ALBUM, ID3FID_YEAR, + ID3FID_COMMENT, ID3FID_CONTENTTYPE, ID3FID_TRACKNUM +}; +/* End of the section you're supposed to mess with */ + +gboolean ID3v2TagFile(char *filename, char *title, char *artist, char *album, + char *year, char *comment, unsigned char genre, unsigned + char tracknum,char *id3v2_encoding) +{ + ID3Tag *tag; + ID3Field *field; + ID3Frame *frames[ NUM_FRAMES ]; + int i; + gboolean retval = TRUE; + luint frm_offset; + mode_t mask; + char *conv_str; + gsize rb,wb; + + tag = ID3Tag_New(); + + if(tag) { + frm_offset=ID3Tag_Link(tag,filename); + /* GRR. No error. */ + + for ( i = 0; i < NUM_FRAMES; i++ ) { + frames[ i ] = ID3Frame_NewID( frameids[ i ] ); + + if ( frames[ i ] ) { + char *c_data = NULL; + char gen[ 5 ] = "( )"; + char trk[ 4 ] = " "; + + switch( frameids[ i ] ) { + case ID3FID_TITLE: + c_data = title; + break; + + case ID3FID_LEADARTIST: + c_data = artist; + break; + + case ID3FID_ALBUM: + c_data = album; + break; + + case ID3FID_YEAR: + c_data = year; + break; + + case ID3FID_COMMENT: + c_data = comment; + break; + + case ID3FID_CONTENTTYPE: + c_data = gen; + sprintf( gen, "(%d)", genre ); /* XXX */ + break; + + case ID3FID_TRACKNUM: + c_data = trk; + sprintf( trk, "%d", tracknum ); /* XXX */ + break; + + default: + /* Doh! */ + g_printerr(_("unknown ID3 field\n")); + break; + } + + if(c_data != NULL) { + field = ID3Frame_GetField( frames[i], ID3FN_TEXT ); + + if(field) { + /* if(!strcasecmp(id3v2_encoding,"utf-8")) { + ID3Field_SetUNICODE(field,(unicode_t *)c_data); + } + else { + */ + + /* Always encode pretending it is ascii */ + + conv_str=g_convert_with_fallback(c_data,strlen(c_data),id3v2_encoding, + "utf-8",NULL,&rb,&wb,NULL); + + if(!conv_str) { + printf("***convert failed\n"); + + conv_str=strdup(c_data); + } + + ID3Field_SetASCII(field,conv_str); + + g_free(conv_str); + } else { + retval = FALSE; + } + } + } else { /* Frame->new() failed */ + retval = FALSE; + break; + } + } + if ( retval != FALSE ) { + /* It would be really nice if I could have done something like + ID3Tag_AddFrames( tag, frames, NUM_FRAMES ), but the + prototypes work against me one way or another. So, this will + do instead. */ + for ( i = 0; i < NUM_FRAMES; i++ ) { + /* Strictly speaking I should look for existing tags and + delete them, but hey. We're making fresh mp3 files, right? + */ + ID3Tag_AddFrame( tag, frames[ i ] ); + } + } + + if(ID3Tag_UpdateByTagType(tag,ID3TT_ID3V2) != ID3E_NoError ) { + retval = FALSE; + } + + ID3Tag_Delete( tag ); + + /* Reset permissions based on users umask to work around a bug in the + id3v2 library */ + mask = umask(0); + umask(mask); + chmod(filename, 0666 & ~mask); + + } else { /* Tag -> new() failed */ + retval = FALSE; + } + + return retval; +} + +#endif /* HAVE_ID3V2 */ + +/* Add an ID3v1 tag to a file */ + +gboolean ID3v1TagFile(char *filename,char *title,char *artist,char *album, + char *year,char *comment,unsigned char genre, + unsigned char tracknum, char *id3_encoding) +{ + FILE *fp; + ID3v1Tag tag; + + fp=fopen(filename,"a"); + + ID3Put(tag.tag,"TAG",3,id3_encoding); + + ID3Put(tag.title,title,30,id3_encoding); + + ID3Put(tag.artist,artist,30,id3_encoding); + + ID3Put(tag.album,album,30,id3_encoding); + + ID3Put(tag.year,year,4,NULL); + + ID3Put(tag.comment,comment,28,id3_encoding); + + tag.id3v1_1_mark = 0U; + + tag.tracknum=tracknum; + tag.genre=genre; + + fwrite(&tag,sizeof(ID3v1Tag),1,fp); + + fclose(fp); + + return TRUE; +} + +/* Copy a string padding with zeros */ + +static void ID3Put(char *dest,char *src,int len,char *encoding) +{ + int pos; + int srclen; + char *conv_str; + gsize rb,wb; + + if(encoding&&strcasecmp(encoding,"utf-8")) { + conv_str=g_convert_with_fallback(src,strlen(src),encoding,"utf-8",NULL,&rb,&wb,NULL); + + if(!conv_str) conv_str=strdup(src); + } + else conv_str=strdup(src); + + srclen=strlen(conv_str); + + for(pos=0;pos + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "grip.h" +#include "common.h" +#include "launch.h" + +/* Split a string into an array of arguments */ +int MakeArgs(char *str,GString **args,int maxargs) +{ + int arg; + gboolean inquotes=FALSE; + gboolean escaped=FALSE; + gboolean inspace=TRUE; + + for(arg=0;;str++) { + if(inspace && *str && *str!=' ') { + args[arg]=g_string_new(NULL); + inspace=FALSE; + } + + if(inspace && *str==' ') continue; + + if(!escaped && *str=='\\') { + escaped=TRUE; + continue; + } + + if(!escaped && *str=='"') { + inquotes=!inquotes; + continue; + } + + /* A null or a space outside quotes indicates the end of an argument */ + if(!*str || (!inquotes && *str==' ')) { + inquotes=escaped=FALSE; + + if(!inspace) arg++; + + /* Check to see if we are finished */ + if(!*str || !*(str+1) || arg==(maxargs-1)) break; + + inspace=TRUE; + + continue; + } + + g_string_append_c(args[arg],*str); + + escaped=FALSE; + } + + args[arg]=NULL; + + return arg; +} + +/* Translate all '%' switches in a string using the specified function */ +void TranslateString(char *instr,GString *outstr, + char *(*trans_func)(char,void *,gboolean *), + void *user_data,gboolean do_munge_default, + StrTransPrefs *prefs) +{ + gboolean do_munge; + char *trans_result; + char *tok; + struct passwd *pwd; + char *munge_str; + + if(*instr=='~') { + instr++; + + /* Expand ~ in dir -- modeled loosely after code from gtkfind by + Matthew Grossman */ + + if((*instr=='\0') || (*instr=='/')) { /* This user's dir */ + g_string_sprintf(outstr,"%s",getenv("HOME")); + } + else { /* Another user's dir */ + tok=strchr(instr,'/'); + + if(tok) { /* Ugly, but it works */ + *tok='\0'; + pwd=getpwnam(instr); + instr+=strlen(instr); + *tok='/'; + } + else { + pwd=getpwnam(instr); + instr+=strlen(instr); + } + + if(!pwd) + g_print(_("Error: unable to translate filename. No such user as %s\n"), + tok); + else { + g_string_sprintf(outstr,"%s",pwd->pw_dir); + } + } + } + + for(;*instr;instr++) { + do_munge=do_munge_default; + + if(*instr=='%') { + instr++; + + if(*instr=='*') { + do_munge=FALSE; + instr++; + } + + if(*instr=='!') { + do_munge=TRUE; + instr++; + } + + if(*instr=='%') + g_string_append_c(outstr,*instr); + else { + trans_result=trans_func(*instr,user_data,&do_munge); + + if(do_munge && (munge_str=MungeString(trans_result,prefs))) { + g_string_append(outstr,munge_str); + + free(munge_str); + } + else + g_string_append(outstr,trans_result); + } + } + else { + g_string_append_c(outstr,*instr); + } + } +} + +/* + Concatenate two strings with reallocation +*/ + +char *ReallocStrcat(char *dest, const char *src) +{ + if(src) { + dest = g_realloc (dest, strlen(dest)+strlen(src)+sizeof(char)); + if (dest) { + strcat(dest,src); + } + } + return dest; +} + +/* + Munge a string to be suitable for filenames +*/ + +char *MungeString(char *str,StrTransPrefs *prefs) +{ + gunichar *src, *c; + gchar *filename_char; + char *dst; + glong ri,wi; + gsize rb,wb; + char escape[11]; + char utf8_char[7]; + gint utf8_char_len; + + src=g_utf8_to_ucs4(str,strlen(str),&ri,&wi,NULL); + if(!src) { + return NULL; + } + + dst=g_strdup(""); + for(c=src;*c;c++) { + utf8_char_len=g_unichar_to_utf8(prefs->no_lower_case? + *c:g_unichar_tolower(*c),utf8_char); + utf8_char[utf8_char_len]='\0'; + filename_char=g_filename_from_utf8(utf8_char,-1,&rb,&wb,NULL); + g_free(filename_char); + if (!filename_char || !prefs->allow_high_bits && *c >> 7) { + if (prefs->escape) { + g_snprintf(escape,11,"(%x)",*c); + dst=ReallocStrcat(dst,escape); + } + } + else if(*c==' ') { + dst=ReallocStrcat(dst,prefs->no_underscore?" ":"_"); + } + else if(!g_unichar_isalnum(*c)&& + !g_utf8_strchr(prefs->allow_these_chars, + strlen(prefs->allow_these_chars),*c)) { + continue; + } + else { + dst=ReallocStrcat(dst,utf8_char); + } + } + + g_free(src); + + return dst; +} + +int MakeTranslatedArgs(char *str,GString **args,int maxargs, + char *(*trans_func)(char,void *,gboolean *), + void *user_data,gboolean do_munge_default, + StrTransPrefs *prefs) +{ + int num_args; + int arg; + GString *out,*tmp; + + num_args=MakeArgs(str,args,maxargs); + + for(arg=0;args[arg];arg++) { + out=g_string_new(NULL); + + TranslateString(args[arg]->str,out,trans_func,user_data, + do_munge_default,prefs); + + tmp=args[arg]; + args[arg]=out; + g_string_free(tmp,TRUE); + } + + return num_args; +} + +extern char *FindRoot(char *); + +/* +void ArgsToLocale(GString **args) +{ + char *new_str; + GString *new_arg; + int pos; + int len; + + for(pos=1;args[pos];pos++) { + new_str=g_locale_from_utf8(args[pos]->str,-1,NULL,&len,NULL); + + if(new_str) { + new_arg=g_string_new(new_str); + + g_string_free(args[pos],TRUE); + + args[pos]=new_arg; + } + g_free(new_str); + } +} +*/ + +void TranslateAndLaunch(char *cmd,char *(*trans_func)(char,void *,gboolean *), + void *user_data,gboolean do_munge_default, + StrTransPrefs *prefs,void (*close_func)(void *), + void *close_user_data) +{ + GString *str; + GString *args[100]; + char *char_args[21]; + int pid; + int arg; + + str=g_string_new(NULL); + + MakeTranslatedArgs(cmd,args,100,trans_func,user_data,do_munge_default,prefs); + +/* + ArgsToLocale(args); +*/ + + for(arg=1;args[arg];arg++) { + char_args[arg]=args[arg]->str; + } + + char_args[arg]=NULL; + + char_args[0]=FindRoot(args[0]->str); + + pid=fork(); + + if(pid==0) { + if(close_func) close_func(close_user_data); + + execv(args[0]->str,char_args); + + Debug(_("Exec failed\n")); + _exit(0); + } + + waitpid(pid,NULL,0); + + for(arg=0;args[arg];arg++) { + g_string_free(args[arg],TRUE); + } +} diff --git a/src/launch.h b/src/launch.h new file mode 100644 index 0000000..f730e57 --- /dev/null +++ b/src/launch.h @@ -0,0 +1,54 @@ +/* launch.h + * + * Copyright (c) 1998-2002 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * 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 + */ + +#ifndef GRIP_LAUNCH_H +#define GRIP_LAUNCH_H + +/* Options to use when munging strings */ +typedef struct { + gboolean no_underscore; + gboolean allow_high_bits; + gboolean escape; + gboolean no_lower_case; + char allow_these_chars[256]; +} StrTransPrefs; + +int MakeArgs(char *str,GString **args,int maxargs); +void TranslateString(char *instr,GString *outstr, + char *(*trans_func)(char,void *,gboolean *), + void *user_data,gboolean do_munge_default, + StrTransPrefs *prefs); +char *ReallocStrcat(char *dest, const char *src); +char *MungeString(char *str,StrTransPrefs *prefs); +int MakeTranslatedArgs(char *str,GString **args,int maxargs, + char *(*trans_func)(char,void *,gboolean *), + void *user_data,gboolean do_munge_default, + StrTransPrefs *prefs); +/* +void ArgsToLocale(GString **args); +*/ +void TranslateAndLaunch(char *cmd,char *(*trans_func)(char,void *,gboolean *), + void *user_data,gboolean do_munge_default, + StrTransPrefs *prefs,void (*close_func)(void *), + void *close_user_data); + +#endif /* ifndef GRIP_LAUNCH_H */ diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..3629b07 --- /dev/null +++ b/src/main.c @@ -0,0 +1,231 @@ +/* main.c + * + * Copyright (c) 1998-2004 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include +#include +#include + +#include "grip.h" + +static gint KillSession(GnomeClient* client, gpointer client_data); +static gint SaveSession(GnomeClient *client, gint phase, + GnomeSaveStyle save_style, + gint is_shutdown, GnomeInteractStyle interact_style, + gint is_fast, gpointer client_data); +static gint TimeOut(gpointer data); + +gboolean do_debug=TRUE; +GtkWidget* grip_app; + +/* popt table */ +static char *geometry=NULL; +static char *config_filename=NULL; +static char *device=NULL; +static char *scsi_device=NULL; +static int force_small=FALSE; +static int local_mode=FALSE; +static int no_redirect=FALSE; +static int verbose=FALSE; + +struct poptOption options[] = { + { + "geometry", + '\0', + POPT_ARG_STRING, + &geometry, + 0, + N_("Specify the geometry of the main window"), + N_("GEOMETRY") + }, + { + "config", + '\0', + POPT_ARG_STRING, + &config_filename, + 0, + N_("Specify the config file to use (in your home dir)"), + N_("CONFIG") + }, + { + "device", + '\0', + POPT_ARG_STRING, + &device, + 0, + N_("Specify the cdrom device to use"), + N_("DEVICE") + }, + { + "scsi-device", + '\0', + POPT_ARG_STRING, + &scsi_device, + 0, + N_("Specify the generic scsi device to use"), + N_("DEVICE") + }, + { + "small", + '\0', + POPT_ARG_NONE, + &force_small, + 0, + N_("Launch in \"small\" (cd-only) mode"), + NULL + }, + { + "local", + '\0', + POPT_ARG_NONE, + &local_mode, + 0, + N_("\"Local\" mode -- do not look up disc info on the net"), + NULL + }, + { + "no-redirect", + '\0', + POPT_ARG_NONE, + &no_redirect, + 0, + N_("Do not do I/O redirection"), + NULL + }, + { + "verbose", + '\0', + POPT_ARG_NONE, + &verbose, + 0, + N_("Run in verbose (debug) mode"), + NULL + }, + { + NULL, + '\0', + 0, + NULL, + 0, + NULL, + NULL + } +}; + +void Debug(char *fmt,...) +{ + va_list args; + char *msg; + + if(do_debug) { + va_start(args,fmt); + + msg=g_strdup_vprintf(fmt,args); + if(msg) { + g_printerr(msg); + g_free(msg); + } + } + + va_end(args); +} + +int Cmain(int argc, char* argv[]) +{ + GnomeClient *client; + + /* Unbuffer stdout */ + setvbuf(stdout, 0, _IONBF, 0); + + /* setup locale, i18n */ + gtk_set_locale(); + bindtextdomain(GETTEXT_PACKAGE,GNOMELOCALEDIR); + textdomain(GETTEXT_PACKAGE); + + gnome_program_init(PACKAGE,VERSION,LIBGNOMEUI_MODULE,argc,argv, + GNOME_PARAM_POPT_TABLE,options, + GNOME_PROGRAM_STANDARD_PROPERTIES,NULL); + + bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF8"); + setenv("CHARSET","UTF-8",1); + + /* Session Management */ + + client=gnome_master_client(); + gtk_signal_connect(GTK_OBJECT(client),"save_yourself", + GTK_SIGNAL_FUNC(SaveSession),argv[0]); + gtk_signal_connect(GTK_OBJECT(client),"die", + GTK_SIGNAL_FUNC(KillSession),NULL); + + + do_debug=verbose; + + if(scsi_device) printf("scsi=[%s]\n",scsi_device); + + /* Start a new Grip app */ + grip_app=GripNew(geometry,device,scsi_device,config_filename, + force_small,local_mode, + no_redirect); + + gtk_widget_show(grip_app); + + gtk_timeout_add(1000,TimeOut,0); + + gtk_main(); + + return 0; +} + +/* Save the session */ +static gint SaveSession(GnomeClient *client, gint phase, + GnomeSaveStyle save_style, + gint is_shutdown, GnomeInteractStyle interact_style, + gint is_fast, gpointer client_data) +{ + gchar** argv; + guint argc; + + /* allocate 0-filled, so it will be NULL-terminated */ + argv = g_malloc0(sizeof(gchar*)*4); + argc = 1; + + argv[0] = client_data; + + gnome_client_set_clone_command(client, argc, argv); + gnome_client_set_restart_command(client, argc, argv); + + return TRUE; +} + +/* Kill Session */ +static gint KillSession(GnomeClient* client, gpointer client_data) +{ + gtk_main_quit(); + + return TRUE; +} + +static gint TimeOut(gpointer data) +{ + GripUpdate(grip_app); + + return TRUE; +} diff --git a/src/parsecfg.c b/src/parsecfg.c new file mode 100644 index 0000000..94839bd --- /dev/null +++ b/src/parsecfg.c @@ -0,0 +1,136 @@ +/* parsecfg.c + * + * Copyright (c) 1998-200r Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include +#include +#include +#include +#include "grip.h" +#include "parsecfg.h" + +static gboolean ParseLine(char *buf,CFGEntry *cfg); + +static gboolean ParseLine(char *buf,CFGEntry *cfg) +{ + int cfgent; + gboolean found=FALSE; + char *tok; + + tok=strtok(buf," "); + + if(tok) + for(cfgent=0;cfg[cfgent].type!=CFG_ENTRY_LAST;cfgent++) { + if(!strcasecmp(tok,cfg[cfgent].name)) { + tok=strtok(NULL,""); + + if(tok) + switch(cfg[cfgent].type) { + case CFG_ENTRY_STRING: + strncpy((char *)cfg[cfgent].destvar, + g_strstrip(tok),cfg[cfgent].length); + break; + case CFG_ENTRY_BOOL: + *((gboolean *)cfg[cfgent].destvar)=(atoi(tok)==1); + break; + case CFG_ENTRY_INT: + *((int *)cfg[cfgent].destvar)=atoi(tok); + break; + default: + g_print(_("Error: Bad entry type\n")); + break; + } + + found=TRUE; + break; + } + } + + return found; +} + +int LoadConfig(char *filename,char *name,int ver,int reqver,CFGEntry *cfg) +{ + char buf[1024]; + FILE *cfp; + char *tok; + + cfp=fopen(filename,"r"); + if(!cfp) return 0; + + fgets(buf,1024,cfp); + + tok=strtok(buf," "); + + if(!tok||(strcasecmp(tok,name))) { + g_print(_("Error: Invalid config file\n")); + + return -1; + } + + tok=strtok(NULL,""); + + if(!tok||(atoi(tok) + * + * http://www.nostatic.org/grip + * + * 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 + */ + +/* Config entry types */ + +typedef enum +{ + CFG_ENTRY_STRING, + CFG_ENTRY_BOOL, + CFG_ENTRY_INT, + CFG_ENTRY_LAST +} CFGEntryType; + +typedef struct _cfg_entry +{ + char name[80]; + CFGEntryType type; + int length; + void *destvar; +} CFGEntry; + + +int LoadConfig(char *filename,char *name,int ver,int reqver, + CFGEntry *cfg); +gboolean SaveConfig(char *filename,char *name,int ver,CFGEntry *cfg); diff --git a/src/rip.c b/src/rip.c new file mode 100644 index 0000000..6cc58e4 --- /dev/null +++ b/src/rip.c @@ -0,0 +1,1850 @@ +/* rip.c + * + * Copyright (c) 1998-2004 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include "grip.h" +#include +#ifdef HAVE_SYS_STATVFS_H +#include +#elif defined (HAVE_SYS_VFS_H) +#include +#endif +#if defined(__FreeBSD__) || defined(__NetBSD__) +#include +#include +#endif +#include +#include +#include +#include +#include +#include +#include "rip.h" +#include "dialog.h" +#include "cdplay.h" +#include "cddev.h" +#include "gripcfg.h" +#include "launch.h" +#include "grip_id3.h" +#include "config.h" +#include "common.h" +#ifdef CDPAR +#include "gain_analysis.h" +#include "cdpar.h" +extern int rip_smile_level; +#endif + +static void RipPartialChanged(GtkWidget *widget,gpointer data); +static void PlaySegmentCB(GtkWidget *widget,gpointer data); +static GtkWidget *MakeRangeSelects(GripInfo *ginfo); +static void AddSQLEntry(GripInfo *ginfo,EncodeTrack *enc_track); +static void DBScan(GtkWidget *widget,gpointer data); +static char *MakeRelative(char *file1,char *file2); +static gboolean AddM3U(GripInfo *ginfo); +static void ID3Add(GripInfo *ginfo,char *file,EncodeTrack *enc_track); +static void DoWavFilter(GripInfo *ginfo); +static void DoDiscFilter(GripInfo *ginfo); +static void RipIsFinished(GripInfo *ginfo,gboolean aborted); +static void CheckDupNames(GripInfo *ginfo); +static void RipWholeCD(gint reply,gpointer data); +static int NextTrackToRip(GripInfo *ginfo); +static gboolean RipNextTrack(GripInfo *ginfo); +#ifdef CDPAR +static void ThreadRip(void *arg); +#endif +static void AddToEncode(GripInfo *ginfo,int track); +static gboolean MP3Encode(GripInfo *ginfo); +static void CalculateAll(GripInfo *ginfo); +static size_t CalculateEncSize(GripInfo *ginfo, int track); +static size_t CalculateWavSize(GripInfo *ginfo, int track); + +void MakeRipPage(GripInfo *ginfo) +{ + GripGUI *uinfo; + GtkWidget *rippage; + GtkWidget *rangesel; + GtkWidget *vbox,*vbox2,*hbox,*hbox2; + GtkWidget *button; + GtkWidget *hsep; + GtkWidget *check; + GtkWidget *partial_rip_frame; + int mycpu; + int label_width; + PangoLayout *layout; + + uinfo=&(ginfo->gui_info); + + rippage=MakeNewPage(uinfo->notebook,_("Rip")); + + vbox=gtk_vbox_new(FALSE,2); + gtk_container_border_width(GTK_CONTAINER(vbox),3); + + hbox=gtk_hbox_new(FALSE,5); + + vbox2=gtk_vbox_new(FALSE,0); + + button=gtk_button_new_with_label(_("Rip+Encode")); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Rip and encode selected tracks"),NULL); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(DoRipEncode),(gpointer)ginfo); + gtk_box_pack_start(GTK_BOX(vbox2),button,FALSE,FALSE,0); + gtk_widget_show(button); + + button=gtk_button_new_with_label(_("Rip Only")); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Rip but do not encode selected tracks"),NULL); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(DoRip),(gpointer)ginfo); + gtk_box_pack_start(GTK_BOX(vbox2),button,FALSE,FALSE,0); + gtk_widget_show(button); + + button=gtk_button_new_with_label(_("Abort Rip and Encode")); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Kill all active rip and encode processes"),NULL); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(KillRip),(gpointer)ginfo); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(KillEncode),(gpointer)ginfo); + gtk_box_pack_start(GTK_BOX(vbox2),button,FALSE,FALSE,0); + gtk_widget_show(button); + + button=gtk_button_new_with_label(_("Abort Ripping Only")); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Kill rip process"),NULL); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(KillRip),(gpointer)ginfo); + gtk_box_pack_start(GTK_BOX(vbox2),button,FALSE,FALSE,0); + gtk_widget_show(button); + + button=gtk_button_new_with_label(_("DDJ Scan")); + gtk_tooltips_set_tip(MakeToolTip(),button, + _("Insert disc information into the DigitalDJ database"), + NULL); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(DBScan),(gpointer)ginfo); + gtk_box_pack_start(GTK_BOX(vbox2),button,FALSE,FALSE,0); + gtk_widget_show(button); + + gtk_box_pack_start(GTK_BOX(hbox),vbox2,TRUE,TRUE,0); + gtk_widget_show(vbox2); + + partial_rip_frame=gtk_frame_new(NULL); + + vbox2=gtk_vbox_new(FALSE,0); + gtk_container_border_width(GTK_CONTAINER(vbox2),3); + + check=MakeCheckButton(NULL,&ginfo->rip_partial,_("Rip partial track")); + gtk_signal_connect(GTK_OBJECT(check),"clicked", + GTK_SIGNAL_FUNC(RipPartialChanged),(gpointer)ginfo); + gtk_box_pack_start(GTK_BOX(vbox2),check,FALSE,FALSE,0); + gtk_widget_show(check); + + uinfo->partial_rip_box=gtk_vbox_new(FALSE,0); + gtk_widget_set_sensitive(uinfo->partial_rip_box,ginfo->rip_partial); + + hbox2=gtk_hbox_new(FALSE,5); + + button=gtk_button_new_with_label(_("Play")); + gtk_signal_connect(GTK_OBJECT(button),"clicked", + GTK_SIGNAL_FUNC(PlaySegmentCB), + (gpointer)ginfo); + gtk_box_pack_start(GTK_BOX(hbox2),button,TRUE,TRUE,0); + gtk_widget_show(button); + + uinfo->play_sector_label=gtk_label_new(_("Current sector: 0")); + gtk_box_pack_start(GTK_BOX(hbox2),uinfo->play_sector_label,FALSE,FALSE,0); + gtk_widget_show(uinfo->play_sector_label); + + gtk_box_pack_start(GTK_BOX(uinfo->partial_rip_box),hbox2,FALSE,FALSE,0); + gtk_widget_show(hbox2); + + rangesel=MakeRangeSelects(ginfo); + gtk_box_pack_start(GTK_BOX(uinfo->partial_rip_box),rangesel,FALSE,FALSE,0); + gtk_widget_show(rangesel); + + gtk_box_pack_start(GTK_BOX(vbox2),uinfo->partial_rip_box,TRUE,TRUE,0); + gtk_widget_show(uinfo->partial_rip_box); + + gtk_container_add(GTK_CONTAINER(partial_rip_frame),vbox2); + gtk_widget_show(vbox2); + + gtk_box_pack_start(GTK_BOX(hbox),partial_rip_frame,TRUE,TRUE,0); + gtk_widget_show(partial_rip_frame); + + gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0); + gtk_widget_show(hbox); + + hsep=gtk_hseparator_new(); + gtk_box_pack_start(GTK_BOX(vbox),hsep,TRUE,TRUE,0); + gtk_widget_show(hsep); + + vbox2=gtk_vbox_new(FALSE,0); + + hbox=gtk_hbox_new(FALSE,3); + + uinfo->rip_prog_label=gtk_label_new(_("Rip: Idle")); + + /* This should be the largest this string can get */ + + layout=gtk_widget_create_pango_layout(GTK_WIDGET(uinfo->app), + _("Enc: Trk 99 (99.9x)")); + + + pango_layout_get_size(layout,&label_width,NULL); + + label_width/=PANGO_SCALE; + + g_object_unref(layout); + + + gtk_widget_set_usize(uinfo->rip_prog_label,label_width,0); + gtk_box_pack_start(GTK_BOX(hbox),uinfo->rip_prog_label,FALSE,FALSE,0); + gtk_label_set(GTK_LABEL(uinfo->rip_prog_label),_("Rip: Idle")); + gtk_widget_show(uinfo->rip_prog_label); + + uinfo->ripprogbar=gtk_progress_bar_new(); + gtk_box_pack_start(GTK_BOX(hbox),uinfo->ripprogbar,FALSE,FALSE,0); + gtk_widget_show(uinfo->ripprogbar); + + uinfo->smile_indicator=NewBlankPixmap(uinfo->app); + gtk_tooltips_set_tip(MakeToolTip(),uinfo->smile_indicator, + _("Rip status"),NULL); + gtk_box_pack_start(GTK_BOX(hbox),uinfo->smile_indicator,FALSE,FALSE,0); + gtk_widget_show(uinfo->smile_indicator); + + gtk_box_pack_start(GTK_BOX(vbox2),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + for(mycpu=0;mycpunum_cpu;mycpu++){ + hbox=gtk_hbox_new(FALSE,3); + + uinfo->mp3_prog_label[mycpu]=gtk_label_new(_("Enc: Idle")); + gtk_widget_set_usize(uinfo->mp3_prog_label[mycpu],label_width,0); + + gtk_box_pack_start(GTK_BOX(hbox),uinfo->mp3_prog_label[mycpu], + FALSE,FALSE,0); + gtk_widget_show(uinfo->mp3_prog_label[mycpu]); + + uinfo->mp3progbar[mycpu]=gtk_progress_bar_new(); + + gtk_box_pack_start(GTK_BOX(hbox),uinfo->mp3progbar[mycpu],FALSE,FALSE,0); + gtk_widget_show(uinfo->mp3progbar[mycpu]); + + gtk_box_pack_start(GTK_BOX(vbox2),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + } + + gtk_box_pack_start(GTK_BOX(vbox),vbox2,TRUE,TRUE,0); + gtk_widget_show(vbox2); + + hsep=gtk_hseparator_new(); + gtk_box_pack_start(GTK_BOX(vbox),hsep,TRUE,TRUE,0); + gtk_widget_show(hsep); + + vbox2=gtk_vbox_new(FALSE,0); + uinfo->all_label=gtk_label_new(_("Overall indicators:")); + gtk_box_pack_start(GTK_BOX(vbox2),uinfo->all_label,FALSE,FALSE,0); + gtk_widget_show(uinfo->all_label); + + hbox=gtk_hbox_new(FALSE,2); + uinfo->all_rip_label=gtk_label_new(_("Rip: Idle")); + gtk_widget_set_usize(uinfo->all_rip_label,label_width,0); + gtk_box_pack_start(GTK_BOX(hbox),uinfo->all_rip_label,FALSE,FALSE,0); + gtk_widget_show(uinfo->all_rip_label); + + uinfo->all_ripprogbar=gtk_progress_bar_new(); + gtk_box_pack_start(GTK_BOX(hbox),uinfo->all_ripprogbar,FALSE,FALSE,0); + gtk_widget_show(uinfo->all_ripprogbar); + + gtk_box_pack_start(GTK_BOX(vbox2),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + hbox=gtk_hbox_new(FALSE,2); + uinfo->all_enc_label=gtk_label_new(_("Enc: Idle")); + gtk_widget_set_usize(uinfo->all_enc_label,label_width,0); + gtk_box_pack_start(GTK_BOX(hbox),uinfo->all_enc_label,FALSE,FALSE,0); + gtk_widget_show(uinfo->all_enc_label); + + uinfo->all_encprogbar=gtk_progress_bar_new(); + gtk_box_pack_start(GTK_BOX(hbox),uinfo->all_encprogbar,FALSE,FALSE,0); + gtk_widget_show(uinfo->all_encprogbar); + + gtk_box_pack_start(GTK_BOX(vbox2),hbox,FALSE,FALSE,0); + gtk_widget_show(hbox); + + gtk_box_pack_start(GTK_BOX(vbox),vbox2,TRUE,TRUE,0); + gtk_widget_show(vbox2); + + gtk_container_add(GTK_CONTAINER(rippage),vbox); + gtk_widget_show(vbox); +} + +static void RipPartialChanged(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + gtk_widget_set_sensitive(ginfo->gui_info.partial_rip_box,ginfo->rip_partial); +} + +static void PlaySegmentCB(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + PlaySegment(ginfo,CURRENT_TRACK); +} + +static GtkWidget *MakeRangeSelects(GripInfo *ginfo) +{ + GtkWidget *vbox; + GtkWidget *numentry; + + vbox=gtk_vbox_new(FALSE,0); + + numentry=MakeNumEntry(&(ginfo->gui_info.start_sector_entry), + &ginfo->start_sector,_("Start sector"),10); + gtk_box_pack_start(GTK_BOX(vbox),numentry,FALSE,FALSE,0); + gtk_widget_show(numentry); + + numentry=MakeNumEntry(&(ginfo->gui_info.end_sector_entry), + &ginfo->end_sector,_("End sector"),10); + gtk_box_pack_start(GTK_BOX(vbox),numentry,FALSE,FALSE,0); + gtk_widget_show(numentry); + + return vbox; +} + +static void DBScan(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + int track; + EncodeTrack enc_track; + GString *str; + + ginfo=(GripInfo *)data; + + if(!ginfo->have_disc) return; + + for(track=0;trackdisc.num_tracks;track++) { + FillInTrackInfo(ginfo,track,&enc_track); + + str=g_string_new(NULL); + + TranslateString(ginfo->mp3fileformat,str,TranslateSwitch, + &enc_track,TRUE,&(ginfo->sprefs)); + + g_snprintf(enc_track.mp3_filename,256,"%s",str->str); + g_string_free(str,TRUE); + + AddSQLEntry(ginfo,&enc_track); + } +} + +static void AddSQLEntry(GripInfo *ginfo,EncodeTrack *enc_track) +{ + int sqlpid; + char track_str[4]; + char frame_str[11]; + char length_str[11]; + char playtime_str[6]; + char year_str[5]; + + g_snprintf(track_str,4,"%d",enc_track->track_num); + g_snprintf(frame_str,11,"%d",enc_track->start_frame); + g_snprintf(length_str,11,"%d",enc_track->end_frame-enc_track->start_frame); + g_snprintf(playtime_str,6,"%d:%d",enc_track->mins,enc_track->secs); + g_snprintf(year_str,5,"%d",enc_track->song_year); + + LogStatus(ginfo,_("Inserting track %d into the ddj database\n"), + enc_track->track_num); + + sqlpid=fork(); + + if(sqlpid==0) { + CloseStuff(ginfo); + + if(*enc_track->song_artist) + execlp("mp3insert","mp3insert", + "-p",enc_track->mp3_filename, + "-a",enc_track->disc_artist, + "-i",enc_track->song_artist, + "-t",enc_track->song_name,"-d",enc_track->disc_name, + "-g",ID3GenreString(enc_track->id3_genre),"-y",year_str, + "-n",track_str, + "-f",frame_str,"-l",length_str,"-m",playtime_str,NULL); + else + execlp("mp3insert","mp3insert", + "-p",enc_track->mp3_filename, + "-a",enc_track->disc_artist, + "-t",enc_track->song_name,"-d",enc_track->disc_name, + "-g",ID3GenreString(enc_track->id3_genre),"-y",year_str, + "-n",track_str, + "-f",frame_str,"-l",length_str,"-m",playtime_str,NULL); + + _exit(0); + } + + waitpid(sqlpid,NULL,0); +} + +gboolean IsDir(char *path) +{ + struct stat mystat; + + if(stat(path,&mystat)!=0) return FALSE; + + return S_ISDIR(mystat.st_mode); +} + +unsigned long long BytesLeftInFS(char *path) +{ + unsigned long long bytesleft; + int pos; +#ifdef HAVE_SYS_STATVFS_H + struct statvfs stat; +#else + struct statfs stat; +#endif + + if(!IsDir(path)) { + for(pos=strlen(path);pos&&(path[pos]!='/');pos--); + + if(path[pos]!='/') return 0; + + path[pos]='\0'; + +#ifdef HAVE_SYS_STATVFS_H + if(statvfs(path,&stat)!=0) return 0; +#else + if(statfs(path,&stat)!=0) return 0; +#endif + + path[pos]='/'; + } + else +#ifdef HAVE_SYS_STATVFS_H + if(statvfs(path,&stat)!=0) return 0; +#else + if(statfs(path,&stat)!=0) return 0; +#endif + + bytesleft=stat.f_bavail; + bytesleft*=stat.f_bsize; + + return bytesleft; +} + +/* Find the root filename of a path */ +char *FindRoot(char *str) +{ + char *c; + + for(c=str+strlen(str);c>str;c--) { + if(*c=='/') return c+1; + } + + return c; +} + +/* Check if a user has write access to a path */ +gboolean CanWrite(char *path) +{ + char *c; + gboolean can_write=FALSE; + + /* First find the filename part, if any */ + for(c=path+strlen(path);c>path;c--) { + if(*c=='/') break; + } + + /* This is kinda clumsy -- temporarily hack the string to get only the + path part */ + if(c!=path) { + *c='\0'; + } + + if(!access(path,W_OK)) { + can_write=TRUE; + } + + /* Put back the '/' */ + if(c!=path) { + *c='/'; + } + + return can_write; +} + +void MakeDirs(char *path) +{ + char dir[256]; + char *s; + int len; + + for(len=0,s=path;*s;s++,len++) { + if(*s=='/') { + strncpy(dir,path,len); + dir[len]='\0'; + + if(!FileExists(dir)) + mkdir(dir,0777); + } + } +} + +char *MakePath(char *str) +{ + int len; + + len=strlen(str)-1; + + if(str[len]!='/') { + str[len+1]='/'; + str[len+2]='\0'; + } + + return str; +} + +/* Make file1 relative to file2 */ +static char *MakeRelative(char *file1,char *file2) +{ + int pos, pos2=0, slashcnt, i; + char *rel=file1; + char tem[PATH_MAX]=""; + + slashcnt=0; + + /* This part finds relative names assuming m3u is not branched in a + different directory from mp3 */ + for(pos=0;file2[pos];pos++) { + if(pos&&(file2[pos]=='/')) { + if(!strncmp(file1,file2,pos)) { + rel=file1+pos+1; + pos2=pos; + } + } + } + + /* Now check to see if the m3u file branches to a different directory. */ + for(pos2=pos2+1;file2[pos2];pos2++) { + if(file2[pos2]=='/'){ + slashcnt++; + } + } + + /* Now add correct number of "../"s to make the path relative */ + for(i=0;ihave_disc) return FALSE; + + str=g_string_new(NULL); + + /* Use track 0 to fill in M3u switches */ + FillInTrackInfo(ginfo,0,&enc_track); + + TranslateString(ginfo->m3ufileformat,str,TranslateSwitch, + &enc_track,TRUE,&(ginfo->sprefs)); + + conv_str=g_filename_from_utf8(str->str,strlen(str->str),&rb,&wb,NULL); + + if(!conv_str) + conv_str=g_strdup(str->str); + + g_snprintf(m3unam,PATH_MAX,"%s",conv_str); + + MakeDirs(conv_str); + + fp=fopen(conv_str, "w"); + if(fp==NULL) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Error: can't open m3u file.")); + return FALSE; + } + g_free(conv_str); + + for(i=0;idisc.num_tracks;i++) { + /* Only add to the m3u if the track is selected for ripping */ + if(TrackIsChecked(&(ginfo->gui_info),i)) { + g_string_truncate(str,0); + + FillInTrackInfo(ginfo,i,&enc_track); + TranslateString(ginfo->mp3fileformat,str,TranslateSwitch, + &enc_track,TRUE,&(ginfo->sprefs)); + + conv_str=g_filename_from_utf8(str->str,strlen(str->str),&rb,&wb,NULL); + + if(!conv_str) + conv_str=g_strdup(str->str); + + if(ginfo->rel_m3u) { + g_snprintf(tmp,PATH_MAX,"%s",conv_str); + relnam=MakeRelative(tmp,m3unam); + fprintf(fp,"%s\n",relnam); + } + else + fprintf(fp,"%s\n",conv_str); + g_free(conv_str); + } + } + + g_string_free(str,TRUE); + + fclose(fp); + + return TRUE; +} + +void KillRip(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + int track; + + Debug(_("In KillRip\n")); + ginfo=(GripInfo *)data; + + if(!ginfo->ripping_a_disc) return; + + ginfo->all_ripsize=0; + ginfo->all_ripdone=0; + ginfo->all_riplast=0; + + ginfo->stop_rip=TRUE; + ginfo->ripping_a_disc=FALSE; + + if(ginfo->ripping) { + /* Need to decrement num_wavs since we didn't finish ripping + the current track */ + if(ginfo->doencode && ginfo->num_wavs>0) + ginfo->num_wavs--; + + /* Need to decrement all_mp3size */ + for (track=0;trackdisc.num_tracks;++track) { + if ((!IsDataTrack(&(ginfo->disc),track)) && + (TrackIsChecked(&(ginfo->gui_info),track))) { + ginfo->all_encsize-=CalculateEncSize(ginfo,track); + } + } + + Debug(_("Now total enc size is: %d\n"),ginfo->all_encsize); + + if(ginfo->using_builtin_cdp) { +#ifdef CDPAR + ginfo->stop_thread_rip_now=TRUE; +#endif + } + else kill(ginfo->rippid,SIGKILL); + } +} + +void KillEncode(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + int mycpu; + GList *elist; + EncodeTrack *enc_track; + + ginfo=(GripInfo *)data; + + if(!ginfo->encoding) return; + + ginfo->stop_encode=TRUE; + ginfo->num_wavs=0; + ginfo->all_encsize=0; + ginfo->all_encdone=0; + + for(mycpu=0;mycpunum_cpu;mycpu++){ + if(ginfo->encoding&(1<mp3pid[mycpu],SIGKILL); + ginfo->all_enclast[mycpu]=0; + } + + elist=ginfo->encode_list; + + /* Remove all entries in the encode list */ + while(elist) { + enc_track=(EncodeTrack *)elist->data; + elist=elist->next; + + ginfo->encode_list=g_list_remove(elist,enc_track); + g_free(enc_track); + } +} + +static void ID3Add(GripInfo *ginfo,char *file,EncodeTrack *enc_track) +{ + char year[5]; + GString *comment; + int len; + + /* If we only want to tag mp3 files, look for the correct extension */ + if(ginfo->tag_mp3_only) { + len=strlen(file); + + if(len<4 || strcasecmp(file+(len-4),".mp3")) { + return; + } + } + + comment=g_string_new(NULL); + TranslateString(ginfo->id3_comment,comment,TranslateSwitch,enc_track, + FALSE,&(ginfo->sprefs)); + + g_snprintf(year,5,"%d",enc_track->song_year); + + /* If we've got id3lib, we have the option of doing v2 tags */ +#ifdef HAVE_ID3V2 + if(ginfo->doid3v2) { + ID3v2TagFile(file,(*(enc_track->song_name))?enc_track->song_name:"Unknown", + (*(enc_track->song_artist))?enc_track->song_artist: + (*(enc_track->disc_artist))?enc_track->disc_artist:"Unknown", + (*(enc_track->disc_name))?enc_track->disc_name:"Unknown", + year,comment->str,enc_track->id3_genre, + enc_track->track_num+1,ginfo->id3v2_encoding); + } +#endif + if(ginfo->doid3) { + ID3v1TagFile(file,(*(enc_track->song_name))?enc_track->song_name:"Unknown", + (*(enc_track->song_artist))?enc_track->song_artist: + (*(enc_track->disc_artist))?enc_track->disc_artist:"Unknown", + (*(enc_track->disc_name))?enc_track->disc_name:"Unknown", + year,comment->str,enc_track->id3_genre, + enc_track->track_num+1,ginfo->id3_encoding); + } + + g_string_free(comment,TRUE); +} + +static void DoWavFilter(GripInfo *ginfo) +{ + EncodeTrack enc_track; + + FillInTrackInfo(ginfo,ginfo->rip_track,&enc_track); + strcpy(enc_track.wav_filename,ginfo->ripfile); + + TranslateAndLaunch(ginfo->wav_filter_cmd,TranslateSwitch,&enc_track, + FALSE,&(ginfo->sprefs),CloseStuff,(void *)ginfo); +} + +static void DoDiscFilter(GripInfo *ginfo) +{ + EncodeTrack enc_track; + + FillInTrackInfo(ginfo,ginfo->rip_track,&enc_track); + strcpy(enc_track.wav_filename,ginfo->ripfile); + + TranslateAndLaunch(ginfo->disc_filter_cmd,TranslateSwitch,&enc_track, + FALSE,&(ginfo->sprefs),CloseStuff,(void *)ginfo); +} + +void UpdateRipProgress(GripInfo *ginfo) +{ + GripGUI *uinfo; + struct stat mystat; + int quarter; + gfloat percent=0; + int mycpu; + char buf[PATH_MAX]; + time_t now; + gfloat elapsed=0; + gfloat speed; + gboolean result=FALSE; + char *conv_str; + gsize rb,wb; + + uinfo=&(ginfo->gui_info); + + if(ginfo->ripping) { + if(stat(ginfo->ripfile,&mystat)>=0) { + percent=(gfloat)mystat.st_size/(gfloat)ginfo->ripsize; + if(percent>1.0) percent=1.0; + } + else { + percent=0; + } + + ginfo->rip_percent = percent; + + gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->ripprogbar),percent); + + now = time(NULL); + elapsed = (gfloat)now - (gfloat)ginfo->rip_started; + + /* 1x is 44100*2*2 = 176400 bytes/sec */ + if(elapsed < 0.1f) /* 1/10 sec. */ + speed=0.0f; /* Avoid divide-by-0 at start */ + else + speed=(gfloat)(mystat.st_size)/(176400.0f*elapsed); + + /* startup */ + if(speed >= 50.0f) { + speed = 0.0f; + ginfo->rip_started = now; + } + + sprintf(buf,_("Rip: Trk %d (%3.1fx)"),ginfo->rip_track+1,speed); + + gtk_label_set(GTK_LABEL(uinfo->rip_prog_label),buf); + + quarter=(int)(percent*4.0); + + if(quarter<4) + CopyPixmap(GTK_PIXMAP(uinfo->rip_pix[quarter]), + GTK_PIXMAP(uinfo->rip_indicator)); + +#ifdef CDPAR + if(ginfo->using_builtin_cdp) { + if(uinfo->minimized) + CopyPixmap(GTK_PIXMAP(uinfo->smile_pix[ginfo->rip_smile_level]), + GTK_PIXMAP(uinfo->lcd_smile_indicator)); + else + CopyPixmap(GTK_PIXMAP(uinfo->smile_pix[ginfo->rip_smile_level]), + GTK_PIXMAP(uinfo->smile_indicator)); + } +#endif + + /* Overall rip */ + if(ginfo->rip_started!=now && !ginfo->rip_partial && ginfo->ripping + && !ginfo->stop_rip) { + ginfo->all_ripdone+=mystat.st_size-ginfo->all_riplast; + ginfo->all_riplast=mystat.st_size; + percent=(gfloat)(ginfo->all_ripdone)/(gfloat)(ginfo->all_ripsize); + + if(percent>1.0) + percent=0.0; + + ginfo->rip_tot_percent = percent; + + sprintf(buf,_("Rip: %6.2f%%"),percent*100.0); + gtk_label_set(GTK_LABEL(uinfo->all_rip_label),buf); + gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->all_ripprogbar),percent); + } else if (ginfo->stop_rip) { + gtk_label_set(GTK_LABEL(uinfo->all_rip_label),_("Rip: Idle")); + + gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->all_ripprogbar),0.0); + } + + /* Check if a rip finished */ + if((ginfo->using_builtin_cdp&&!ginfo->in_rip_thread) || + (!ginfo->using_builtin_cdp&&waitpid(ginfo->rippid,NULL,WNOHANG))) { + if(!ginfo->using_builtin_cdp) waitpid(ginfo->rippid,NULL,0); + else { + CopyPixmap(GTK_PIXMAP(uinfo->empty_image), + GTK_PIXMAP(uinfo->lcd_smile_indicator)); + CopyPixmap(GTK_PIXMAP(uinfo->empty_image), + GTK_PIXMAP(uinfo->smile_indicator)); + } + + LogStatus(ginfo,_("Rip finished\n")); + ginfo->all_riplast=0; + ginfo->ripping=FALSE; + SetChecked(uinfo,ginfo->rip_track,FALSE); + +#ifdef CDPAR + /* Get the title gain */ + if(ginfo->using_builtin_cdp && ginfo->calc_gain) { + ginfo->track_gain_adjustment=GetTitleGain(); + } +#endif + + /* Do filtering of .wav file */ + + if(*ginfo->wav_filter_cmd) DoWavFilter(ginfo); + + gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->ripprogbar),0.0); + CopyPixmap(GTK_PIXMAP(uinfo->empty_image), + GTK_PIXMAP(uinfo->rip_indicator)); + + if(!ginfo->stop_rip) { + if(ginfo->doencode) { + AddToEncode(ginfo,ginfo->rip_track); + MP3Encode(ginfo); + } + + Debug(_("Rip partial %d num wavs %d\n"),ginfo->rip_partial, + ginfo->num_wavs); + + Debug(_("Next track is %d, total is %d\n"), + NextTrackToRip(ginfo),ginfo->disc.num_tracks); + + if(!ginfo->rip_partial&& + (ginfo->num_wavsmax_wavs|| + NextTrackToRip(ginfo)==ginfo->disc.num_tracks)) { + Debug(_("Check if we need to rip another track\n")); + if(!RipNextTrack(ginfo)) RipIsFinished(ginfo,FALSE); + else { gtk_label_set(GTK_LABEL(uinfo->rip_prog_label),_("Rip: Idle")); } + } + else { gtk_label_set(GTK_LABEL(uinfo->rip_prog_label),_("Rip: Idle")); } + } + else { + RipIsFinished(ginfo,TRUE); + } + } + } + else { + if(ginfo->stop_rip) { + RipIsFinished(ginfo,TRUE); + } + } + + /* Check if an encode finished */ + for(mycpu=0;mycpunum_cpu;mycpu++){ + if(ginfo->encoding&(1<mp3file[mycpu],&mystat)>=0) { + percent=(gfloat)mystat.st_size/(gfloat)ginfo->mp3size[mycpu]; + if(percent>1.0) percent=1.0; + } + else { + percent=0; + } + + ginfo->enc_percent = percent; + + gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->mp3progbar[mycpu]), + percent); + + now = time(NULL); + elapsed = (gfloat)now - (gfloat)ginfo->mp3_started[mycpu]; + + if(elapsed < 0.1f) /* 1/10 sec. */ + speed=0.0f; + else + speed=(gfloat)mystat.st_size/ + ((gfloat)ginfo->kbits_per_sec * 128.0f * elapsed); + + sprintf(buf,_("Enc: Trk %d (%3.1fx)"), + ginfo->mp3_enc_track[mycpu]+1,speed); + + gtk_label_set(GTK_LABEL(uinfo->mp3_prog_label[mycpu]),buf); + + quarter=(int)(percent*4.0); + + if(quarter<4) + CopyPixmap(GTK_PIXMAP(uinfo->mp3_pix[quarter]), + GTK_PIXMAP(uinfo->mp3_indicator[mycpu])); + if (!ginfo->rip_partial && !ginfo->stop_encode && + now!=ginfo->mp3_started[mycpu]) { + ginfo->all_encdone+=mystat.st_size-ginfo->all_enclast[mycpu]; + ginfo->all_enclast[mycpu]=mystat.st_size; + percent=(gfloat)(ginfo->all_encdone)/(gfloat)(ginfo->all_encsize); + if (percent>1.0) + percent=1.0; + ginfo->enc_tot_percent = percent; + sprintf(buf,_("Enc: %6.2f%%"),percent*100.0); + gtk_label_set(GTK_LABEL(uinfo->all_enc_label),buf); + gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->all_encprogbar), + percent); + } + + if(waitpid(ginfo->mp3pid[mycpu],NULL,WNOHANG)) { + waitpid(ginfo->mp3pid[mycpu],NULL,0); + ginfo->encoding&=~(1<all_enclast[mycpu]=0; + gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->mp3progbar[mycpu]), + 0.0); + CopyPixmap(GTK_PIXMAP(uinfo->empty_image), + GTK_PIXMAP(uinfo->mp3_indicator[mycpu])); + + if(ginfo->doencode) ginfo->num_wavs--; + + if(!ginfo->stop_encode) { + if(ginfo->delete_wavs) { + conv_str=g_filename_to_utf8(ginfo->rip_delete_file[mycpu], + strlen(ginfo->rip_delete_file[mycpu]), + &rb,&wb,NULL); + + if(!conv_str) + conv_str=g_strdup(ginfo->rip_delete_file[mycpu]); + + LogStatus(ginfo,_("Deleting [%s]\n"),conv_str,&rb,&wb,NULL); + + g_free(conv_str); + + unlink(ginfo->rip_delete_file[mycpu]); + } + + if(ginfo->doid3 || ginfo->doid3v2) + ID3Add(ginfo,ginfo->mp3file[mycpu], + ginfo->encoded_track[mycpu]); + + if(ginfo->add_to_db) AddSQLEntry(ginfo,ginfo->encoded_track[mycpu]); + + if(*ginfo->mp3_filter_cmd) + TranslateAndLaunch(ginfo->mp3_filter_cmd,TranslateSwitch, + ginfo->encoded_track[mycpu],FALSE, + &(ginfo->sprefs),CloseStuff,(void *)ginfo); + + + if(ginfo->ripping_a_disc&&!ginfo->rip_partial&& + !ginfo->ripping&&ginfo->num_wavsmax_wavs) { + if(RipNextTrack(ginfo)) ginfo->doencode=TRUE; + else RipIsFinished(ginfo,FALSE); + } + + g_free(ginfo->encoded_track[mycpu]); + + if(!ginfo->rip_partial&&ginfo->encode_list) { + MP3Encode(ginfo); + } + } + else ginfo->stop_encode=FALSE; + + if(!(ginfo->encoding&(1<mp3_prog_label[mycpu]), + _("Enc: Idle")); + } + } + } + } + /* Check if we have any encoding process (now or in future) */ + for (mycpu=0;mycpunum_cpu;++mycpu) { + if (ginfo->encoding & (1<stop_encode) && + !ginfo->encode_list && !ginfo->ripping) { + gtk_label_set(GTK_LABEL(uinfo->all_enc_label),_("Enc: Idle")); + gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->all_encprogbar),0.0); + } +} + +static void RipIsFinished(GripInfo *ginfo,gboolean aborted) +{ + GripGUI *uinfo; + LogStatus(ginfo,_("Ripping is finished\n")); + + uinfo=&(ginfo->gui_info); + ginfo->all_ripsize=0; + ginfo->all_ripdone=0; + ginfo->all_riplast=0; + + gtk_label_set(GTK_LABEL(uinfo->rip_prog_label),_("Rip: Idle")); + gtk_label_set(GTK_LABEL(uinfo->all_rip_label),_("Rip: Idle")); + gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->all_ripprogbar),0.0); + + ginfo->stop_rip=FALSE; + ginfo->ripping=FALSE; + ginfo->ripping_a_disc=FALSE; + ginfo->rip_finished=time(NULL); + + /* Re-open the cdrom device if it was closed */ + if(ginfo->disc.cd_desc<0) CDInitDevice(ginfo->disc.devname,&(ginfo->disc)); + + /* Do post-rip stuff only if we weren't explicitly aborted */ + if(!aborted) { + if(ginfo->beep_after_rip) printf("%c%c",7,7); + +#ifdef CDPAR + if(ginfo->using_builtin_cdp && ginfo->calc_gain) { + ginfo->disc_gain_adjustment=GetAlbumGain(); + } +#endif + + if(*ginfo->disc_filter_cmd) + DoDiscFilter(ginfo); + + if(ginfo->delayed_encoding) { + ginfo->encode_list = g_list_concat(ginfo->encode_list, + ginfo->pending_list); + ginfo->pending_list = NULL; + + /* Start an encoder on all free CPUs + * This is really only useful the first time through */ + while (MP3Encode(ginfo)); + } + + if(ginfo->eject_after_rip) { + /* Reset rip_finished since we're ejecting */ + ginfo->rip_finished=0; + + EjectDisc(NULL,ginfo); + + if(ginfo->eject_delay) ginfo->auto_eject_countdown=ginfo->eject_delay; + } + } +} + +char *TranslateSwitch(char switch_char,void *data,gboolean *munge) +{ + static char res[PATH_MAX]; + EncodeTrack *enc_track; + gchar *conv_str,*st; + gsize rb,wb; + + enc_track=(EncodeTrack *)data; + + switch(switch_char) { + case 'b': + g_snprintf(res,PATH_MAX,"%d",enc_track->ginfo->kbits_per_sec); + *munge=FALSE; + break; + case 'c': + g_snprintf(res,PATH_MAX,"%s",enc_track->ginfo->cd_device); + *munge=FALSE; + break; + case 'C': + if(*enc_track->ginfo->force_scsi) { + g_snprintf(res,PATH_MAX,"%s",enc_track->ginfo->force_scsi); + } + else { + g_snprintf(res,PATH_MAX,"%s",enc_track->ginfo->cd_device); + } + *munge=FALSE; + break; + case 'w': + g_snprintf(res,PATH_MAX,"%s",enc_track->wav_filename); + *munge=FALSE; + break; + case 'm': + g_snprintf(res,PATH_MAX,"%s",enc_track->mp3_filename); + *munge=FALSE; + break; + case 't': + g_snprintf(res,PATH_MAX,"%02d",enc_track->track_num+1); + *munge=FALSE; + break; + case 's': + g_snprintf(res,PATH_MAX,"%d",enc_track->ginfo->start_sector); + *munge=FALSE; + break; + case 'e': + g_snprintf(res,PATH_MAX,"%d",enc_track->ginfo->end_sector); + *munge=FALSE; + break; + case 'n': + if(*(enc_track->song_name)) + g_snprintf(res,PATH_MAX,"%s",enc_track->song_name); + else g_snprintf(res,PATH_MAX,"Track%02d",enc_track->track_num+1); + break; + case 'a': + if(*(enc_track->song_artist)) + g_snprintf(res,PATH_MAX,"%s",enc_track->song_artist); + else { + if(*(enc_track->disc_artist)) + g_snprintf(res,PATH_MAX,"%s",enc_track->disc_artist); + else strncpy(res,_("NoArtist"),PATH_MAX); + } + break; + case 'A': + if(*(enc_track->disc_artist)) + g_snprintf(res,PATH_MAX,"%s",enc_track->disc_artist); + else strncpy(res,_("NoArtist"),PATH_MAX); + break; + case 'd': + if(*(enc_track->disc_name)) + g_snprintf(res,PATH_MAX,"%s",enc_track->disc_name); + else strncpy(res,_("NoTitle"),PATH_MAX); + break; + case 'i': + g_snprintf(res,PATH_MAX,"%08x",enc_track->discid); + *munge=FALSE; + break; + case 'y': + g_snprintf(res,PATH_MAX,"%d",enc_track->song_year); + *munge=FALSE; + break; + case 'g': + g_snprintf(res,PATH_MAX,"%d",enc_track->id3_genre); + *munge=FALSE; + break; + case 'G': + g_snprintf(res,PATH_MAX,"%s",ID3GenreString(enc_track->id3_genre)); + break; +#ifdef CDPAR + case 'r': + g_snprintf(res,PATH_MAX,"%+6.2f",enc_track->track_gain_adjustment); + *munge=FALSE; + break; + case 'R': + g_snprintf(res,PATH_MAX,"%+6.2f",enc_track->disc_gain_adjustment); + *munge=FALSE; + break; +#endif + case 'x': + g_snprintf(res,PATH_MAX,"%s",enc_track->ginfo->mp3extension); + *munge=FALSE; + break; + default: + *res='\0'; + break; + } + + return res; +} + + +static void CheckDupNames(GripInfo *ginfo) +{ + int track,track2; + int numdups[MAX_TRACKS]; + int count; + char buf[256]; + + for(track=0;trackdisc.num_tracks;track++) + numdups[track]=0; + + for(track=0;track<(ginfo->disc.num_tracks-1);track++) { + if(!numdups[track]) { + count=0; + + for(track2=track+1;track2disc.num_tracks;track2++) { + if(!strcmp(ginfo->ddata.data_track[track].track_name, + ginfo->ddata.data_track[track2].track_name)) + numdups[track2]=++count; + } + } + } + + for(track=0;trackdisc.num_tracks;track++) { + if(numdups[track]) { + g_snprintf(buf,260,"%s (%d)",ginfo->ddata.data_track[track].track_name, + numdups[track]+1); + + strcpy(ginfo->ddata.data_track[track].track_name,buf); + } + } +} + +void DoRipEncode(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + + ginfo=(GripInfo *)data; + + DoRip(NULL,(gpointer)ginfo); +} + +void DoRip(GtkWidget *widget,gpointer data) +{ + GripInfo *ginfo; + gboolean result; + + ginfo=(GripInfo *)data; + + if(!ginfo->have_disc) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("No disc was detected in the drive. If you have a disc in your drive, please check your CDRom device setting under Config->CD.")); + return; + } + + if(widget) ginfo->doencode=FALSE; + else ginfo->doencode=TRUE; + + if(!ginfo->using_builtin_cdp&&!FileExists(ginfo->ripexename)) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Invalid rip executable.\nCheck your rip config, and ensure it specifies the full path to the ripper executable.")); + + ginfo->doencode=FALSE; + return; + } + + if(ginfo->doencode&&!FileExists(ginfo->mp3exename)) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Invalid encoder executable.\nCheck your encoder config, and ensure it specifies the full path to the encoder executable.")); + + ginfo->doencode=FALSE; + return; + } + + CDStop(&(ginfo->disc)); + ginfo->stopped=TRUE; + + /* Close the device so as not to conflict with ripping */ + CDCloseDevice(&(ginfo->disc)); + + if(ginfo->ripping) { + ginfo->doencode=FALSE; + return; + } + +#ifdef CDPAR + /* Initialize gain calculation */ + if(ginfo->using_builtin_cdp && ginfo->calc_gain) + InitGainAnalysis(44100); +#endif + + CheckDupNames(ginfo); + + if(ginfo->rip_partial) + ginfo->rip_track=CURRENT_TRACK; + else { + if(ginfo->add_m3u) AddM3U(ginfo); + SetCurrentTrackIndex(ginfo,0); + ginfo->rip_track=0; + } + + if(NextTrackToRip(ginfo)==ginfo->disc.num_tracks) { + gnome_app_ok_cancel_modal + ((GnomeApp *)ginfo->gui_info.app, + _("No tracks selected.\nRip whole CD?\n"), + RipWholeCD,(gpointer)ginfo); + return; + } + + ginfo->stop_rip=FALSE; + + CalculateAll(ginfo); + + result=RipNextTrack(ginfo); + + if(!result) { + ginfo->doencode=FALSE; + } +} + +static void RipWholeCD(gint reply,gpointer data) +{ + int track; + GripInfo *ginfo; + + if(reply) return; + + Debug(_("Ripping whole CD\n")); + + ginfo=(GripInfo *)data; + + for(track=0;trackdisc.num_tracks;++track) + SetChecked(&(ginfo->gui_info),track,TRUE); + + if(ginfo->doencode) DoRip(NULL,(gpointer)ginfo); + else DoRip((GtkWidget *)1,(gpointer)ginfo); +} + +static int NextTrackToRip(GripInfo *ginfo) +{ + int track; + + for(track=0;(trackdisc.num_tracks)&& + (!TrackIsChecked(&(ginfo->gui_info),track)|| + IsDataTrack(&(ginfo->disc),track));track++); + + return track; +} + +static gboolean RipNextTrack(GripInfo *ginfo) +{ + GripGUI *uinfo; + char tmp[PATH_MAX]; + int arg; + GString *args[100]; + char *char_args[101]; + unsigned long long bytesleft; + struct stat mystat; + GString *str; + EncodeTrack enc_track; + char *conv_str, *utf8_ripfile; + gsize rb,wb; + const char *charset; + + uinfo=&(ginfo->gui_info); + + Debug(_("In RipNextTrack\n")); + + if(ginfo->ripping) return FALSE; + + if(!ginfo->rip_partial) + ginfo->rip_track=NextTrackToRip(ginfo); + + Debug(_("First checked track is %d\n"),ginfo->rip_track+1); + + /* See if we are finished ripping */ + if(ginfo->rip_track==ginfo->disc.num_tracks) { + return FALSE; + } + + /* We have a track to rip */ + + if(ginfo->have_disc&&ginfo->rip_track>=0) { + Debug(_("Ripping away!\n")); + + /* if(!ginfo->rip_partial){ + gtk_clist_select_row(GTK_CLIST(uinfo->trackclist),ginfo->rip_track,0); + }*/ + + CopyPixmap(GTK_PIXMAP(uinfo->rip_pix[0]),GTK_PIXMAP(uinfo->rip_indicator)); + + if(ginfo->stop_between_tracks) + CDStop(&(ginfo->disc)); + + if(!ginfo->rip_partial) { + ginfo->start_sector=0; + ginfo->end_sector=(ginfo->disc.track[ginfo->rip_track+1].start_frame-1)- + ginfo->disc.track[ginfo->rip_track].start_frame; + + /* Compensate for the gap before a data track */ + if((ginfo->rip_track<(ginfo->disc.num_tracks-1)&& + IsDataTrack(&(ginfo->disc),ginfo->rip_track+1)&& + (ginfo->end_sector-ginfo->start_sector)>11399)) + ginfo->end_sector-=11400; + } + + ginfo->ripsize=44+((ginfo->end_sector-ginfo->start_sector)+1)*2352; + + str=g_string_new(NULL); + FillInTrackInfo(ginfo,ginfo->rip_track,&enc_track); + + TranslateString(ginfo->ripfileformat,str,TranslateSwitch, + &enc_track,TRUE,&(ginfo->sprefs)); + + g_get_charset(&charset); + + conv_str=g_filename_from_utf8(str->str,strlen(str->str),&rb,&wb,NULL); + + if(!conv_str) { + conv_str=g_strdup(str->str); + } + + g_snprintf(ginfo->ripfile,256,"%s",conv_str); + + g_free(conv_str); + g_string_free(str,TRUE); + + MakeDirs(ginfo->ripfile); + if(!CanWrite(ginfo->ripfile)) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("No write access to write wav file")); + return FALSE; + } + + /* Workaround for drives that spin up slowly */ + if(ginfo->delay_before_rip) { + sleep(5); + } + + utf8_ripfile=g_filename_to_utf8(ginfo->ripfile,strlen(ginfo->ripfile), + &rb,&wb,NULL); + + if(!utf8_ripfile) utf8_ripfile=strdup(ginfo->ripfile); + + LogStatus(ginfo,_("Ripping track %d to %s\n"), + ginfo->rip_track+1,utf8_ripfile); + + ginfo->rip_started = time(NULL); + sprintf(tmp,_("Rip: Trk %d (0.0x)"),ginfo->rip_track+1); + gtk_label_set(GTK_LABEL(uinfo->rip_prog_label),tmp); + + if(stat(ginfo->ripfile,&mystat)>=0) { + if(mystat.st_size == ginfo->ripsize) { + LogStatus(ginfo,_("File %s has already been ripped. Skipping...\n"),\ + utf8_ripfile); + + g_free(utf8_ripfile); + + if(ginfo->doencode) ginfo->num_wavs++; + ginfo->ripping=TRUE; + ginfo->ripping_a_disc=TRUE; + ginfo->all_ripdone+=CalculateWavSize(ginfo,ginfo->rip_track); + ginfo->all_riplast=0; + return TRUE; + } + else unlink(ginfo->ripfile); + } + + g_free(utf8_ripfile); + + bytesleft=BytesLeftInFS(ginfo->ripfile); + + if(bytesleft<(ginfo->ripsize*1.5)) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Out of space in output directory")); + + return FALSE; + } + +#ifdef CDPAR + if(ginfo->selected_ripper==0) { + ginfo->in_rip_thread=TRUE; + + pthread_create(&ginfo->cdp_thread,NULL,(void *)ThreadRip, + (void *)ginfo); + pthread_detach(ginfo->cdp_thread); + } + else { +#endif + strcpy(enc_track.wav_filename,ginfo->ripfile); + + MakeTranslatedArgs(ginfo->ripcmdline,args,100,TranslateSwitch, + &enc_track,FALSE,&(ginfo->sprefs)); + +/* + ArgsToLocale(args); +*/ + + for(arg=0;args[arg];arg++) { + char_args[arg+1]=args[arg]->str; + } + + char_args[arg+1]=NULL; + + char_args[0]=FindRoot(ginfo->ripexename); + + ginfo->curr_pipe_fd= + GetStatusWindowPipe(ginfo->gui_info.rip_status_window); + + ginfo->rippid=fork(); + + if(ginfo->rippid==0) { + CloseStuff(ginfo); + nice(ginfo->ripnice); + execv(ginfo->ripexename,char_args); + + LogStatus(ginfo,_("Exec failed\n")); + _exit(0); + } + else { + ginfo->curr_pipe_fd=-1; + } + + for(arg=0;args[arg];arg++) { + g_string_free(args[arg],TRUE); + } +#ifdef CDPAR + } +#endif + + ginfo->ripping=TRUE; + ginfo->ripping_a_disc=TRUE; + + if(ginfo->doencode) ginfo->num_wavs++; + + return TRUE; + } + else return FALSE; +} + +#ifdef CDPAR +static void ThreadRip(void *arg) +{ + GripInfo *ginfo; + int paranoia_mode; + int dup_output_fd; + FILE *output_fp; + + ginfo=(GripInfo *)arg; + + Debug(_("Calling CDPRip\n")); + + paranoia_mode=PARANOIA_MODE_FULL^PARANOIA_MODE_NEVERSKIP; + if(ginfo->disable_paranoia) + paranoia_mode=PARANOIA_MODE_DISABLE; + else if(ginfo->disable_extra_paranoia) { + paranoia_mode|=PARANOIA_MODE_OVERLAP; + paranoia_mode&=~PARANOIA_MODE_VERIFY; + } + if(ginfo->disable_scratch_detect) + paranoia_mode&= + ~(PARANOIA_MODE_SCRATCH|PARANOIA_MODE_REPAIR); + if(ginfo->disable_scratch_repair) + paranoia_mode&=~PARANOIA_MODE_REPAIR; + + ginfo->rip_smile_level=0; + + nice(ginfo->ripnice); + + dup_output_fd=dup(GetStatusWindowPipe(ginfo->gui_info.rip_status_window)); + output_fp=fdopen(dup_output_fd,"w"); + setlinebuf(output_fp); + + CDPRip(ginfo->cd_device,ginfo->force_scsi,ginfo->rip_track+1, + ginfo->start_sector, + ginfo->end_sector,ginfo->ripfile,paranoia_mode, + &(ginfo->rip_smile_level),&(ginfo->rip_percent_done), + &(ginfo->stop_thread_rip_now),ginfo->calc_gain, + output_fp); + + fclose(output_fp); + + ginfo->in_rip_thread=FALSE; + + pthread_exit(0); +} +#endif /* ifdef CDPAR */ + +void FillInTrackInfo(GripInfo *ginfo,int track,EncodeTrack *new_track) +{ + new_track->ginfo=ginfo; + + new_track->wav_filename[0]='\0'; + new_track->mp3_filename[0]='\0'; + + new_track->track_num=track; + new_track->start_frame=ginfo->disc.track[track].start_frame; + new_track->end_frame=ginfo->disc.track[track+1].start_frame-1; +#ifdef CDPAR + new_track->track_gain_adjustment=ginfo->track_gain_adjustment; + new_track->disc_gain_adjustment=ginfo->disc_gain_adjustment; +#endif + + /* Compensate for the gap before a data track */ + if((track<(ginfo->disc.num_tracks-1)&& + IsDataTrack(&(ginfo->disc),track+1)&& + (new_track->end_frame-new_track->start_frame)>11399)) + new_track->end_frame-=11400; + + new_track->mins=ginfo->disc.track[track].length.mins; + new_track->secs=ginfo->disc.track[track].length.secs; + new_track->song_year=ginfo->ddata.data_year; + g_snprintf(new_track->song_name,256,"%s", + ginfo->ddata.data_track[track].track_name); + g_snprintf(new_track->song_artist,256,"%s", + ginfo->ddata.data_track[track].track_artist); + g_snprintf(new_track->disc_name,256,"%s",ginfo->ddata.data_title); + g_snprintf(new_track->disc_artist,256,"%s",ginfo->ddata.data_artist); + new_track->id3_genre=ginfo->ddata.data_id3genre; + new_track->discid=ginfo->ddata.data_id; +} + +static void AddToEncode(GripInfo *ginfo,int track) +{ + EncodeTrack *new_track; + + new_track=(EncodeTrack *)g_new(EncodeTrack,1); + + FillInTrackInfo(ginfo,track,new_track); + strcpy(new_track->wav_filename,ginfo->ripfile); + + if (!ginfo->delayed_encoding) + ginfo->encode_list=g_list_append(ginfo->encode_list,new_track); + else + ginfo->pending_list=g_list_append(ginfo->pending_list,new_track); + + Debug(_("Added track %d to %s list\n"),track+1, + ginfo->delayed_encoding ? "pending" : "encoding"); +} + +static gboolean MP3Encode(GripInfo *ginfo) +{ + GripGUI *uinfo; + char tmp[PATH_MAX]; + int arg; + GString *args[100]; + char *char_args[101]; + unsigned long long bytesleft; + EncodeTrack *enc_track; + GString *str; + int encode_track; + int cpu; + char *conv_str; + gsize rb,wb; + + uinfo=&(ginfo->gui_info); + + if(!ginfo->encode_list) return FALSE; + + for(cpu=0;(cpunum_cpu)&&(ginfo->encoding&(1<num_cpu) { + Debug(_("No free cpus\n")); + return FALSE; + } + + enc_track=(EncodeTrack *)(g_list_first(ginfo->encode_list)->data); + encode_track=enc_track->track_num; + + ginfo->encode_list=g_list_remove(ginfo->encode_list,enc_track); + ginfo->encoded_track[cpu]=enc_track; + + CopyPixmap(GTK_PIXMAP(uinfo->mp3_pix[0]), + GTK_PIXMAP(uinfo->mp3_indicator[cpu])); + + ginfo->mp3_started[cpu] = time(NULL); + ginfo->mp3_enc_track[cpu] = encode_track; + + Debug(_("Enc track %d\n"),encode_track+1); + + strcpy(ginfo->rip_delete_file[cpu],enc_track->wav_filename); + + str=g_string_new(NULL); + + TranslateString(ginfo->mp3fileformat,str,TranslateSwitch, + enc_track,TRUE,&(ginfo->sprefs)); + + conv_str=g_filename_from_utf8(str->str,strlen(str->str),&rb,&wb,NULL); + + if(!conv_str) + conv_str=g_strdup(str->str); + + g_snprintf(ginfo->mp3file[cpu],256,"%s",conv_str); + + g_free(conv_str); + g_string_free(str,TRUE); + + MakeDirs(ginfo->mp3file[cpu]); + if(!CanWrite(ginfo->mp3file[cpu])) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("No write access to write encoded file.")); + return FALSE; + } + + bytesleft=BytesLeftInFS(ginfo->mp3file[cpu]); + + conv_str=g_filename_to_utf8(ginfo->mp3file[cpu],strlen(ginfo->mp3file[cpu]), + &rb,&wb,NULL); + + if(!conv_str) conv_str=strdup(ginfo->mp3file[cpu]); + + LogStatus(ginfo,_("%i: Encoding to %s\n"),cpu+1,conv_str); + + g_free(conv_str); + + sprintf(tmp,_("Enc: Trk %d (0.0x)"),encode_track+1); + gtk_label_set(GTK_LABEL(uinfo->mp3_prog_label[cpu]),tmp); + + unlink(ginfo->mp3file[cpu]); + + ginfo->mp3size[cpu]= + (int)((gfloat)((enc_track->end_frame-enc_track->start_frame)+1)* + (gfloat)(ginfo->kbits_per_sec*1024)/600.0); + + if(bytesleft<(ginfo->mp3size[cpu]*1.5)) { + gnome_app_warning((GnomeApp *)ginfo->gui_info.app, + _("Out of space in output directory")); + + return FALSE; + } + + strcpy(enc_track->mp3_filename,ginfo->mp3file[cpu]); + + MakeTranslatedArgs(ginfo->mp3cmdline,args,100,TranslateSwitch, + enc_track,FALSE,&(ginfo->sprefs)); + +/* + ArgsToLocale(args); +*/ + + for(arg=0;args[arg];arg++) { + char_args[arg+1]=args[arg]->str; + } + + char_args[arg+1]=NULL; + + char_args[0]=FindRoot(ginfo->mp3exename); + + ginfo->curr_pipe_fd= + GetStatusWindowPipe(ginfo->gui_info.encode_status_window); + + ginfo->mp3pid[cpu]=fork(); + + if(ginfo->mp3pid[cpu]==0) { + CloseStuff(ginfo); + setsid(); + nice(ginfo->mp3nice); + execv(ginfo->mp3exename,char_args); + _exit(0); + } + else { + ginfo->curr_pipe_fd=-1; + } + + for(arg=0;args[arg];arg++) { + g_string_free(args[arg],TRUE); + } + + ginfo->encoding|=(1<gui_info); + + Debug(_("In CalculateAll\n")); + + ginfo->all_ripsize=0; + ginfo->all_ripdone=0; + ginfo->all_riplast=0; + if (!ginfo->encoding) { + Debug(_("We aren't ripping now, so let's zero encoding values\n")); + ginfo->all_encsize=0; + ginfo->all_encdone=0; + for (cpu=0;cpunum_cpu;++cpu) + ginfo->all_enclast[cpu]=0; + } + if (ginfo->rip_partial) + return; + + for (track=0;trackdisc.num_tracks;++track) { + if (!IsDataTrack(&(ginfo->disc),track) && + (TrackIsChecked(uinfo,track))) { + ginfo->all_ripsize+=CalculateWavSize(ginfo,track); + ginfo->all_encsize+=CalculateEncSize(ginfo,track); + } + } + Debug(_("Total rip size is: %d\n"),ginfo->all_ripsize); + Debug(_("Total enc size is: %d\n"),ginfo->all_encsize); +} + +static size_t CalculateWavSize(GripInfo *ginfo, int track) +{ + int frames; + + frames=(ginfo->disc.track[track+1].start_frame-1)- + ginfo->disc.track[track].start_frame; + if ((track<(ginfo->disc.num_tracks)-1) && + (IsDataTrack(&(ginfo->disc),track+1)) && + (frames>11399)) + frames-=11400; + return frames*2352; +} + +static size_t CalculateEncSize(GripInfo *ginfo, int track) +{ + double tmp_encsize=0.0; + /* It's not the best way, but i couldn't find anything better */ + tmp_encsize=(double)((ginfo->disc.track[track].length.mins*60+ + ginfo->disc.track[track].length.secs-2)* + ginfo->kbits_per_sec*1024/8); + tmp_encsize-=tmp_encsize*0.0154; + if (ginfo->add_m3u) + tmp_encsize+=128; + return (size_t)tmp_encsize; +} diff --git a/src/rip.h b/src/rip.h new file mode 100644 index 0000000..2c02c21 --- /dev/null +++ b/src/rip.h @@ -0,0 +1,76 @@ +/* rip.h + * + * Copyright (c) 1998-2002 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * 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 + */ + +#ifndef GRIP_RIP_H +#define GRIP_RIP_H + +/* Encode list structure */ + +typedef struct _encode_track { + GripInfo *ginfo; + int track_num; + int start_frame; + int end_frame; + char song_name[256]; + char song_artist[256]; + char disc_name[256]; + char disc_artist[256]; + char wav_filename[256]; + char mp3_filename[256]; + int song_year; + int id3_genre; + int mins; + int secs; + int discid; +#ifdef CDPAR + double track_gain_adjustment; + double disc_gain_adjustment; +#endif +} EncodeTrack; + + +void MakeRipPage(GripInfo *ginfo); +gboolean FileExists(char *filename); +gboolean IsDir(char *path); +unsigned long long BytesLeftInFS(char *path); +char *FindExe(char *exename,char **paths); +char *FindRoot(char *str); +gboolean CanWrite(char *path); +void MakeDirs(char *path); +char *MakePath(char *str); +void KillRip(GtkWidget *widget,gpointer data); +void KillEncode(GtkWidget *widget,gpointer data); +void UpdateRipProgress(GripInfo *ginfo); +char *TranslateSwitch(char switch_char,void *data,gboolean *munge); +void DoRipEncode(GtkWidget *widget,gpointer data); +void DoRip(GtkWidget *widget,gpointer data); +void FillInTrackInfo(GripInfo *ginfo,int track,EncodeTrack *new_track); + +#ifdef CDPAR +gboolean CDPRip(char *device,char *generic_scsi_device,int track, + long first_sector,long last_sector, + char *outfile,int paranoia_mode,int *rip_smile_level, + gfloat *rip_percent_done,gboolean *stop_thread_rip_now, + gboolean do_gain_calc,FILE *output_fp); +#endif + +#endif /* ifndef GRIP_RIP_H */ diff --git a/src/status_window.c b/src/status_window.c new file mode 100644 index 0000000..0c982cc --- /dev/null +++ b/src/status_window.c @@ -0,0 +1,145 @@ +/* status_window.c -- routines for display status information + * + * Copyright (c) 1998-2004 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include +#include +#include +#include +#include +#include "status_window.h" + +static void PipeCB(gpointer data,gint source,GdkInputCondition condition); + +/* Create a new status window */ +StatusWindow *NewStatusWindow(GtkWidget *box) +{ + StatusWindow *sw; + GtkWidget *vscrollbar; + GtkWidget *hbox; + + sw=g_new(StatusWindow,1); + + if(!sw) return NULL; + + sw->pipe[0]=sw->pipe[1]=-1; + + if(box) { + sw->embedded=TRUE; + } + else { + sw->embedded=FALSE; + + /* Create new window here */ + } + + hbox=gtk_hbox_new(FALSE,3); + + /* sw->term_widget=zvt_term_new_with_size(40,10); + + gtk_box_pack_start(GTK_BOX(hbox),sw->term_widget,FALSE,FALSE,0); + gtk_widget_show(sw->term_widget); + + vscrollbar=gtk_vscrollbar_new(ZVT_TERM(sw->term_widget)->adjustment); + gtk_box_pack_start(GTK_BOX(hbox),vscrollbar,FALSE,FALSE,0); + gtk_widget_show(vscrollbar);*/ + + sw->term_widget=vte_terminal_new(); + + + vte_terminal_set_encoding(VTE_TERMINAL(sw->term_widget),"UTF-8"); + + /* vte_terminal_set_size(VTE_TERMINAL(sw->term_widget),40,10);*/ + + gtk_box_pack_start(GTK_BOX(hbox),sw->term_widget,TRUE,TRUE,0); + gtk_widget_show(sw->term_widget); + + vscrollbar=gtk_vscrollbar_new(VTE_TERMINAL(sw->term_widget)->adjustment); + gtk_box_pack_start(GTK_BOX(hbox),vscrollbar,FALSE,FALSE,0); + gtk_widget_show(vscrollbar); + + gtk_box_pack_start(GTK_BOX(box),hbox,TRUE,TRUE,0); + gtk_widget_show(hbox); + + return sw; +} + +/* Write a line of output to a status window */ +void StatusWindowWrite(StatusWindow *sw,char *msg) +{ + char *buf; + gsize len; + int pos=0; + + len=strlen(msg); + + buf=(char *)malloc((len*2)+1); + + while(*msg) { + if(1) { //!(*msg & (1<<7))) { + if(*msg=='\n') { + buf[pos++]='\r'; + buf[pos++]='\n'; + } + else { + buf[pos++]=*msg; + } + } + + msg++; + } + + buf[pos]='\0'; + + + /* zvt_term_feed((ZvtTerm *)sw->term_widget,buf,strlen(buf));*/ + + vte_terminal_feed(VTE_TERMINAL(sw->term_widget),buf,strlen(buf)); + + free(buf); +} + +/* Return the output pipe fd for a status window, opening the pipe + if necessary */ +int GetStatusWindowPipe(StatusWindow *sw) +{ + if(sw->pipe[1]>0) return sw->pipe[1]; + + pipe(sw->pipe); + + fcntl(sw->pipe[0],F_SETFL,O_NONBLOCK); + + gdk_input_add(sw->pipe[0],GDK_INPUT_READ,PipeCB,(gpointer)sw); + + return sw->pipe[1]; +} + +static void PipeCB(gpointer data,gint source,GdkInputCondition condition) +{ + char buf[256]; + StatusWindow *sw; + + sw=(StatusWindow *)data; + + while(read(sw->pipe[0],buf,256)>0) { + /* StatusWindowWrite(sw,buf);*/ + } +} diff --git a/src/status_window.h b/src/status_window.h new file mode 100644 index 0000000..cfd4727 --- /dev/null +++ b/src/status_window.h @@ -0,0 +1,35 @@ +/* status_window.h + * + * Copyright (c) 1998-2004 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include +/*#include */ + +typedef struct { + gboolean embedded; + GtkWidget *term_widget; + int pipe[2]; +} StatusWindow; + +StatusWindow *NewStatusWindow(GtkWidget *box); +void StatusWindowWrite(StatusWindow *sw,char *msg); +int GetStatusWindowPipe(StatusWindow *sw); + diff --git a/src/tray.c b/src/tray.c new file mode 100644 index 0000000..ab1592a --- /dev/null +++ b/src/tray.c @@ -0,0 +1,316 @@ +/* tray.c + * + * Copyright (c) 1998-2002 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include "tray.h" +#include "../pixmaps/rip1.xpm" +#include "../pixmaps/menuplay.xpm" +#include "../pixmaps/menupause.xpm" +#include "../pixmaps/menustop.xpm" +#include "../pixmaps/menuprev.xpm" +#include "../pixmaps/menunext.xpm" + +static void MakeTrayIcon(GripInfo *ginfo); +static void PlayCB(GtkWidget *widget, gpointer data); +static void PauseCB(GtkWidget *widget, gpointer data); +static void NextCB(GtkWidget *widget, gpointer data); +static void PrevCB(GtkWidget *widget, gpointer data); +static void StopCB(GtkWidget *widget, gpointer data); +static void RipEncCB(GtkWidget *widget, gpointer data); +static void QuitCB(GtkWidget *widget, gpointer data); +static gboolean TrayIconButtonPress(GtkWidget *widget, GdkEventButton *event, gpointer data); + +/* + * UpdateTray + * + * Main functionality implemented here; handles: + * - updating the tooltip + * - if the tray icon is to be shown/built + * - when to make menu sensitive/unsensitive + * - NOTE: ginfo->show_tray_icon is set in the Config -> Misc tab + */ + +void UpdateTray(GripInfo *ginfo) +{ + gchar *text, *riptext = NULL, *enctext = NULL; + gchar *artist = (ginfo->ddata.data_artist != "") ? ginfo->ddata.data_artist : _("Artist"); + gchar *title = (ginfo->ddata.data_title != "") ? ginfo->ddata.data_title : _("Title"); + GripGUI *uinfo = &(ginfo->gui_info); + + int tmin, tsec, emin, esec; + + /* Decide if the tray icon is going to be displayed or not */ + if (ginfo->show_tray_icon) { + if (!ginfo->tray_icon_made) + MakeTrayIcon(ginfo); + } else { + if (uinfo->tray_icon) { + gtk_widget_destroy(GTK_WIDGET(uinfo->tray_icon)); + uinfo->tray_icon = NULL; + } + ginfo->tray_icon_made = FALSE; + } + + /* tray icon is present so we can make our tooltip */ + if (ginfo->show_tray_icon) { + if (ginfo->playing) { + TrayUnGrayMenu(ginfo); + tmin = ginfo->disc.track[ginfo->current_track_index].length.mins; + tsec = ginfo->disc.track[ginfo->current_track_index].length.secs; + emin = ginfo->disc.track_time.mins; + esec = ginfo->disc.track_time.secs; + text = g_strdup_printf(_("%s - %s\n%02d:%02d of %02d:%02d"), artist, ginfo->ddata.data_track[ginfo->current_track_index].track_name, emin, esec, tmin, tsec); + } else if (!ginfo->playing) { + if (ginfo->ripping || ginfo->encoding) { + TrayGrayMenu(ginfo); + riptext = (ginfo->ripping) ? g_strdup_printf(_("Ripping Track %02d:\t%6.2f%% (%6.2f%% )"), ginfo->rip_track + 1, ginfo->rip_percent * 100, ginfo->rip_tot_percent * 100) : g_strdup_printf(""); + enctext = (ginfo->encoding) ? g_strdup_printf(_("Encoding Track %02d:\t%6.2f%% (%6.2f%% )"), ginfo->mp3_enc_track[0] + 1, ginfo->enc_percent * 100, ginfo->enc_tot_percent * 100) : g_strdup_printf(""); + text = g_strdup_printf(_("%s - %s\n%s%s%s"), artist, title, riptext, (ginfo->ripping && ginfo->encoding) ? "\n" : "", enctext); + } else { + TrayUnGrayMenu(ginfo); + text = g_strdup_printf(_("%s - %s\nIdle"), artist, title); + } + } + + gtk_tooltips_set_tip(GTK_TOOLTIPS(uinfo->tray_tips), uinfo->tray_ebox, text, NULL); + + if (riptext) g_free(riptext); + if (enctext) g_free(enctext); + g_free(text); + } +} + +/* + * TrayMenuShowPlay/TrayMenuShowPause + * + * - set whether the Play menu item or Pause menu item is displayed + */ + +void TrayMenuShowPlay(GripInfo *ginfo) +{ + GripGUI *uinfo = &(ginfo->gui_info); + + gtk_widget_hide(GTK_WIDGET(uinfo->tray_menu_pause)); + gtk_widget_show(GTK_WIDGET(uinfo->tray_menu_play)); +} + +void TrayMenuShowPause(GripInfo *ginfo) +{ + GripGUI *uinfo = &(ginfo->gui_info); + + gtk_widget_hide(GTK_WIDGET(uinfo->tray_menu_play)); + gtk_widget_show(GTK_WIDGET(uinfo->tray_menu_pause)); +} + +/* + * TrayGrayMenu/TrayUnGrayMenu + * + * - sets sensitivity of the menu items + */ + +static void ToggleMenuItemSensitive(GtkWidget *widget, gpointer data) +{ + gtk_widget_set_sensitive(GTK_WIDGET(widget), (gboolean)data); +} + +void TrayGrayMenu(GripInfo *ginfo) +{ + GripGUI *uinfo = &(ginfo->gui_info); + + if (ginfo->tray_menu_sensitive) { + gtk_container_foreach(GTK_CONTAINER(uinfo->tray_menu), ToggleMenuItemSensitive, (gpointer)FALSE); + ginfo->tray_menu_sensitive = FALSE; + } +} + +void TrayUnGrayMenu(GripInfo *ginfo) +{ + GripGUI *uinfo = &(ginfo->gui_info); + + if (!ginfo->tray_menu_sensitive) { + gtk_container_foreach(GTK_CONTAINER(uinfo->tray_menu), ToggleMenuItemSensitive, (gpointer)TRUE); + ginfo->tray_menu_sensitive = TRUE; + } +} + +/* + * MakeTrayIcon + * + * - tray icon and menu is built here + * - NOTE: I added the function BuildMenuItemXpm to uihelper.c + */ + +static void MakeTrayIcon(GripInfo *ginfo) +{ + GtkWidget *image, *mentry, *hb, *img; + GripGUI *uinfo = &(ginfo->gui_info); + + uinfo->tray_icon = egg_tray_icon_new("Grip"); + + uinfo->tray_ebox = gtk_event_box_new(); + + gtk_container_set_border_width(GTK_CONTAINER(uinfo->tray_icon), 0); + + gtk_container_add(GTK_CONTAINER(uinfo->tray_icon), uinfo->tray_ebox); + + image = gtk_image_new_from_file(GNOME_ICONDIR"/griptray.png"); + + gtk_container_add(GTK_CONTAINER(uinfo->tray_ebox), image); + + uinfo->tray_tips = gtk_tooltips_new(); + + uinfo->tray_menu = gtk_menu_new(); + + img = (GtkWidget*)Loadxpm(uinfo->app, menuplay_xpm); + uinfo->tray_menu_play = (GtkWidget*)BuildMenuItemXpm(img, _("Play")); + g_signal_connect(uinfo->tray_menu_play, "activate", G_CALLBACK(PlayCB), ginfo); + gtk_menu_shell_append(GTK_MENU_SHELL(uinfo->tray_menu), uinfo->tray_menu_play); + + img = (GtkWidget*)Loadxpm(uinfo->app, menupause_xpm); + uinfo->tray_menu_pause = (GtkWidget*)BuildMenuItemXpm(img, _("Pause")); + g_signal_connect(uinfo->tray_menu_pause, "activate", G_CALLBACK(PauseCB), ginfo); + gtk_menu_shell_append(GTK_MENU_SHELL(uinfo->tray_menu), uinfo->tray_menu_pause); + + img = (GtkWidget*)Loadxpm(uinfo->app, menustop_xpm); + mentry = (GtkWidget*)BuildMenuItemXpm(img, _("Stop")); + g_signal_connect(mentry, "activate", G_CALLBACK(StopCB), ginfo); + gtk_menu_shell_append(GTK_MENU_SHELL(uinfo->tray_menu), mentry); + + hb = gtk_separator_menu_item_new(); + gtk_menu_shell_append(GTK_MENU_SHELL(uinfo->tray_menu), hb); + + img = (GtkWidget*)Loadxpm(uinfo->app, menuprev_xpm); + mentry = (GtkWidget*)BuildMenuItemXpm(img, _("Previous")); + g_signal_connect(mentry, "activate", G_CALLBACK(PrevCB), ginfo); + gtk_menu_shell_append(GTK_MENU_SHELL(uinfo->tray_menu), mentry); + + img = (GtkWidget*)Loadxpm(uinfo->app, menunext_xpm); + mentry = (GtkWidget*)BuildMenuItemXpm(img, _("Next")); + g_signal_connect(mentry, "activate", G_CALLBACK(NextCB), ginfo); + gtk_menu_shell_append(GTK_MENU_SHELL(uinfo->tray_menu), mentry); + + hb = gtk_separator_menu_item_new(); + gtk_menu_shell_append(GTK_MENU_SHELL(uinfo->tray_menu), hb); + + img = (GtkWidget*)Loadxpm(uinfo->app, rip1_xpm); + mentry = (GtkWidget*)BuildMenuItemXpm(img, _("Rip and Encode")); + g_signal_connect(mentry, "activate", G_CALLBACK(RipEncCB), ginfo); + gtk_menu_shell_append(GTK_MENU_SHELL(uinfo->tray_menu), mentry); + + hb = gtk_separator_menu_item_new(); + gtk_menu_shell_append(GTK_MENU_SHELL(uinfo->tray_menu), hb); + + mentry = (GtkWidget*)BuildMenuItem(GTK_STOCK_QUIT, _("Quit"), TRUE); + g_signal_connect(mentry, "activate", G_CALLBACK(QuitCB), ginfo); + gtk_menu_shell_append(GTK_MENU_SHELL(uinfo->tray_menu), mentry); + + g_signal_connect(uinfo->tray_ebox, "button-press-event", G_CALLBACK(TrayIconButtonPress), ginfo); + + gtk_widget_show_all(uinfo->tray_menu); + + gtk_widget_hide(uinfo->tray_menu_pause); + + gtk_widget_show_all(GTK_WIDGET(uinfo->tray_icon)); + + ginfo->tray_icon_made = TRUE; +} + +/* + * TrayIconButtonPress + * + * - handles the showing/hiding of the main window and displaying the menu + * - NOTE: ginfo->app_visible is set by AppWindowStateCB in grip.c + */ + +static gboolean TrayIconButtonPress(GtkWidget *widget, GdkEventButton *event, gpointer data) +{ + GripInfo *ginfo = (GripInfo*)data; + GripGUI *uinfo = &(ginfo->gui_info); + + if (event->button == 1) { + if (ginfo->app_visible) { + gtk_window_get_position(GTK_WINDOW(uinfo->app), &uinfo->x, &uinfo->y); + gtk_widget_hide(GTK_WIDGET(uinfo->app)); + } else { + gtk_window_move(GTK_WINDOW(uinfo->app), uinfo->x, uinfo->y); + gtk_window_present(GTK_WINDOW(uinfo->app)); + } + + return TRUE; + } + + if (event->button == 3) { + gtk_menu_popup(GTK_MENU(uinfo->tray_menu), NULL, NULL, NULL, NULL, event->button, event->time); + + return TRUE; + } + + return FALSE; +} + +/* + * Callbacks for the menu entries; pretty self-explanatory + */ + +static void PlayCB(GtkWidget *widget, gpointer data) +{ + PlayTrackCB(NULL, data); +} + +static void PauseCB(GtkWidget *widget, gpointer data) +{ + PlayTrackCB(NULL, data); +} + +static void StopCB(GtkWidget *widget, gpointer data) +{ + StopPlayCB(NULL, data); +} + +static void NextCB(GtkWidget *widget, gpointer data) +{ + NextTrackCB(NULL, data); +} + +static void PrevCB(GtkWidget *widget, gpointer data) +{ + PrevTrackCB(NULL, data); +} + +static void RipEncCB(GtkWidget *widget, gpointer data) +{ + int i; + GripInfo *ginfo = (GripInfo*)data; + + /* this gets rid of the annoying 'Rip Whole CD?' dialog box */ + for (i = 0; i < ginfo->disc.num_tracks; i++) + SetChecked(&(ginfo->gui_info), i, TRUE); + + DoRip(NULL, data); +} + +static void QuitCB(GtkWidget *widget, gpointer data) +{ + GripInfo *ginfo = (GripInfo*)data; + GripGUI *uinfo = &(ginfo->gui_info); + + GripDie(uinfo->app, NULL); +} diff --git a/src/tray.h b/src/tray.h new file mode 100644 index 0000000..78360a5 --- /dev/null +++ b/src/tray.h @@ -0,0 +1,34 @@ +/* tray.h + * + * Copyright (c) 1998-2002 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * 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 + */ + +#ifndef GRIP_TRAY_H +#define GRIP_TRAY_H + +#include "grip.h" + +void UpdateTray(GripInfo *ginfo); +void TrayMenuShowPlay(GripInfo *ginfo); +void TrayMenuShowPause(GripInfo *ginfo); +void TrayUnGrayMenu(GripInfo *ginfo); +void TrayGrayMenu(GripInfo *ginfo); + +#endif diff --git a/src/uihelper.c b/src/uihelper.c new file mode 100644 index 0000000..5f3b5be --- /dev/null +++ b/src/uihelper.c @@ -0,0 +1,169 @@ +/* uihelper.c + * + * Copyright (c) 1998-2004 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include "common.h" + +GtkTooltips *MakeToolTip(void) +{ + GtkTooltips *tip; + + tip=gtk_tooltips_new(); + + gtk_tooltips_set_delay(tip,1250); + + return tip; +} + +GdkColor *MakeColor(int red,int green,int blue) +{ + GdkColor *c; + + c=(GdkColor *)g_malloc(sizeof(GdkColor)); + c->red=red; + c->green=green; + c->blue=blue; + + gdk_color_alloc(gdk_colormap_get_system(),c); + + return c; +} + +static gfloat style_color_mods[5]={0.0,-0.1,0.2,-0.2}; + +GtkStyle *MakeStyle(GdkColor *fg,GdkColor *bg,gboolean do_grade) +{ + GtkStyle *def; + GtkStyle *sty; + int state; + + def=gtk_widget_get_default_style(); + sty=gtk_style_copy(def); + + for(state=0;state<5;state++) { + if(fg) sty->fg[state]=*fg; + + if(bg) sty->bg[state]=*bg; + + if(bg && do_grade) { + sty->bg[state].red+=sty->bg[state].red*style_color_mods[state]; + sty->bg[state].green+=sty->bg[state].green*style_color_mods[state]; + sty->bg[state].blue+=sty->bg[state].blue*style_color_mods[state]; + } + } + + return sty; +} + +GtkWidget *BuildMenuItem(gchar *impath, gchar *text, gboolean stock) +{ + GtkWidget *item, *image; + + if (impath != NULL) { + item = gtk_image_menu_item_new_with_mnemonic(text); + if (!stock) { + image = gtk_image_new_from_file(impath); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); + } else { + image = gtk_image_new_from_stock(impath, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); + } + } else { + item = gtk_menu_item_new_with_mnemonic(text); + } + + gtk_widget_show_all(item); + + return item; +} + +GtkWidget *BuildMenuItemXpm(GtkWidget *xpm, gchar *text) +{ + GtkWidget *item; + + item = gtk_image_menu_item_new_with_mnemonic(text); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), xpm); + + gtk_widget_show_all(item); + + return item; +} + +static char * empty_xpm[] = { + "1 1 1 1", + " c None", + " " +}; + +GtkWidget *NewBlankPixmap(GtkWidget *widget) +{ + return Loadxpm(widget,empty_xpm); +} + +GtkWidget *ImageButton(GtkWidget *widget,GtkWidget *image) +{ + GtkWidget *button; + + button=gtk_button_new(); + + gtk_container_add(GTK_CONTAINER(button),image); + gtk_widget_show(image); + + return button; +} + +GtkWidget *Loadxpm(GtkWidget *widget,char **xpm) +{ + GdkBitmap *mask; + GtkStyle *style; + GtkWidget *pixmapwid; + GdkPixmap *pixmap; + + style=gtk_widget_get_style(widget); + + pixmap=gdk_pixmap_create_from_xpm_d(widget->window,&mask, + &style->bg[GTK_STATE_NORMAL], + (gchar **)xpm); + + pixmapwid=gtk_pixmap_new(pixmap,mask); + + return pixmapwid; +} + +void CopyPixmap(GtkPixmap *src,GtkPixmap *dest) +{ + GdkPixmap *gdkpix; + GdkBitmap *mask; + + gtk_pixmap_get(src,&gdkpix,&mask); + gtk_pixmap_set(dest,gdkpix,mask); +} + +gint SizeInDubs(GdkFont *font,gint numchars) +{ + return gdk_string_width(font,"W")*numchars; +} + +void UpdateGTK(void) +{ + while(gtk_events_pending()) + gtk_main_iteration(); +} diff --git a/src/xpm.h b/src/xpm.h new file mode 100644 index 0000000..23bbda5 --- /dev/null +++ b/src/xpm.h @@ -0,0 +1,73 @@ +/* xpm.h + * + * Copyright (c) 1998-2002 Mike Oliphant + * + * http://www.nostatic.org/grip + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include "../pixmaps/check.xpm" +#include "../pixmaps/discdb0.xpm" +#include "../pixmaps/discdb1.xpm" +#include "../pixmaps/eject.xpm" +#include "../pixmaps/cdscan.xpm" +#include "../pixmaps/ff.xpm" +#include "../pixmaps/lowleft.xpm" +#include "../pixmaps/lowright.xpm" +#include "../pixmaps/minmax.xpm" +#include "../pixmaps/nexttrk.xpm" +#include "../pixmaps/playpaus.xpm" +#include "../pixmaps/prevtrk.xpm" +#include "../pixmaps/loop.xpm" +#include "../pixmaps/noloop.xpm" +#include "../pixmaps/random.xpm" +#include "../pixmaps/playlist.xpm" +#include "../pixmaps/playnorm.xpm" +#include "../pixmaps/quit.xpm" +#include "../pixmaps/rew.xpm" +#include "../pixmaps/stop.xpm" +#include "../pixmaps/upleft.xpm" +#include "../pixmaps/upright.xpm" +#include "../pixmaps/vol.xpm" +#include "../pixmaps/discdbwht.xpm" +#include "../pixmaps/rotate.xpm" +#include "../pixmaps/edit.xpm" +#include "../pixmaps/progtrack.xpm" +#include "../pixmaps/mail.xpm" +#include "../pixmaps/save.xpm" + +#ifndef GRIPCD +#include "../pixmaps/grip.xpm" +#include "../pixmaps/enc0.xpm" +#include "../pixmaps/enc1.xpm" +#include "../pixmaps/enc2.xpm" +#include "../pixmaps/enc3.xpm" +#include "../pixmaps/rip0.xpm" +#include "../pixmaps/rip1.xpm" +#include "../pixmaps/rip2.xpm" +#include "../pixmaps/rip3.xpm" +#include "../pixmaps/smile1.xpm" +#include "../pixmaps/smile2.xpm" +#include "../pixmaps/smile3.xpm" +#include "../pixmaps/smile4.xpm" +#include "../pixmaps/smile5.xpm" +#include "../pixmaps/smile6.xpm" +#include "../pixmaps/smile7.xpm" +#include "../pixmaps/smile8.xpm" +#else +#include "../pixmaps/gcd.xpm" +#endif