From: Roberto C. Sanchez Date: Wed, 22 Oct 2014 02:48:17 +0000 (-0400) Subject: Imported Upstream version 1.6.5.1 X-Git-Tag: archive/raspbian/3.0-3+rpi1~1^2~27^2~15 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=5b5fd0dce407556f98ed8edee89dc830bf1437b1;p=bibletime.git Imported Upstream version 1.6.5.1 --- diff --git a/BibleTime.kdevelop b/BibleTime.kdevelop new file mode 100644 index 0000000..f6d82ee --- /dev/null +++ b/BibleTime.kdevelop @@ -0,0 +1,247 @@ + + + + The BibleTime team + info@bibletime.info + KDevAutoProject + C++ + + kdevfilegroups + kdevfilelist + kdevdistpart + + 1.6cvs + + . + false + + Perl + + kdevcvsservice + BibleTime + + + + + bibletime/bibletime + default + + + /home/jansorg/Projekte/BibleTime/bibletime/bibletime/bibletime + + false + true + + executable + / + + /home/jansorg/Projekte/BibleTime/bibletime + false + false + false + + + + + true + 1 + false + + + + + + + + 0 + false + + + + + + + + + + kdevgccoptions + kdevgppoptions + kdevpgf77options + + + + + + + + + + + + libtool + --debug + + true + false + false + true + + + + + + false + true + 10 + + + + + + + + + + + + + + + + + + + false + false + + + + false + + + .h + .cpp + true + + + + true + 2 + + + + false + false + + + *.o,*.lo,CVS + false + false + + + + -z3 -f + + -dP + + -f + -u3 -p + + -C -d -P + + + + + false + true + false + true + true + true + 273 + 260 + true + 250 + false + 0 + true + true + false + std=_GLIBCXX_STD;__gnu_cxx=std + true + false + false + false + true + true + true + false + .; + false + false + + + + + set + m_,_ + theValue + true + true + + + true + 3 + /usr/share/qt3 + 3 + ExternalDesigner + /usr/bin/qmake-qt3 + /usr/bin/designer + + + + true + true + Vertical + + + + + + BibleTime C++ header template + + + BibleTime C++ source template + + + + + + + + + + + + + true + true + true + true + -C + + + + /home/jansorg/Projekte/BibleTime/bibletime/tags + + + + VisualBoyAdvance + + + false + false + -f0 + -1 + + diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..1875636 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,963 @@ +2007-05-07 Martin + * Released 1.6.5a, a maintenance version for packagers + * Only change is the new license for the bible study howto (cc-by-sa) + +2007-11-01 Martin, Eeli and Jeremy + * Several important bugfixes relating to crashes, session management, + display and bookshelf manager + * released 1.6.5 + +2007-04-18 Joachim Ansorg + * Released version 1.6.4 + +2007-04-02 Joachim Ansorg + * Updated list of contributors + +2007-03-23 Joachim Ansorg + * Printing now uses the windows's display settings (verse-numbers) + +2007-03-22 Joachim Ansorg + * Applied a patch by Eeli Kaikkonen to have a delay before the mag content appears + * Added Eeli Kaikkonen to the list of contributors + +2007-03-22 Joachim Ansorg + * Fixed the osis filter to work with the new NETfree module + +2007-03-14 Joachim Ansorg + * Added our own thmlplain filter to fix a CLucene indexing bug + +2007-02-25 David Blue + * Added CSS to templates to display Lord in small-caps when tagged that + way in the module. Fixes Bug #1660413. + +2007-02-19 Joachim Ansorg + * Added Chunshek Chan to the contributors + +2007-02-03 Martin Gruner + * more fixes to the make system + * released 1.6.3b + +2006-01-28 Joachim Ansorg + * fixes to the make system + * released 1.6.3a + +2007-01-27 Martin Gruner + * fixed searching in unicode texts which I broke on 2006-12-05; please accept my apologies. + * released 1.6.3 + +2007-01-27 Martin Gruner + * fixed session loading code to handle main window properties correctly + * fixed hotkey configuration for books + +2007-01-14 Martin Gruner + * another search fix, set max lucene field size to 1 MiB. BibleTime should not truncate long entries any more. + +2006-12-27 Joachim Ansorg + * Added Jeremy Erickson to the contributors + * Changed copyright to 1999-2007 + +2006-12-26 Joachim Ansorg + * Fixed some Makefile.am issues + * Added some contributors to the about dialog + +2006-12-14 Martin Gruner + * fixed handbook typo + * fixed required clucene version to 0.9.16 + +2006-12-07 Martin Gruner + * packaged BibleTime 1.6.2 + +2006-12-07 Daniel Glassey + * add --enable-howto to be able to disable building bible study howto + (required by Debian :/) + +2006-12-05 Martin Gruner + * BibleTime will now index, search and display pre-chapter and pre-book + headings; small cleanups + * searching should work as expected now with regard to headings + +2006-12-02 Martin Gruner + * allow automake 1.10 + +2006-11-30 Joachim Ansorg + * Fix for missing text if GBF red letter words were used + +2006-11-27 Joachim Ansorg + * The tree state is restored if a change in the Sword setup forces a reload at runtime. + +2006-11-25 Martin Gruner + * Fixed 2 tooltips which were swapped + * removed old leftover code that caused problems with --enable-final + +2006-11-24 Joachim Ansorg + * Updated contributors in the about dialog + +2006-11-01 Martin Gruner + * Reverted Analyzer Change of 1.6.1 to use StandardAnalyzer again, but + without stop words. Whitespace Analyzer did not correctly strip punctuation, + so that hits were missing. Sorry. Search should work as expected now. + * Added ability to display Book and Chapter headings + +2006-10-25 Martin Gruner + * Fixed crash on module uninstallation + * released BibleTime 1.6.1 + +2006-10-21 Martin Gruner + * Fixed KJV 2006 display, stripping NT transcription footnotes correctly + again + * Changed Search to use WhitespaceAnalyzer instead of StandardAnalyzer. Now + the default stop words of StandardAnalyzer are ignored. + * Fixed search result highlighting for queries with "*" - do not highlight + across word boundaries any more + * Fixed fullscreen toggeling + +2006-10-10 Martin Gruner + * small clucene.m4 bugfix for nonstandard sword installations + +2006-09-22 Joachim Ansorg + * Release of BibleTime 1.6 + +2006-09-12 Martin Gruner + * Fixed personal commentary display bug + +2006-08-25 Martin Gruner + * Changed location of bibletime.desktop to /usr/share/applications + +2006-08-23 Martin Gruner + * released BibleTime 1.6rc1 + +2006-08-21 Martin Gruner + * Fixed Keychooser Hotkeys to cross testament boundary + +2006-08-20 Joachim Ansorg + * Fixed the shrinking to zero of the left mainwindow's left part + * Fixed crossrefs in the clucene index + * Improved the layout of the searchdialog options + * Modules which require a more recent Sword are not loaded + +2006-08-20 Martin Gruner + * Added documentation for "Find text in read window" + +2006-08-07 Martin Gruner + * verse keychooser bugfix and cleanups + +2006-08-01 David Blue + * Matched the High Contrast Template to the High Contrast Black Text + colours in kde + +2006-07-25 David Blue + * Fixed display of crossrefs in all templates + +2006-06-20 Martin Gruner + * major patch to the printing system: printing works dynamically and + respects the display and filter settings, instead of loading the default + settings at program startup time + * Joachim, why does printing not work with headings and scriprefs and other + markup elements? Besides, it always shows verse numbers, even if they are + turned off + * Please test printing + +2006-06-17 Martin Gruner + * Released BibleTime 1.6beta3 + +2006-06-15 Martin Gruner + * BibleTime now unlocks immediately + * The module icon reflects this immediately + * unlock status reflects correct/incorrect key now, instead of empty/set + (possibly false) key + * Sword config setting and text retrieval prevention from locked modules are + not implemented yet, not as important (and I dunno how to do it right now) + * fixed display profile bug with maximized state; you may need to delete old + sessions + * removed workaround code for lucene 0.9.10 + +2006-06-09 Martin Gruner + * patched clucene.m4 to support and require clucene 0.9.12 + +2006-05-23 Martin Gruner + * Applied more patches by Mark Zealey + +2006-05-22 Martin Gruner + * Applied keychooser patch by Mark Zealey, BibleTime now uses an entirely + different and improved key chooser for Bibles and Commentaries. + +2006-05-18 Martin Gruner + * First patch after a month! + * Fixed UI issue in Bookshelf Manager which ended up in wrong place after + cancelling index download + +2006-04-26 Joachim Ansorg + * BibleTime 1.6beta2 + +2006-04-19 Martin Gruner + * Updated INSTALL.in + +2006-04-09 Joachim Ansorg + * Fixed popup menu in the commentary window + +2006-04-06 Martin Gruner + * Fixed all delayed popup menus to show up immediately + +2006-03-30 Martin Gruner + * Fixed "make messages" to include autogenerated .cpp and .h files (from .ui + files) by running "make" first before extracting the messages + * small enhancement to the crazy template + +2006-03-30 Joachim Ansorg + * Fix: Support robinson codes in the new KJV2006 module + +2006-03-25 Joachim Ansorg + * Support special x-p milestone in the new KJV2006 module. + * Support multiple lemmas and morphs per word in the KJV006 module + * Fix: OSIS filter fix for seg elements + * Fix: Display templates did not show headings in bold if a font was set for the module language + +2006-03-24 Gabriel Beddingfield + * Added isWritable() check (and error message) before saving in CPlainWriteWindow. + +2006-03-24 Martin Gruner + * Added DCOP call reloadModules() + +2006-03-21 Martin Gruner + * Fixed a ThML crossref parsing bug + +2006-03-18 Joachim Ansorg + * BibleTime 1.6beta1 + +2006-03-04 Martin Gruner + * added an CSwordModule::unlockKeyIsValid() function + +2006-02-25 Joachim and Martin: BibleTime Bug Squashing Party I + * Disabled sorting for the "manage indices" columns + * Added "automatically delete orphaned indices when BibleTime starts" option + * Fixed display window toolbar problems, now there are 2 toolbars + * Added support for "n" attribute in footnotes + * Fixes to the display templates + +2006-02-22 Martin Gruner + * Orphaned and defect indices are now automatically deleted + +2006-02-15 Joachim Ansorg + * Fix: Modules without indexes created an empty index directory. + * Fix: Module indexes are completely removed now + +2006-02-14 Martin Gruner + * Extended index logic to allow for additional indexes per module in future + +2006-02-14 Joachim Ansorg + * Search window: The result count in the module list are sortable now + * The "Strong's search" items in the context menus of display windows are disabled now if there's no number to search for + +2006-02-10 Joachim Ansorg + * Several smaller fixes to the searchdialog gui + * Moved searchdialog classes into several namespaces (Search::*) + * Added the icon for the "Search Strong's Number" option + * Bumped version number to 1.5.95, i.e. a 1.6pre version + * Sometime the wrong text was shows for notes + +2006-02-01 Lee Carpenter + * Applied Jim Campbell's updates to the Strong's search feature. + +2006-01-26 Lee Carpenter + * Added an index size field to the 'Manage search indices' page. + +2006-01-22 Lee Carpenter + * Added a page to the Bookshelf Manager to add/delete search indices. + +2006-01-19 Lee Carpenter + * Applied Jim Campbell's patches to add Strong's highlighting in search results. + +2006-01-18 Lee Carpenter + * Converted search dialog to use Designer .ui templates for layout. + +2006-01-02 Martin Gruner + * Search dialog UI cleanups + * Added index version tracking + +2005-12-30 Martin Gruner + * Simplified Search Dialog, code cleanups + * Added index creation progress dialog + +2005-11-13 Joachim Ansorg + * BibleTime 1.5.3 + * Patch: Applied patches by Jeremy Erickson to compile with KDE 3.0-3.3. + +2005-11-09 Martin Gruner + * Added support for OSIS tables + +2005-11-06 Joachim Ansorg + * Bugfix: Changed popup title in commentary windows to "Commentary window" instead of + "Lexicon window" + * Patch: Applied patch by Jeremy Erickson to CMDIArea to compile with Qt 3.2 + +2005-10-24 Joachim Ansorg + * Bugfix: Allow download of locked modules + +2005-10-16 Joachim Ansorg + * BibleTime 1.5.2 + +2005-10-15 Joachim Ansorg + * New feature: Remember open groups in the bookshelf on next startup + * New feature: Remember selected item of the bookshelf on next startup + +2005-10-11 Joachim Ansorg + * New feature: Added new method called getModulesOfType to our DCOP interface. + +2005-10-07 Joachim Ansorg + * New feature: The display windows now have a search dialog to search in the displayed text + (also activated by CTRL+F) + * Bugfix: Changed key accel of "Search open works" to CTRL + O, + because the standard action used CTRL + F, which we use in the new feature above. + Changed the settings in hdbk-reference as well. + * Bugfix: Hopefully the last fix for the parsing. We have to work around a Sword parsing problem. + +2005-10-05 Joachim Ansorg + * Bugfix: Enter in a keychooser did not change the display under special circuamstance + * Buffix: Newlines entered in the plain text editor were not displayed in the HTML editor or the read display window + * Bugfix: One more parsing fix + +2005-10-03 Joachim Ansorg + * Bugfix: Fix for bookshelf manager where the "Install works" button was always greyed out + * Bugfix: Another fix to reference parsing + * Feature: Refs in ThML modules (e.g. TSK) are now splitted if it doesn't alter content + +2005-10-01 Joachim Ansorg + * Bugfix: Fix for the key parsing where only a partial reference was given + +2005-09-25 Joachim Ansorg + * Bugfix: Crash on FedoraCore4 if the settings dialog has been closed + +2005-09-16 Joachim Ansorg + * Bugfix: ThML modules like the ISV crashed BibleTime if the default Bible couldn't be found + +2005-09-12 Joachim Ansorg + * BibleTime 1.5.1 + * BibleTime-i18n package 1.5.1 + +2005-09-10 Joachim Ansorg + * New feature: DCOP interface to control BibleTime. The available commands are avilable by calling "dcop bibletime BibleTimeInterface". To read the DCOP documentation please have a look at the file bibletime/bibletimeinterface.h + * Bugfix: The bookshelf manager didn't work with KDE systems which were configured to use a double click + * Bugfix: A trailing slash in the hostname prevented the bookshelf manager to connect to that remote host + +2005-08-24 Joachim Ansorg + * Bugfix: More Drag&Drop fixes + * Bugfix: Some compilers complained about a missing namespace declaration in the backend code + +2005-08-24 Joachim Ansorg + * Bugfix: Copyright infos for a module is now displayed as correctly enocoded text + * Bugfix: Larger fontsize for the display styles "Default" and "Green" + +2005-08-18 Joachim Ansorg + * Bugfix: Bookmark drag&drop should work now + +2005-08-01 Joachim Ansorg + * New feature: Display templates can now be stored in $KDEDIR/share/apps/bibletime/display-templates/ and + $HOME/.kde/share/apps/bibletime/display-templates/ + +2005-07-16 Joachim Ansorg + * BibleTime 1.5 + * Handbook update by Martin + * Hotkeys reviewed + +2005-06-17 Joachim Ansorg + * BibleTime 1.5rc2 + * Most of the bugs reported for rc1 are fixed + * Major handbook update + * Display windows scroll now to the right position after they opened and + after a resize + +2005-06-10 Joachim Ansorg + * API doc updates (BibleTime.DoxyFile) + * Fixed code to compile with GCC 3.3.6, 3.4.4 and 4.0 + +2005-06-06 Joachim Ansorg + * Added the missing "Delete session" menu item + * The sessions items are now disabled if no sub-menu items are present + +2005-05-29 Joachim Ansorg + * Releases BibleTime 1.5rc1 + -Tons of bugfixes, new features and improvements + +2004-07-17 Daniel Glassey + * Added English and German man files courtesy of Erik Schanze + +2004-07-16 Martin Gruner + * Added invocation of KDE's graphical regular expression editor. + -invoke simply by selecting "regular expression" as search type. + +2004-01-29 Joachim Ansorg + * BibleTime 1.4.1 release + -Bugfixes, especially in the Sword setup dialog part + -Changed default icons to crystalsvg + -Updated GUI translations + +2003-12-28 Joachim Ansorg + * BibleTime 1.4 release + -New SwordSetup Dialog to setup Sword's configuration, to install modules from remote or local sources and to uninstall modules. + -Bugfixes + +2003-08-28 Joachim Ansorg + * Released BibleTime 1.3. Major changes are: + -Redesign of the main index; bookmarks are seperated into an own folder, modules are sorted by type and language; + better menu structure + -Better bookmark file format, bookmarks are saved now in XML. Old bookmarks can still be imported. + -Improved Drag&Drop to work with multiple items, e.g. twenty search result items + -Redesign of the search dialog; it's easier to use now and better to navigate + -Better support for GenBooks (Generic Books) + -Improved support for writing commentaries. There's a plain text editor and a WYSIWYG editor now. + -BibleTime 1.3 requires Sword 1.5.6 now + -Many, many bugs and memory leaks fixed + -Updates to all translations, including new languages + We're sorry for the long time it took to prepare the 1.3 release! We hope to improve release cycles with the next + releases. + +2003-03-10 Joachim Ansorg + * Fixed BibleTime to work in all places with the new SWBuffer class. Should be now more bug free. + +2003-02-28 Joachim Ansorg + * Released 1.3rc1 which uses a Sword snapshot. We're in message freeze now - translators can finally start. + * Fixed BT to use Sword's new filter stuff + +2003-01-19 Joachim Ansorg + * Fixed BT_BASICFILTER::ProcessRWPRefs, made simpled and more bug free + +2003-01-18 Joachim Ansorg + * Removed install instructions from CResMgr and the actions XML file + * Fixed missing insertion of KAction objects into our KAccel object + +2003-01-17 Joachim Ansorg + * Removed installation instructions, the webpage and README/INSTALL files are good enough + +2003-01-16 Joachim Ansorg + * Bugfixes: + -Loading of profiles switched of auto-cascading and auto-tiling + -Debugged CMDIArea, was old, buggy code. Should work now more robust. + * Code cleanups for CDisplayWindow + +2003-01-14 Joachim Ansorg + * Last fixes for beta4: + -Changes everything to use CResMgr instead of ugly #defined + -Added support for new Red letter words strip filter + -Everything is now in CResMgr + -Many small bugfixes + +2003-01-11 Joachim Ansorg + * Searchdialog search result page highlights searched text + * Default color of strongs and morph codes changed to Qt::darkBlue + +2003-01-07 Joachim Ansorg + * Major speed improvements for displaying lexicons together + +2003-01-04 Martin Gruner + * Release 1.3beta3 release + * Changes in comparision with 1.2.x: + - New main index with better module grouping (using language and type), better bookmark format (XML), + import for old bookmarks from 1.2.2 + - Drag&Drop works now with multiple items (e.g. 200 search result items) + - Many more changes we don't remember + +2002-06-02 Martin Gruner + * Moved the english docs to bibletime/docs, and the pot file to bibletime/pot. + Created a new package bibletime-i18n-de for German docs, with the folders docs/ and po/. + Revised gen_am.sh file to suit the new arrangement, and it does at least run and create all the + necessary Makefile.am files for English and German. + +2002-05-03 Martin + + * Ported to KDE3: BibleTime 1.2. No new features. Text rendering works much better now + (right-to-left), as well as font / charset handling -- thanks to Trolltech. + +2002-10-04 Martin Gruner + * Differences between 1.0 and 1.1: + - Improved interface: + o Better optionsdialog: Better structure, more powerful settings + o Better menu structure: The documentation is now accessible from the Help menu, ... + o Keyaccelerators for each display window type + o much more + - General Book Support (GBS): Books like "Josephus" are supported now. + Operations like bookmarking, printing, copying or saving work just like with + Bibles, commentaries or lexicons. + - Crossreference support + Crossreferences work now. For example you can click now on a strong number to open the + module for it which displayes the chosen number. The same for Bibles, morph tags etc. + Tooltips work for the links, too. + - Improved Unicode support + Unicode encoded modules are now supported in a better way. Choosing the font and + the displaying of the text works better. RTL support and better rendering is still + missing. + - Profile management. Profiles capture the current state of the working area + (opened display windows, scrollbar positions, set keys ...). Profiles can be loaded to + restore the old state and can be saved to store the current state for later. Automatically + restoring the windows after startup is possible, too. + - Better crash management. BibleTime tries now to save settings if a crash occured. Although we + implemented this, we don't know how to make BibleTime crash ;) It's just for your safety. + - Speed improvements. Printing is almost two times faster now. Searching in modules is also faster, + but this was improved in the Sword library by the Sword developers. + - Improved display windows. Independent display settings for each window (footnotes, strongs ...) + - Fullscreen mode of the main application window + - Improved commentary editor: Ask if the text should be saved if the window or BibleTime should be closed + if the changed text was not saved before. + +2001-11-24 Fred Saalbach + * Moved documentation to bibletime-docs - includes .po files, handbook, etc. + * This will reduce the size of the main program and allow more flexibility + for the creation of RPM's. + * Compile time for the main program will also be reduced. + +2001-09-22 Fred Saalbach + * Fixed problem with sgml tag by replacing it with the in the english handbook. + * This only is a problem with systems running kde 2 and document + * text descripter "-//KDE//DTD DocBook V3.1-Based Variant V1.0//EN" + * kdb2html finishes without errors now. + +2001-08-30 Joachim Ansorg + * Added $(DESTDIR) to Makefile.am files + * Solved compilation errors + +2001-08-17 Joachim Ansorg + * Optimizations to CSwordBibleModuleInfo + * Fixed bug in CBibleKeyChooser + * New structure in the optionsdialog + * Key accelerators for each display window type + * Fullscreen button + +2001-07-28 Joachim Ansorg + * The new configure options are cached now (sword lib,includes, distribution name and version, RPM prefix and group) + +2001-07-27 Joachim Ansorg + * Added history box in the HTML dialog widget if history browsing is enabled + +2001-07-16 Joachim Ansorg + * Implemented better configure script. We have now options to link to a static Sword library! + * Added rudimentary support for version checking + +2001-06-20 Joachim Ansorg + * Release BibleTime 1.0! + We're really glad we got it out now! Enjoy! + Sorry for the large delay! + +2001-03-08 Joachim Ansorg + * Released BibleTime 1.0beta1. + +2001-02-17 Joachim Ansorg + * Added QTextEdit, QTextView, and QRichText classes from Qt3 (ported by David Faure) + * Removed the Qt2 classes QTextView, QTextBrowser and the class KTextEdit + +2001-02-13 Joachim Ansorg + * Changed the direction of the spin boxes + and of the scrollbutton in the presenters + * Updated QWorkspace to the one of Qt 2.2.4 + +2001-02-07 Joachim Ansorg + * Fixed bugs in the groupmanager, searchdialog and presenters + +2001-02-04 Joachim Ansorg + * Added new features: + RMB menus in the presenters and in the searchdialog + +2001-02-03 Joachim Ansorg + * Added Makefile system to create and install the handbook + * Fred added his really nice handbook in .docbook format + * Improved printing dialog: Now the styles are saved and restored correctly, needs some tweaking + * Fixed some bugs in the printing system, removed the range specifiers of the printing dialog + +2001-02-02 Joachim Ansorg + * Fixed some bug in CTipWindow + * Fixed some bugs in our copy of QTextView + * Fixed some bug in CStyleEditorDialog + * Fixed some bug in the printing system + * Improved CBiblePresenter and CPrinterDialog + +2001-01-30 Joachim Ansorg + * Updated ToDo + +2001-01-27 Joachim Ansorg + * Fixed the graphical search analysis, it should now work 99% + +2001-01-21 Joachim Ansorg + * Improved the style editor + +2001-01-19 Joachim Ansorg + * Improved the search anaylsis a little bit + +2001-01-18 Joachim Ansorg + * Fixed some bugs in the searchdialog + * The bug with indexed modules and first search is now fixed, + it was an error in Sword + * Fixed some nasty bugs in the Sword backend + * Marking searched words in the key text for multiple words works now 100% + * The last book is now shown in the graphical search analysis + +2001-01-18 Joachim Ansorg + * Changed icon names and updated icon directories + * Included all icons we need + * Improved the BibleTime icons + +2001-01-01 Joachim Ansorg + + A BLESSED NEW YEAR! + + -Added the command line option --debug to enable debug messages +2000-12-29 Joachim Ansorg + *Changed behaviour if a book, chapter or verse was changed in the Bible-keychooser + + +2000-12-29 Joachim Ansorg + * Changed iconname so it will be found + +2000-12-26 Joachim Ansorg + * Improved printing support (correct handling of singals ...) + +2000-12-22 Joachim Ansorg + * Fixed a bug in CGroupmanager: BibleTime does now start without installed modules! + +2000-12-19 Joachim Ansorg + * Some work on the oresenters and keychoosers + * Fixed a small bug in cprintitemlist.cpp + +2000-12-16 Joachim Ansorg + * Fixed the crash in ctipwindow.cpp + +2000-12-08 Joachim Ansorg + * Fixed some printing bugs + * Added QWorkspace of Qt 2.2.2 to our sources, so everybody has the fixed QWorkspace version + +2000-12-05 Jochim Ansorg ~ + * Drag& Drop on presenters works again + * Finished "context sensitive" presenter refreshing + +2000-12-04 Jochim Ansorg + * Fixed this nasty "Default verse color" bug (was a wrong placed readEntry instead of readColorEntry in bibletime.cpp) + * Fixed unifont support, it works no with non-ISO-8859-1 languages and fonts + +2000-12-03 Jochim Ansorg + * Changed the latin1() calls of QString to (const char*) ... local8Bit() + * Changed QTextView a little bit: Do not set contents pos to 0,0 in QTexView::setText(), the result is a fester displaying of the texts + * Changed the optionsdialog to display the language name and not the abbrevation + +2000-11-28 Joachim Ansorg + * You can now switch between different book translations on runtime! + * Improved "context sensitive" presenter refresh (e.g. if footnotes are enabled only presenters with modules having them will be refreshed) + * Fixed some memory leaks. + +2000-11-04 Joachim Ansorg + * Solved some bugs + * Updated ceditwidget.cpp so saving HTML is correct, loading is still incomplete + * Made te frontend a shared lib and moved sources which should be there into frontend + libfrontend is now called libbibletime_frontend.la. + * Made --enable-shared the default options (changed to configure.in.in) + +2000-10-30 Joachim Ansorg + * Added sources and headers of QTextView, QTextBrowser and QRichText + * Added signal wordHighlighted in QTextView + +2000-10-29 Joachim Ansorg + * Removed the toggle toolbar/footnotes/strongs bugs + * Removed the bug Troy found (deletion of the searchresult) + +2000-10-24 Joachim Ansorg + * Removed the old backend and introduced a new, better faster + backend with a new backend + * Fixed some GUI bugs (ported from 0.3) + * Fixed some backend bugs, removed CSwordVerseKey operators + * Added portuguese translation of 0.3's messages, but it's still + useable for 1.0CVS + +--Lots of time passed by + +2000-07-24 Joachim Ansorg + *Released 0.3! A really long time! We hope you like it! + +---Changelog will be continued after final 0.3 + +1999-12-30 Joachim Ansorg + *We should be now ready for 0.22 ;-) + +1999-12-26 Joachim Ansorg + *Removed the commented out #includes + *Updated AUTHORS file + +1999-12-25 Joachim Ansorg + *make now use of getFontList (in global.h) to get the fonts + *Added some ASSERT + *Check it objects are zero in fontmanagement dialog + +1999-12-24 Joachim Ansorg + *BibleTime 0.21 - I hope it's a nice Christmas present ;-) + +1999-12-23 Joachim Ansorg + *Changed some icons in CEditWidget to newer names + +1999-12-22 Birger Langkjer + *Updated danish translation + *Added bibletime/optionsdialog/Makefile.in because this prevented me from compiling the first time. + +1999-12-21 Joachim Ansorg + *The searchresult tab is now disabled if the list is empty + *The moduletree-tabs are disable if the correspondig trees are empty + +1999-12-20 Joachim Ansorg + *The fontmanagement dialog is now grayed out if there's no entry in the list + +1999-12-20 Birger Langkjer + *Updated danish translation + +1999-12-19 Joachim Ansorg + *Fontmanagementdialog uses now a XFonts list, not the list provided by KDE. This solves the problems on + systems without KFontManager + *Added files global.h and global.cpp which should contain global functions + *Fixed some typos in the german translation + +1999-12-18 Joachim Ansorg + *Added Apply-Button in the optionsdialog + +1999-12-17 Joachim Ansorg + *Tried to fix the charset problem in ktipoftheday.cpp + *Updated AUTHORS list + +1999-12-16 Joachim Ansorg + *Updated Michal's Czech translation + +1999-12-15 Joachim Ansorg + *Added Czech language file: Thanks to Michal Rovnan� + +1999-12-12 Joachim Ansorg + *Removed function CNotesEditor::isTextSelected() + *Added possibility to select type of highlighting of text for the notes editor + *Added load and save of current highlighting type + +1999-12-04 Joachim Ansorg + *Convrted the bmp images to jpg + *Bibletime uses now kimgio everywhere + *Added danish translation + +1999-11-27 Joachim Ansorg + *Removed unused images + *BibleTime 0.2 + +1999-11-26 Joachim Ansorg + *Finished the whole german handbook + *Removed the own filters (plainhtml, rwphtml and gbfhtml),use (newer) filters of SWORD version + *You can now select the entries in the bookmark-manager with the upper and lower keys and activate them with RETURN + +1999-11-25 Joachim Ansorg + *Updated ToDo and Readme + *Caption of mainwindow now contains the current chapter and verse + +1999-11-24 Joachim Ansorg + *Made some labels in the printer-optionsdialog bigger to fit french translation + *ResizeEvent in SearchScopeDialog + +1999-11-20 Joachim Ansorg + *Startuplogo is now a PNG, this makes the distribution smaller + *To make this work make use of kimgio + +1999-11-18 Joachim Ansorg + *Finished my part on german handbook + +1999-11-16 Joachim Ansorg + *Worked on translation of handbook to german + *Translated some tips in german tipdatabase + +1999-11-14 Joachim Ansorg + *The searchbuttons and the three radiobuttons are now resized + +1999-11-12 Joachim Ansorg + *Fixed Bug: Now you can paste into the loojupline + +1999-11-10 Joachim Ansorg + *Fixed bug in CDocBrowser on non KDE 1.1.2 systems + +1999-11-07 Joachim Ansorg + *Tidied up kwrite - removed lots of commented code + +1999-11-03 Joachim Ansorg + *Updated authors list + *Thorsten added the new printer dialog - it works now + +1999-11-03 Joachim Ansorg + *Added optimized paint function committed in the KDevelop mailing list by Vladimir Dvorak + Thanks Vladimir! + *Readded the nl.po file - it was lost by some reason + +1999-11-01 Joachim Ansorg + *Updated handbook - Jeff's work is really great! + *You can now use more than 31 tips in a tipdatabase + +1999-10-23 Joachim Ansorg + *Renamed members in BibleTimeView: tTabView to treeTabView and sTabView to browserTabView + We need this because sTabView and tTabView are confusing + *Changed CChartWidget to resize the different graphs to the height of the window + *Changed topPanner to leftPanner in BibleTimeView - this is a better name + *Updated API documentation + *Fixed BUG: Now the recentText part in BibleTimeView is saved correctly again + *Noticed that KDE 1.1.2 has the calcScrollBars bug solved, no we use only our own function in KDE version before 1.1.2 + +1999-10-21 Joachim Ansorg + *Bugfix: Key acelelerators are now saved after changing and restored on new startup + *Updated API documentation + *Updated ktipofday.cpp and ktipofday.h from KDevelop to compile with GCC 2.95 + +1999-10-19 Joachim Ansorg + *Fixed a bug in CDocBrowser: If you lookup some text, the module wasn't highlighted + *Added own submenu for the lookup part in CDocBrowser + +1999-10-18 Joachim Ansorg + *BibleTime needs now the upcoming SWORD 1.45 + +1999-10-17 Joachim Ansorg + *Fixed bug: standard accelerators are now really disabled + +1999-10-16 Joachim Ansorg + *Added Jeff to AUTHORS + *Updated german translation + +1999-10-15 Joachim Ansorg + *Solved a bug in the linkmanager: If you open the dialog and click OK the existing items were deleted + *Added a script to put all i18n() things into the translation template. It called make-messages.sh. It's on the topdir. + *Commented out the first lines of BibleTimeMgr to get BibleTime to compile without modifications of SWORD. + Please uncomment these lines to make use of the PLAINFootnotes option filter. Make the declarations in the header + file to protected on which the compiler complains about. + +1999-10-14 Joachim Ansorg + *Implemented context sensitive enabling and disabling of the edit menu entries + *Updated KWrite sourcen to the newest one shipped with KDevelop + *Added Class CKNewAccel - provides disabling and enabling of accels by reeourceentry like ID_FILE_PRINT + +1999-10-13 Joachim Ansorg + *Added refreshing of the list in CDocBrowser + *BibleTime does not load an empty HTML file + (e.g. when you load a file via a HREf module and the server is unknown -> KFM returns an empty file) + *Improved a little bit the internet support + +1999-10-12 Joachim Ansorg + *Implemented functions in linkmanager. Implemented the link management in CDocBrowser::showURL. + Needs some work: We have to decide if the file is local or remote and downloda it first + or we put a new option in the dialog. + +1999-10-10 Joachim Ansorg + *Added new german index.sgml + *Updated icons. You can now recpgnize what the icons mean + *Added BibleTimeDoc::slotMoveToPreviousVerse() and BibleTimeDoc::slotMoveToNextVerse() + Changed BibleTimeApp uses these functions to jump to the previous / next verse + Added needed pixmaps and keyaccels + +1999-10-09 Joachim Ansorg + *Worked on the handbook + *Added Quickhelp for the widgets in the link management dialog. + +1999-10-08 Joachim Ansorg + *Added some text to the handbook + *Removed the german index.sgml file, because it makes no senss. + We will add this if the english one is ready to translate it into german. + *Cleaned up KListView::addChildItem() + *Finished dialog of the link manager, needs implementation of functions to work + +1999-10-05 Joachim Ansorg + *Added -lz to bibletime/Makefile.am to avoid compilation problems on RedHat 5.2 systems + *Added some needed icons and changed iconnames in the sourcecode + *Solved some spelling errors in the CBugReportDlg and changed some kdevelop to bibletime in the class + *Now you can't print by pressing STRG+P if printing is disabled + +1999-10-03 Joachim Ansorg + *Changed CForeignFontOptions: The fonts are now saved in function saveSettings(), not after changing the font + *Changed OptionsDialog: The different options are displayed in a tree. + *Removed old OptionsDialog + *Created new subdirectory optionsdialog. We will need it for later development + +1999-10-01 Joachim Ansorg + *Changed some QColor (QRGB ...) to (QColor) (QRGB ...) to solve compilation problems on Debian. + +1999-09-29 Joachim Ansorg + *font auto-switching works now + *Changed the line to edit the fontname to a combobox + +1999-09-29 Joachim Ansorg + *Implemented more features of font-auto-switching, needs still work + +1999-09-28 Joachim Ansorg + *Implemented simple switching between fonts - will work on it + *Implemented signal BibleTimeDoc::sigSetBibleFont(const QString) + Implemented slot BibleTimeView::slotSetBibleFont(const QString) + These signal and the slot will be used in the near future for switching of fonts. + *Connected the signal and the slot in BibleTimeApp::initView + +1999-09-25 Joachim Ansorg + *On print the printerdialog is shown before the QT-dilaog. But printing + doesn't work at the moment. + We have to implement the slot slotPrint() of CPrinterDialog to make it work. + *Changes in cnoteseditor.cpp the #define BUTTON_BAR_HEIGHT to an abosolut value. + Solves a problem with the height of the editor. + *Updated the startuplogo. It's now much more nice as the previous version. + *Integrated the startuplogo in the aboutdialog. It's now displayed in the upper left corner of the box. + *The class KStartupLogo looks now for the size of the startuplogo and resize the widget in the right way if the size have changed. + *CDocBrowserColor: Made some hardcoded texts to i18n("") + +1999-09-19 Joachim Ansorg + *Reorganized the icons: + There are now two directories: pics and toolbar. pics contains the directory mini/ + which contains the mini icons. Mini icons are named with a trailing mini-. + The directory toolbar contains the icons which are only used in the toolbar. + This should be the new standard we use. + +1999-09-19 Joachim Ansorg + *Changed names and install paths of some icon + *Added some needed icons we forgot + *Added function BibleTimeApp::slotHelpContents(): calls the online help + *Solved: Changes of the key accelerators doesn't change the + accels in the menus + *rendered Footnotes are now displayed in dark red, too + *Cleaned up DCocBrowser + +1999-09-18 Joachim Ansorg + *Optimized a little bit the paintText function of CChartWidget + +1999-09-17 Joachim Ansorg + *Changed a little bit the GBFHTML filter: + Anotations are now displayed in dark red + *Decided to use use the PLAINHTML filter as standard + If no filter is specified in the .conf file of the module we use + now the PLAINHTML filter. Perhaps we need to change this + +1999-09-16 Joachim Ansorg + *Fixed this stupid bug related to the crash while searching the web bible + +1999-09-14 Joachim Ansorg + *Change the GBFHTML filter a little bit + It displays now the word explained in a footnote formatted as bold + +1999-09-14 Joachim Ansorg + *Updated program version to 0.2 + +1999-09-12 Joachim Ansorg + *Added some tips to the tipdatabase + *Added class KStartupLogo to display a picture on startup + +1999-09-10 Joachim Ansorg + *Rewrite of the Searchanalysis, it's now up to 63 times faster + *Text in the CChartWidget is now painted rotated (90) + +1999-09-05 Joachim Ansorg + *Added analysis of searchresults -> needs still some work + *updated de.po translation errors + *updated homepage + +1999-09-04 Joachim Ansorg + *created sub folders: gfx and printing + *Added CPrinterDialog of KHexedit 0.81 -> isn't used at the moment + +1999-09-02 Joachim Ansorg + *Added classes for searchanalysis and a ChartWidget + *Updated configure.in - it checks now for headers and the SWORD lib in two steps + +1999-08-30 Joachim Ansorg + *Changed and corrected some GUI errors + +1999-08-29 Joachim Ansorg + *Decided to update this Changelog frequently + *Changed the notesEditor to a non-tabbar look + *New class CNotesEditor + +1999-08-27 Joachim Ansorg + *First public release of BibleTime: Version 0.1 + diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..18c8db7 --- /dev/null +++ b/INSTALL @@ -0,0 +1,244 @@ +Installation instructions for BibleTime 1.6.5.1: +--------------------------- + +Sometimes it is difficult to compile BibleTime from source code, but it's +possible. Don't hesitate to ask for support at info@bibletime.info. In that +case, please include your system's configuration details. + +BibleTime 1.6.5.1 requires: + + - KDE >= 3.0 (at least the libraries (kdelibs) and the base package (kdebase)) + Although BibleTime should compile and run with KDE 3.0-3.3, we strongly recommend + to use the latest version of KDE available for your Linux installation. + + - SWORD 1.5.9, available from http://www.crosswire.org/sword/; you should include + a stability patch to Sword 1.5.9 available from the BibleTime download pages + (fixes problems with compressed and locked modules). + + - CLucene >= 0.9.16, available from http://clucene.sf.net/. + + +If you don't have the sources already, please browse to www.bibletime.info to see +a list of required packages with their download URLs. + +To install texts (e.g. Bibles), just use the Bookshelf Manager in the Settings +menu of BibleTime. + + +Compile BibleTime 1.6.5.1: +--------------------------- + +cd ~ +tar -xjf bibletime-1.6.5.1.tar.bz2 +cd ~/bibletime-1.6.5.1 # Move to your source directory +kde-config --prefix # Displays your KDE directory (optional) +./configure --prefix= # create makefiles +make # compile BibleTime +su -c "make install" # change to "root user" and install BibleTime + +After this, if you want to use the translations of BibleTime's UI, you should +install the bibletime-i18n package. + + +Debian specifics +--------------------------- +Debian (and possibly derived distros as well) use a non-standard path to +store the documentation of KDE programs. Therefore the ./configure line above in +this case needs to be changed to: + +kde_htmldir=/usr/share/doc/kde/HTML ./configure --prefix=/usr + +If you forget this, you'll likely not be able to access the handbook and the +BibleStudy HowTo. + + +Other useful make options +--------------------------- +make clean # Removes binaries from the directory + # where BibleTime was compiled, but not the source + +make uninstall # Removes BibleTime from your system + + +If something is missing in this file please post to info@bibletime.info, the contact +adress for BibleTime. Please read README for a short description of BibleTime 1.6.5.1. + + + +The BibleTime team, + + + + +______________________________________________________________________________ +** The standard Installation instructions of auto-tool packages ** +------------------------------------------------------------------------------ + + +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, a file +`config.cache' that saves the results of its tests to speed up +reconfiguring, and a file `config.log' containing compiler output +(useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If at some point `config.cache' +contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program +called `autoconf'. You only need `configure.in' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes a while. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Type `make install' to install the programs and any data files and + documentation. + + 4. You can remove the program binaries and object files from the + source code directory by typing `make clean'. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' +variable, you have to compile the package for one architecture at a time +in the source code directory. After you have installed the package for +one architecture, use `make distclean' before reconfiguring for another +architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/bin', `/usr/local/man', etc. You can specify an +installation prefix other than `/usr/local' by giving `configure' the +option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' can not figure out +automatically, but needs to determine by the type of host the package +will run on. Usually `configure' can figure that out, but if it prints +a message saying it can not guess the host type, give it the +`--host=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + +See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the host type. + + If you are building compiler tools for cross-compiling, you can also +use the `--target=TYPE' option to select the type of system they will +produce code for and the `--build=TYPE' option to select the type of +system on which you are compiling the package. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Operation Controls +================== + + `configure' recognizes the following options to control how it +operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely useful, options. + diff --git a/INSTALL.in b/INSTALL.in new file mode 100644 index 0000000..5704784 --- /dev/null +++ b/INSTALL.in @@ -0,0 +1,244 @@ +Installation instructions for BibleTime @VERSION@: +--------------------------- + +Sometimes it is difficult to compile BibleTime from source code, but it's +possible. Don't hesitate to ask for support at info@bibletime.info. In that +case, please include your system's configuration details. + +BibleTime @VERSION@ requires: + + - KDE >= 3.0 (at least the libraries (kdelibs) and the base package (kdebase)) + Although BibleTime should compile and run with KDE 3.0-3.3, we strongly recommend + to use the latest version of KDE available for your Linux installation. + + - SWORD 1.5.9, available from http://www.crosswire.org/sword/; you should include + a stability patch to Sword 1.5.9 available from the BibleTime download pages + (fixes problems with compressed and locked modules). + + - CLucene >= 0.9.16, available from http://clucene.sf.net/. + + +If you don't have the sources already, please browse to www.bibletime.info to see +a list of required packages with their download URLs. + +To install texts (e.g. Bibles), just use the Bookshelf Manager in the Settings +menu of BibleTime. + + +Compile BibleTime @VERSION@: +--------------------------- + +cd ~ +tar -xjf bibletime-@VERSION@.tar.bz2 +cd ~/bibletime-@VERSION@ # Move to your source directory +kde-config --prefix # Displays your KDE directory (optional) +./configure --prefix= # create makefiles +make # compile BibleTime +su -c "make install" # change to "root user" and install BibleTime + +After this, if you want to use the translations of BibleTime's UI, you should +install the bibletime-i18n package. + + +Debian specifics +--------------------------- +Debian (and possibly derived distros as well) use a non-standard path to +store the documentation of KDE programs. Therefore the ./configure line above in +this case needs to be changed to: + +kde_htmldir=/usr/share/doc/kde/HTML ./configure --prefix=/usr + +If you forget this, you'll likely not be able to access the handbook and the +BibleStudy HowTo. + + +Other useful make options +--------------------------- +make clean # Removes binaries from the directory + # where BibleTime was compiled, but not the source + +make uninstall # Removes BibleTime from your system + + +If something is missing in this file please post to info@bibletime.info, the contact +adress for BibleTime. Please read README for a short description of BibleTime @VERSION@. + + + +The BibleTime team, + + + + +______________________________________________________________________________ +** The standard Installation instructions of auto-tool packages ** +------------------------------------------------------------------------------ + + +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, a file +`config.cache' that saves the results of its tests to speed up +reconfiguring, and a file `config.log' containing compiler output +(useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If at some point `config.cache' +contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program +called `autoconf'. You only need `configure.in' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes a while. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Type `make install' to install the programs and any data files and + documentation. + + 4. You can remove the program binaries and object files from the + source code directory by typing `make clean'. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' +variable, you have to compile the package for one architecture at a time +in the source code directory. After you have installed the package for +one architecture, use `make distclean' before reconfiguring for another +architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/bin', `/usr/local/man', etc. You can specify an +installation prefix other than `/usr/local' by giving `configure' the +option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' can not figure out +automatically, but needs to determine by the type of host the package +will run on. Usually `configure' can figure that out, but if it prints +a message saying it can not guess the host type, give it the +`--host=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + +See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the host type. + + If you are building compiler tools for cross-compiling, you can also +use the `--target=TYPE' option to select the type of system they will +produce code for and the `--build=TYPE' option to select the type of +system on which you are compiling the package. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Operation Controls +================== + + `configure' recognizes the following options to control how it +operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely useful, options. + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..21ccb13 --- /dev/null +++ b/LICENSE @@ -0,0 +1,291 @@ + The BibleTime Project + + - Free Bible study software for KDE - + +(C) 1998-2005 by the BibleTime Team (info@bibletime.info) + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License version 2 as +published by the Free Software Foundation. + + + 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 diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..9f40e2f --- /dev/null +++ b/Makefile.am @@ -0,0 +1,80 @@ +KDE_OPTIONS = noautodist +SUBDIRS = bibletime pot docs . + +EXTRA_DIST = \ +BibleTime.kdevelop \ +LICENSE \ +ChangeLog \ +bibletime.spec.in bibletime.spec \ +README.in README \ +INSTALL.in INSTALL\ +bibletime.lsm.in bibletime.lsm \ +configure.in.in configure.in \ +bibletime.desktop.in bibletime.desktop \ +Makefile.cvs autogen.sh \ +bibletime.m4 sword.m4 clucene.m4 + +btadmindir = $(top_srcdir)/admin + +# EXTRA_DIST += $(btadmindir)/ChangeLog +EXTRA_DIST += $(btadmindir)/compile +EXTRA_DIST += $(btadmindir)/config.guess +EXTRA_DIST += $(btadmindir)/config.pl +EXTRA_DIST += $(btadmindir)/config.sub +EXTRA_DIST += $(btadmindir)/configure.in.bot.end +EXTRA_DIST += $(btadmindir)/configure.in.min +EXTRA_DIST += $(btadmindir)/cvs-clean.pl +EXTRA_DIST += $(btadmindir)/install-sh +EXTRA_DIST += $(btadmindir)/ltmain.sh +EXTRA_DIST += $(btadmindir)/missing +EXTRA_DIST += $(btadmindir)/mkinstalldirs +EXTRA_DIST += $(btadmindir)/ylwrap +EXTRA_DIST += $(btadmindir)/Makefile.common +EXTRA_DIST += $(btadmindir)/acinclude.m4.in +EXTRA_DIST += $(btadmindir)/am_edit +EXTRA_DIST += $(btadmindir)/conf.change.pl +EXTRA_DIST += $(btadmindir)/debianrules +EXTRA_DIST += $(btadmindir)/depcomp +EXTRA_DIST += $(btadmindir)/detect-autoconf.sh +EXTRA_DIST += $(btadmindir)/libtool.m4.in +EXTRA_DIST += $(btadmindir)/nmcheck +EXTRA_DIST += $(btadmindir)/cvs.sh + + +# not a GNU package. You can remove this line, if +# have all needed files, that a GNU package needs +AUTOMAKE_OPTIONS = 1.6 foreign dist-bzip2 + +$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in sword.m4 bibletime.m4 clucene.m4 + @cd $(top_srcdir) && cat admin/acinclude.m4.in admin/libtool.m4.in sword.m4 bibletime.m4 clucene.m4 > acinclude.m4 +$(top_srcdir)/configure.in: $(top_srcdir)/configure.files $(shell test -f $(top_srcdir)/configure.files && cat $(top_srcdir)/configure.files) + cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.in +$(top_srcdir)/subdirs: + cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common subdirs +$(top_srcdir)/configure.files: + cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.files + +install-data-local: + chmod 755 $(DESTDIR)$(kde_datadir)/bibletime -R + $(mkinstalldirs) $(datadir)/applications + $(INSTALL_DATA) $(top_builddir)/bibletime.desktop $(datadir)/applications/bibletime.desktop + +uninstall-local: + -rm -f $(datadir)/applications/bibletime.desktop + +MAINTAINERCLEANFILES = configure.files subdirs + +dist-hook: + rm -f $(distdir)/bibletime-*.tar.gz $(distdir)/bibletime-*.tar.bz2 + rm -rf $(find $(distdir) -name tags -o -name TAGS -o -name \*.xcf -o -name \*.xcf.bz2) +# rm -f $(distdir)/admin/Changelog $(distdir)/make-messages.sh \ +# $(distdir)/extractrc $(distdir)/preparetips \ +# $(distdir)/bibletime.doxygen $(distdir)/bibletime.kdevses \ +# $(distdir)/bibletime.start $(distdir)/configure.files \ +# $(distdir)/bibletime/pics/gen_am.sh + rm -rf $(distdir)/autom4te.cache + rm -rf $(distdir)/BibleTime.kdevelop.pcs + rm -rf $(distdir)/docs/handbook/html/*.html + rm -rf $(distdir)/docs/howto/html/*.html +# rm -rf $(distdir)/BibleTime.tag +# $(distdir)/BibleTime.kdevses diff --git a/Makefile.cvs b/Makefile.cvs new file mode 100644 index 0000000..2444ea1 --- /dev/null +++ b/Makefile.cvs @@ -0,0 +1,14 @@ +# +# Makefile for the cvs repository of BibleTime +# Modified by Martin Gruner +# +# Copyright: (c) 2000 The BibleTime team. +# + +all: + @echo "This Makefile is only for the CVS repository" + @echo "This will be deleted before making the distribution" + @echo "" + $(MAKE) -f admin/Makefile.common cvs + +.SILENT: diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..67d62df --- /dev/null +++ b/Makefile.in @@ -0,0 +1,953 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = . +DIST_COMMON = $(am__configure_deps) $(srcdir)/INSTALL.in \ + $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/README.in $(srcdir)/bibletime.desktop.in \ + $(srcdir)/bibletime.lsm.in $(srcdir)/bibletime.spec.in \ + $(srcdir)/config.h.in $(top_srcdir)/configure ChangeLog \ + admin/compile admin/config.guess admin/config.sub \ + admin/depcomp admin/install-sh admin/ltmain.sh admin/missing \ + admin/mkinstalldirs admin/ylwrap +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = README INSTALL bibletime.lsm bibletime.spec \ + bibletime.desktop +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_OPTIONS = noautodist +SUBDIRS = bibletime pot docs . + +# EXTRA_DIST += $(btadmindir)/ChangeLog +EXTRA_DIST = BibleTime.kdevelop LICENSE ChangeLog bibletime.spec.in \ + bibletime.spec README.in README INSTALL.in INSTALL \ + bibletime.lsm.in bibletime.lsm configure.in.in configure.in \ + bibletime.desktop.in bibletime.desktop Makefile.cvs autogen.sh \ + bibletime.m4 sword.m4 clucene.m4 $(btadmindir)/compile \ + $(btadmindir)/config.guess $(btadmindir)/config.pl \ + $(btadmindir)/config.sub $(btadmindir)/configure.in.bot.end \ + $(btadmindir)/configure.in.min $(btadmindir)/cvs-clean.pl \ + $(btadmindir)/install-sh $(btadmindir)/ltmain.sh \ + $(btadmindir)/missing $(btadmindir)/mkinstalldirs \ + $(btadmindir)/ylwrap $(btadmindir)/Makefile.common \ + $(btadmindir)/acinclude.m4.in $(btadmindir)/am_edit \ + $(btadmindir)/conf.change.pl $(btadmindir)/debianrules \ + $(btadmindir)/depcomp $(btadmindir)/detect-autoconf.sh \ + $(btadmindir)/libtool.m4.in $(btadmindir)/nmcheck \ + $(btadmindir)/cvs.sh +btadmindir = $(top_srcdir)/admin + +# not a GNU package. You can remove this line, if +# have all needed files, that a GNU package needs +AUTOMAKE_OPTIONS = 1.6 foreign dist-bzip2 +MAINTAINERCLEANFILES = configure.files subdirs +#>- all: config.h +#>+ 1 +all: docs-am config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ +#>- cd $(srcdir) && $(AUTOMAKE) --foreign \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --foreign Makefile +#>+ 14 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ + ( \ + cd $(srcdir) && $(AUTOMAKE) --foreign \ + ) || exit 1; echo ' cd $(top_srcdir) && perl admin/am_edit '; cd $(top_srcdir) && perl admin/am_edit && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile + cd $(top_srcdir) && perl admin/am_edit Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) +#>- cd $(srcdir) && $(AUTOCONF) +#>+ 2 + cd $(srcdir) && rm -f configure + cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_srcdir) && $(AUTOHEADER) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +README: $(top_builddir)/config.status $(srcdir)/README.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +INSTALL: $(top_builddir)/config.status $(srcdir)/INSTALL.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +bibletime.lsm: $(top_builddir)/config.status $(srcdir)/bibletime.lsm.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +bibletime.spec: $(top_builddir)/config.status $(srcdir)/bibletime.spec.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +bibletime.desktop: $(top_builddir)/config.status $(srcdir)/bibletime.desktop.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d $(distdir) || mkdir $(distdir) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile config.h +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-am clean clean-generic \ + clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ + dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-zip \ + distcheck distclean distclean-generic distclean-hdr \ + distclean-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-data-local install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am uninstall-local + + +$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in sword.m4 bibletime.m4 clucene.m4 + @cd $(top_srcdir) && cat admin/acinclude.m4.in admin/libtool.m4.in sword.m4 bibletime.m4 clucene.m4 > acinclude.m4 +$(top_srcdir)/configure.in: $(top_srcdir)/configure.files $(shell test -f $(top_srcdir)/configure.files && cat $(top_srcdir)/configure.files) + cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.in +$(top_srcdir)/subdirs: + cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common subdirs +$(top_srcdir)/configure.files: + cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.files + +install-data-local: + chmod 755 $(DESTDIR)$(kde_datadir)/bibletime -R +#>- $(mkinstalldirs) $(datadir)/applications +#>+ 1 + $(mkinstalldirs) $(DESTDIR)$(datadir)/applications +#>- $(INSTALL_DATA) $(top_builddir)/bibletime.desktop $(datadir)/applications/bibletime.desktop +#>+ 1 + $(INSTALL_DATA) $(top_builddir)/bibletime.desktop $(DESTDIR)$(datadir)/applications/bibletime.desktop + +uninstall-local: +#>- -rm -f $(datadir)/applications/bibletime.desktop +#>+ 1 + -rm -f $(DESTDIR)$(datadir)/applications/bibletime.desktop + +dist-hook: + rm -f $(distdir)/bibletime-*.tar.gz $(distdir)/bibletime-*.tar.bz2 + rm -rf $(find $(distdir) -name tags -o -name TAGS -o -name \*.xcf -o -name \*.xcf.bz2) +# rm -f $(distdir)/admin/Changelog $(distdir)/make-messages.sh \ +# $(distdir)/extractrc $(distdir)/preparetips \ +# $(distdir)/bibletime.doxygen $(distdir)/bibletime.kdevses \ +# $(distdir)/bibletime.start $(distdir)/configure.files \ +# $(distdir)/bibletime/pics/gen_am.sh + rm -rf $(distdir)/autom4te.cache + rm -rf $(distdir)/BibleTime.kdevelop.pcs + rm -rf $(distdir)/docs/handbook/html/*.html + rm -rf $(distdir)/docs/howto/html/*.html +# rm -rf $(distdir)/BibleTime.tag +# $(distdir)/BibleTime.kdevses +# 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: + +#>+ 2 +docs-am: + +#>+ 7 +force-reedit: + \ + cd $(srcdir) && $(AUTOMAKE) --foreign \ + + cd $(top_srcdir) && perl admin/am_edit Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/README b/README new file mode 100644 index 0000000..4b906e9 --- /dev/null +++ b/README @@ -0,0 +1,36 @@ +In this file: +------------- + * General introduction + * Requirements + * Documentation + +General introduction: +-------------------- +This is BibleTime 1.6.5.1. BibleTime is a Bible study application based on KDE 3.3 or later. + +Please report any bugs your find to info@bibletime.info or use the links on our webpage at +http://www.bibletime.info. Please do not hesitate to send suggestions or criticism to info@bibletime.info. + +Read the file INSTALL how to install and compile this version of BibleTime. There's also a SPEC file +to create RPMs, it's called bibletime.spec. + +For a list of the contributors to BibleTime read the "About BibleTime" pages available in the +"Help" menu of BibleTime. + +This README file contains some useful instructions and tips how to use BibleTime. +Please read the handbook, too. It contains many instructions about the usage and +installation of BibleTime. + +Requirements: +------------- +See file INSTALL for detailed installation instructions. + +Documentation: +-------------- +You can find information about BibleTime, the installation and its usage in the following places: + o http://www.bibletime.info/ + o The BibleTime handbook available in the Help menu of the BibleTime application + o There's a Bible study tutorial in the help menu + +May God, our Lord use BibleTime for his glory, +The BibleTime developers, info@bibletime.info diff --git a/README.in b/README.in new file mode 100644 index 0000000..d53a104 --- /dev/null +++ b/README.in @@ -0,0 +1,36 @@ +In this file: +------------- + * General introduction + * Requirements + * Documentation + +General introduction: +-------------------- +This is BibleTime @VERSION@. BibleTime is a Bible study application based on KDE 3.3 or later. + +Please report any bugs your find to info@bibletime.info or use the links on our webpage at +http://www.bibletime.info. Please do not hesitate to send suggestions or criticism to info@bibletime.info. + +Read the file INSTALL how to install and compile this version of BibleTime. There's also a SPEC file +to create RPMs, it's called bibletime.spec. + +For a list of the contributors to BibleTime read the "About BibleTime" pages available in the +"Help" menu of BibleTime. + +This README file contains some useful instructions and tips how to use BibleTime. +Please read the handbook, too. It contains many instructions about the usage and +installation of BibleTime. + +Requirements: +------------- +See file INSTALL for detailed installation instructions. + +Documentation: +-------------- +You can find information about BibleTime, the installation and its usage in the following places: + o http://www.bibletime.info/ + o The BibleTime handbook available in the Help menu of the BibleTime application + o There's a Bible study tutorial in the help menu + +May God, our Lord use BibleTime for his glory, +The BibleTime developers, info@bibletime.info diff --git a/acinclude.m4 b/acinclude.m4 new file mode 100644 index 0000000..bbd9be2 --- /dev/null +++ b/acinclude.m4 @@ -0,0 +1,12174 @@ +## -*- autoconf -*- + +dnl This file is part of the KDE libraries/packages +dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu) +dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org) + +dnl This file is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Library General Public +dnl License as published by the Free Software Foundation; either +dnl version 2 of the License, or (at your option) any later version. + +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Library General Public License for more details. + +dnl You should have received a copy of the GNU Library General Public License +dnl along with this library; see the file COPYING.LIB. If not, write to +dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +dnl Boston, MA 02111-1307, USA. + +dnl IMPORTANT NOTE: +dnl Please do not modify this file unless you expect your modifications to be +dnl carried into every other module in the repository. +dnl +dnl Single-module modifications are best placed in configure.in for kdelibs +dnl and kdebase or configure.in.in if present. + +# KDE_PATH_X_DIRECT +dnl Internal subroutine of AC_PATH_X. +dnl Set ac_x_includes and/or ac_x_libraries. +AC_DEFUN([KDE_PATH_X_DIRECT], +[ +AC_REQUIRE([KDE_CHECK_LIB64]) + +if test "$ac_x_includes" = NO; then + # Guess where to find include files, by looking for this one X11 .h file. + test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h + + # First, try using that file with no special directory specified. +AC_TRY_CPP([#include <$x_direct_test_include>], +[# We can compile using X headers with no special include directory. +ac_x_includes=], +[# Look for the header file in a standard set of common directories. +# Check X11 before X11Rn because it is often a symlink to the current release. + for ac_dir in \ + /usr/X11/include \ + /usr/X11R6/include \ + /usr/X11R5/include \ + /usr/X11R4/include \ + \ + /usr/include/X11 \ + /usr/include/X11R6 \ + /usr/include/X11R5 \ + /usr/include/X11R4 \ + \ + /usr/local/X11/include \ + /usr/local/X11R6/include \ + /usr/local/X11R5/include \ + /usr/local/X11R4/include \ + \ + /usr/local/include/X11 \ + /usr/local/include/X11R6 \ + /usr/local/include/X11R5 \ + /usr/local/include/X11R4 \ + \ + /usr/X386/include \ + /usr/x386/include \ + /usr/XFree86/include/X11 \ + \ + /usr/include \ + /usr/local/include \ + /usr/unsupported/include \ + /usr/athena/include \ + /usr/local/x11r5/include \ + /usr/lpp/Xamples/include \ + \ + /usr/openwin/include \ + /usr/openwin/share/include \ + ; \ + do + if test -r "$ac_dir/$x_direct_test_include"; then + ac_x_includes=$ac_dir + break + fi + done]) +fi # $ac_x_includes = NO + +if test "$ac_x_libraries" = NO; then + # Check for the libraries. + + test -z "$x_direct_test_library" && x_direct_test_library=Xt + test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc + + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS="$LIBS" + LIBS="-l$x_direct_test_library $LIBS" +AC_TRY_LINK([#include ], [${x_direct_test_function}(1)], +[LIBS="$ac_save_LIBS" +# We can link X programs with no special library path. +ac_x_libraries=], +[LIBS="$ac_save_LIBS" +# First see if replacing the include by lib works. +# Check X11 before X11Rn because it is often a symlink to the current release. +for ac_dir in `echo "$ac_x_includes" | sed s/include/lib${kdelibsuff}/` \ + /usr/X11/lib${kdelibsuff} \ + /usr/X11R6/lib${kdelibsuff} \ + /usr/X11R5/lib${kdelibsuff} \ + /usr/X11R4/lib${kdelibsuff} \ + \ + /usr/lib${kdelibsuff}/X11 \ + /usr/lib${kdelibsuff}/X11R6 \ + /usr/lib${kdelibsuff}/X11R5 \ + /usr/lib${kdelibsuff}/X11R4 \ + \ + /usr/local/X11/lib${kdelibsuff} \ + /usr/local/X11R6/lib${kdelibsuff} \ + /usr/local/X11R5/lib${kdelibsuff} \ + /usr/local/X11R4/lib${kdelibsuff} \ + \ + /usr/local/lib${kdelibsuff}/X11 \ + /usr/local/lib${kdelibsuff}/X11R6 \ + /usr/local/lib${kdelibsuff}/X11R5 \ + /usr/local/lib${kdelibsuff}/X11R4 \ + \ + /usr/X386/lib${kdelibsuff} \ + /usr/x386/lib${kdelibsuff} \ + /usr/XFree86/lib${kdelibsuff}/X11 \ + \ + /usr/lib${kdelibsuff} \ + /usr/local/lib${kdelibsuff} \ + /usr/unsupported/lib${kdelibsuff} \ + /usr/athena/lib${kdelibsuff} \ + /usr/local/x11r5/lib${kdelibsuff} \ + /usr/lpp/Xamples/lib${kdelibsuff} \ + /lib/usr/lib${kdelibsuff}/X11 \ + \ + /usr/openwin/lib${kdelibsuff} \ + /usr/openwin/share/lib${kdelibsuff} \ + ; \ +do +dnl Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl; do + if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done]) +fi # $ac_x_libraries = NO +]) + + +dnl ------------------------------------------------------------------------ +dnl Find a file (or one of more files in a list of dirs) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_FIND_FILE], +[ +$3=NO +for i in $2; +do + for j in $1; + do + echo "configure: __oline__: $i/$j" >&AC_FD_CC + if test -r "$i/$j"; then + echo "taking that" >&AC_FD_CC + $3=$i + break 2 + fi + done +done +]) + +dnl KDE_FIND_PATH(program-name, variable-name, list-of-dirs, +dnl if-not-found, test-parameter, prepend-path) +dnl +dnl Look for program-name in list-of-dirs+$PATH. +dnl If prepend-path is set, look in $PATH+list-of-dirs instead. +dnl If found, $variable-name is set. If not, if-not-found is evaluated. +dnl test-parameter: if set, the program is executed with this arg, +dnl and only a successful exit code is required. +AC_DEFUN([KDE_FIND_PATH], +[ + AC_MSG_CHECKING([for $1]) + if test -n "$$2"; then + kde_cv_path="$$2"; + else + kde_cache=`echo $1 | sed 'y%./+-%__p_%'` + + AC_CACHE_VAL(kde_cv_path_$kde_cache, + [ + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z "$6"; then dnl Append dirs in PATH (default) + dirs="$3 $dirs" + else dnl Prepend dirs in PATH (if 6th arg is set) + dirs="$dirs $3" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/$1"; then + if test -n "$5" + then + evalstr="$dir/$1 $5 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/$1" + break + fi + else + kde_cv_path="$dir/$1" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + ]) + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + AC_MSG_RESULT(not found) + $4 + else + AC_MSG_RESULT($kde_cv_path) + $2=$kde_cv_path + + fi +]) + +AC_DEFUN([KDE_MOC_ERROR_MESSAGE], +[ + AC_MSG_ERROR([No Qt meta object compiler (moc) found! +Please check whether you installed Qt correctly. +You need to have a running moc binary. +configure tried to run $ac_cv_path_moc and the test didn't +succeed. If configure shouldn't have tried this one, set +the environment variable MOC to the right one before running +configure. +]) +]) + +AC_DEFUN([KDE_UIC_ERROR_MESSAGE], +[ + AC_MSG_WARN([No Qt ui compiler (uic) found! +Please check whether you installed Qt correctly. +You need to have a running uic binary. +configure tried to run $ac_cv_path_uic and the test didn't +succeed. If configure shouldn't have tried this one, set +the environment variable UIC to the right one before running +configure. +]) +]) + + +AC_DEFUN([KDE_CHECK_UIC_FLAG], +[ + AC_MSG_CHECKING([whether uic supports -$1 ]) + kde_cache=`echo $1 | sed 'y% .=/+-%____p_%'` + AC_CACHE_VAL(kde_cv_prog_uic_$kde_cache, + [ + cat >conftest.ui < +EOT + ac_uic_testrun="$UIC_PATH -$1 $2 conftest.ui >/dev/null" + if AC_TRY_EVAL(ac_uic_testrun); then + eval "kde_cv_prog_uic_$kde_cache=yes" + else + eval "kde_cv_prog_uic_$kde_cache=no" + fi + rm -f conftest* + ]) + + if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then + AC_MSG_RESULT([yes]) + : + $3 + else + AC_MSG_RESULT([no]) + : + $4 + fi +]) + + +dnl ------------------------------------------------------------------------ +dnl Find the meta object compiler and the ui compiler in the PATH, +dnl in $QTDIR/bin, and some more usual places +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_PATH_QT_MOC_UIC], +[ + AC_REQUIRE([KDE_CHECK_PERL]) + qt_bindirs="" + for dir in $kde_qt_dirs; do + qt_bindirs="$qt_bindirs $dir/bin $dir/src/moc" + done + qt_bindirs="$qt_bindirs /usr/bin /usr/X11R6/bin /usr/local/qt/bin" + if test ! "$ac_qt_bindir" = "NO"; then + qt_bindirs="$ac_qt_bindir $qt_bindirs" + fi + + KDE_FIND_PATH(moc, MOC, [$qt_bindirs], [KDE_MOC_ERROR_MESSAGE]) + if test -z "$UIC_NOT_NEEDED"; then + KDE_FIND_PATH(uic, UIC_PATH, [$qt_bindirs], [UIC_PATH=""]) + if test -z "$UIC_PATH" ; then + KDE_UIC_ERROR_MESSAGE + exit 1 + else + UIC=$UIC_PATH + + if test $kde_qtver = 3; then + KDE_CHECK_UIC_FLAG(L,[/nonexistent],ac_uic_supports_libpath=yes,ac_uic_supports_libpath=no) + KDE_CHECK_UIC_FLAG(nounload,,ac_uic_supports_nounload=yes,ac_uic_supports_nounload=no) + + if test x$ac_uic_supports_libpath = xyes; then + UIC="$UIC -L \$(kde_widgetdir)" + fi + if test x$ac_uic_supports_nounload = xyes; then + UIC="$UIC -nounload" + fi + fi + fi + else + UIC="echo uic not available: " + fi + + AC_SUBST(MOC) + AC_SUBST(UIC) + + UIC_TR="i18n" + if test $kde_qtver = 3; then + UIC_TR="tr2i18n" + fi + + AC_SUBST(UIC_TR) +]) + +AC_DEFUN([KDE_1_CHECK_PATHS], +[ + KDE_1_CHECK_PATH_HEADERS + + KDE_TEST_RPATH= + + if test -n "$USE_RPATH"; then + + if test -n "$kde_libraries"; then + KDE_TEST_RPATH="-R $kde_libraries" + fi + + if test -n "$qt_libraries"; then + KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries" + fi + + if test -n "$x_libraries"; then + KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries" + fi + + KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH" + fi + +AC_MSG_CHECKING([for KDE libraries installed]) +ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -lkdecore $LIBQT $KDE_TEST_RPATH 1>&5' + +if AC_TRY_EVAL(ac_link) && test -s conftest; then + AC_MSG_RESULT(yes) +else + AC_MSG_ERROR([your system fails at linking a small KDE application! +Check, if your compiler is installed correctly and if you have used the +same compiler to compile Qt and kdelibs as you did use now. +For more details about this problem, look at the end of config.log.]) +fi + +if eval `KDEDIR= ./conftest 2>&5`; then + kde_result=done +else + kde_result=problems +fi + +KDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log +kde_have_all_paths=yes + +KDE_SET_PATHS($kde_result) + +]) + +AC_DEFUN([KDE_SET_PATHS], +[ + kde_cv_all_paths="kde_have_all_paths=\"yes\" \ + kde_htmldir=\"$kde_htmldir\" \ + kde_appsdir=\"$kde_appsdir\" \ + kde_icondir=\"$kde_icondir\" \ + kde_sounddir=\"$kde_sounddir\" \ + kde_datadir=\"$kde_datadir\" \ + kde_locale=\"$kde_locale\" \ + kde_cgidir=\"$kde_cgidir\" \ + kde_confdir=\"$kde_confdir\" \ + kde_kcfgdir=\"$kde_kcfgdir\" \ + kde_mimedir=\"$kde_mimedir\" \ + kde_toolbardir=\"$kde_toolbardir\" \ + kde_wallpaperdir=\"$kde_wallpaperdir\" \ + kde_templatesdir=\"$kde_templatesdir\" \ + kde_bindir=\"$kde_bindir\" \ + kde_servicesdir=\"$kde_servicesdir\" \ + kde_servicetypesdir=\"$kde_servicetypesdir\" \ + kde_moduledir=\"$kde_moduledir\" \ + kde_styledir=\"$kde_styledir\" \ + kde_widgetdir=\"$kde_widgetdir\" \ + xdg_appsdir=\"$xdg_appsdir\" \ + xdg_menudir=\"$xdg_menudir\" \ + xdg_directorydir=\"$xdg_directorydir\" \ + kde_result=$1" +]) + +AC_DEFUN([KDE_SET_DEFAULT_PATHS], +[ +if test "$1" = "default"; then + + if test -z "$kde_htmldir"; then + kde_htmldir='\${datadir}/doc/HTML' + fi + if test -z "$kde_appsdir"; then + kde_appsdir='\${datadir}/applnk' + fi + if test -z "$kde_icondir"; then + kde_icondir='\${datadir}/icons' + fi + if test -z "$kde_sounddir"; then + kde_sounddir='\${datadir}/sounds' + fi + if test -z "$kde_datadir"; then + kde_datadir='\${datadir}/apps' + fi + if test -z "$kde_locale"; then + kde_locale='\${datadir}/locale' + fi + if test -z "$kde_cgidir"; then + kde_cgidir='\${exec_prefix}/cgi-bin' + fi + if test -z "$kde_confdir"; then + kde_confdir='\${datadir}/config' + fi + if test -z "$kde_kcfgdir"; then + kde_kcfgdir='\${datadir}/config.kcfg' + fi + if test -z "$kde_mimedir"; then + kde_mimedir='\${datadir}/mimelnk' + fi + if test -z "$kde_toolbardir"; then + kde_toolbardir='\${datadir}/toolbar' + fi + if test -z "$kde_wallpaperdir"; then + kde_wallpaperdir='\${datadir}/wallpapers' + fi + if test -z "$kde_templatesdir"; then + kde_templatesdir='\${datadir}/templates' + fi + if test -z "$kde_bindir"; then + kde_bindir='\${exec_prefix}/bin' + fi + if test -z "$kde_servicesdir"; then + kde_servicesdir='\${datadir}/services' + fi + if test -z "$kde_servicetypesdir"; then + kde_servicetypesdir='\${datadir}/servicetypes' + fi + if test -z "$kde_moduledir"; then + if test "$kde_qtver" = "2"; then + kde_moduledir='\${libdir}/kde2' + else + kde_moduledir='\${libdir}/kde3' + fi + fi + if test -z "$kde_styledir"; then + kde_styledir='\${libdir}/kde3/plugins/styles' + fi + if test -z "$kde_widgetdir"; then + kde_widgetdir='\${libdir}/kde3/plugins/designer' + fi + if test -z "$xdg_appsdir"; then + xdg_appsdir='\${datadir}/applications/kde' + fi + if test -z "$xdg_menudir"; then + xdg_menudir='\${sysconfdir}/xdg/menus' + fi + if test -z "$xdg_directorydir"; then + xdg_directorydir='\${datadir}/desktop-directories' + fi + + KDE_SET_PATHS(defaults) + +else + + if test $kde_qtver = 1; then + AC_MSG_RESULT([compiling]) + KDE_1_CHECK_PATHS + else + AC_MSG_ERROR([path checking not yet supported for KDE 2]) + fi + +fi +]) + +AC_DEFUN([KDE_CHECK_PATHS_FOR_COMPLETENESS], +[ if test -z "$kde_htmldir" || test -z "$kde_appsdir" || + test -z "$kde_icondir" || test -z "$kde_sounddir" || + test -z "$kde_datadir" || test -z "$kde_locale" || + test -z "$kde_cgidir" || test -z "$kde_confdir" || + test -z "$kde_kcfgdir" || + test -z "$kde_mimedir" || test -z "$kde_toolbardir" || + test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" || + test -z "$kde_bindir" || test -z "$kde_servicesdir" || + test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" || + test -z "$kde_styledir" || test -z "kde_widgetdir" || + test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" || + test "x$kde_have_all_paths" != "xyes"; then + kde_have_all_paths=no + fi +]) + +AC_DEFUN([KDE_MISSING_PROG_ERROR], +[ + AC_MSG_ERROR([The important program $1 was not found! +Please check whether you installed KDE correctly. +]) +]) + +AC_DEFUN([KDE_MISSING_ARTS_ERROR], +[ + AC_MSG_ERROR([The important program $1 was not found! +Please check whether you installed aRts correctly or use +--without-arts to compile without aRts support (this will remove functionality). +]) +]) + +AC_DEFUN([KDE_SET_DEFAULT_BINDIRS], +[ + kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin" + test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs" + if test -n "$KDEDIRS"; then + kde_save_IFS=$IFS + IFS=: + for dir in $KDEDIRS; do + kde_default_bindirs="$dir/bin $kde_default_bindirs " + done + IFS=$kde_save_IFS + fi +]) + +AC_DEFUN([KDE_SUBST_PROGRAMS], +[ + AC_ARG_WITH(arts, + AC_HELP_STRING([--without-arts],[build without aRts [default=no]]), + [build_arts=$withval], + [build_arts=yes] + ) + AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no") + if test "$build_arts" = "no"; then + AC_DEFINE(WITHOUT_ARTS, 1, [Defined if compiling without arts]) + fi + + KDE_SET_DEFAULT_BINDIRS + kde_default_bindirs="$exec_prefix/bin $prefix/bin $kde_libs_prefix/bin $kde_default_bindirs" + KDE_FIND_PATH(dcopidl, DCOPIDL, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl)]) + KDE_FIND_PATH(dcopidl2cpp, DCOPIDL2CPP, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl2cpp)]) + if test "$build_arts" '!=' "no"; then + KDE_FIND_PATH(mcopidl, MCOPIDL, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(mcopidl)]) + KDE_FIND_PATH(artsc-config, ARTSCCONFIG, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(artsc-config)]) + fi + KDE_FIND_PATH(meinproc, MEINPROC, [$kde_default_bindirs]) + + kde32ornewer=1 + kde33ornewer=1 + if test -n "$kde_qtver" && test "$kde_qtver" -lt 3; then + kde32ornewer= + kde33ornewer= + else + if test "$kde_qtver" = "3"; then + if test "$kde_qtsubver" -le 1; then + kde32ornewer= + fi + if test "$kde_qtsubver" -le 2; then + kde33ornewer= + fi + fi + fi + + if test -n "$kde32ornewer"; then + KDE_FIND_PATH(kconfig_compiler, KCONFIG_COMPILER, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kconfig_compiler)]) + KDE_FIND_PATH(dcopidlng, DCOPIDLNG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidlng)]) + fi + if test -n "$kde33ornewer"; then + KDE_FIND_PATH(makekdewidgets, MAKEKDEWIDGETS, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(makekdewidgets)]) + AC_SUBST(MAKEKDEWIDGETS) + fi + KDE_FIND_PATH(xmllint, XMLLINT, [${prefix}/bin ${exec_prefix}/bin], [XMLLINT=""]) + + if test -n "$MEINPROC" && test ! "$MEINPROC" = "compiled"; then + kde_sharedirs="/usr/share/kde /usr/local/share /usr/share /opt/kde3/share /opt/kde/share $prefix/share" + test -n "$KDEDIR" && kde_sharedirs="$KDEDIR/share $kde_sharedirs" + AC_FIND_FILE(apps/ksgmltools2/customization/kde-chunk.xsl, $kde_sharedirs, KDE_XSL_STYLESHEET) + if test "$KDE_XSL_STYLESHEET" = "NO"; then + KDE_XSL_STYLESHEET="" + else + KDE_XSL_STYLESHEET="$KDE_XSL_STYLESHEET/apps/ksgmltools2/customization/kde-chunk.xsl" + fi + fi + + DCOP_DEPENDENCIES='$(DCOPIDL)' + if test -n "$kde32ornewer"; then + KCFG_DEPENDENCIES='$(KCONFIG_COMPILER)' + DCOP_DEPENDENCIES='$(DCOPIDL) $(DCOPIDLNG)' + AC_SUBST(KCONFIG_COMPILER) + AC_SUBST(KCFG_DEPENDENCIES) + AC_SUBST(DCOPIDLNG) + fi + AC_SUBST(DCOPIDL) + AC_SUBST(DCOPIDL2CPP) + AC_SUBST(DCOP_DEPENDENCIES) + AC_SUBST(MCOPIDL) + AC_SUBST(ARTSCCONFIG) + AC_SUBST(MEINPROC) + AC_SUBST(KDE_XSL_STYLESHEET) + AC_SUBST(XMLLINT) +])dnl + +AC_DEFUN([AC_CREATE_KFSSTND], +[ +AC_REQUIRE([AC_CHECK_RPATH]) + +AC_MSG_CHECKING([for KDE paths]) +kde_result="" +kde_cached_paths=yes +AC_CACHE_VAL(kde_cv_all_paths, +[ + KDE_SET_DEFAULT_PATHS($1) + kde_cached_paths=no +]) +eval "$kde_cv_all_paths" +KDE_CHECK_PATHS_FOR_COMPLETENESS +if test "$kde_have_all_paths" = "no" && test "$kde_cached_paths" = "yes"; then + # wrong values were cached, may be, we can set better ones + kde_result= + kde_htmldir= kde_appsdir= kde_icondir= kde_sounddir= + kde_datadir= kde_locale= kde_cgidir= kde_confdir= kde_kcfgdir= + kde_mimedir= kde_toolbardir= kde_wallpaperdir= kde_templatesdir= + kde_bindir= kde_servicesdir= kde_servicetypesdir= kde_moduledir= + kde_have_all_paths= + kde_styledir= + kde_widgetdir= + xdg_appsdir = xdg_menudir= xdg_directorydir= + KDE_SET_DEFAULT_PATHS($1) + eval "$kde_cv_all_paths" + KDE_CHECK_PATHS_FOR_COMPLETENESS + kde_result="$kde_result (cache overridden)" +fi +if test "$kde_have_all_paths" = "no"; then + AC_MSG_ERROR([configure could not run a little KDE program to test the environment. +Since it had compiled and linked before, it must be a strange problem on your system. +Look at config.log for details. If you are not able to fix this, look at +http://www.kde.org/faq/installation.html or any www.kde.org mirror. +(If you're using an egcs version on Linux, you may update binutils!) +]) +else + rm -f conftest* + AC_MSG_RESULT($kde_result) +fi + +bindir=$kde_bindir + +KDE_SUBST_PROGRAMS + +]) + +AC_DEFUN([AC_SUBST_KFSSTND], +[ +AC_SUBST(kde_htmldir) +AC_SUBST(kde_appsdir) +AC_SUBST(kde_icondir) +AC_SUBST(kde_sounddir) +AC_SUBST(kde_datadir) +AC_SUBST(kde_locale) +AC_SUBST(kde_confdir) +AC_SUBST(kde_kcfgdir) +AC_SUBST(kde_mimedir) +AC_SUBST(kde_wallpaperdir) +AC_SUBST(kde_bindir) +dnl X Desktop Group standards +AC_SUBST(xdg_appsdir) +AC_SUBST(xdg_menudir) +AC_SUBST(xdg_directorydir) +dnl for KDE 2 +AC_SUBST(kde_templatesdir) +AC_SUBST(kde_servicesdir) +AC_SUBST(kde_servicetypesdir) +AC_SUBST(kde_moduledir) +AC_SUBST(kdeinitdir, '$(kde_moduledir)') +AC_SUBST(kde_styledir) +AC_SUBST(kde_widgetdir) +if test "$kde_qtver" = 1; then + kde_minidir="$kde_icondir/mini" +else +# for KDE 1 - this breaks KDE2 apps using minidir, but +# that's the plan ;-/ + kde_minidir="/dev/null" +fi +dnl AC_SUBST(kde_minidir) +dnl AC_SUBST(kde_cgidir) +dnl AC_SUBST(kde_toolbardir) +]) + +AC_DEFUN([KDE_MISC_TESTS], +[ + dnl Checks for libraries. + AC_CHECK_LIB(util, main, [LIBUTIL="-lutil"]) dnl for *BSD + AC_SUBST(LIBUTIL) + AC_CHECK_LIB(compat, main, [LIBCOMPAT="-lcompat"]) dnl for *BSD + AC_SUBST(LIBCOMPAT) + kde_have_crypt= + AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"; kde_have_crypt=yes], + AC_CHECK_LIB(c, crypt, [kde_have_crypt=yes], [ + AC_MSG_WARN([you have no crypt in either libcrypt or libc. +You should install libcrypt from another source or configure with PAM +support]) + kde_have_crypt=no + ])) + AC_SUBST(LIBCRYPT) + if test $kde_have_crypt = yes; then + AC_DEFINE_UNQUOTED(HAVE_CRYPT, 1, [Defines if your system has the crypt function]) + fi + AC_CHECK_SOCKLEN_T + AC_CHECK_LIB(dnet, dnet_ntoa, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"]) + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + AC_CHECK_LIB(dnet_stub, dnet_ntoa, + [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"]) + fi + AC_CHECK_FUNC(inet_ntoa) + if test $ac_cv_func_inet_ntoa = no; then + AC_CHECK_LIB(nsl, inet_ntoa, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl") + fi + AC_CHECK_FUNC(connect) + if test $ac_cv_func_connect = no; then + AC_CHECK_LIB(socket, connect, X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS", , + $X_EXTRA_LIBS) + fi + + AC_CHECK_FUNC(remove) + if test $ac_cv_func_remove = no; then + AC_CHECK_LIB(posix, remove, X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix") + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + AC_CHECK_FUNC(shmat, , + AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc")) + + # more headers that need to be explicitly included on darwin + AC_CHECK_HEADERS(sys/types.h stdint.h) + + # sys/bitypes.h is needed for uint32_t and friends on Tru64 + AC_CHECK_HEADERS(sys/bitypes.h) + + # darwin requires a poll emulation library + AC_CHECK_LIB(poll, poll, LIB_POLL="-lpoll") + + # for some image handling on Mac OS X + AC_CHECK_HEADERS(Carbon/Carbon.h) + + # CoreAudio framework + AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [ + AC_DEFINE(HAVE_COREAUDIO, 1, [Define if you have the CoreAudio API]) + FRAMEWORK_COREAUDIO="-Xlinker -framework -Xlinker CoreAudio" + ]) + + AC_CHECK_RES_INIT + AC_SUBST(LIB_POLL) + AC_SUBST(FRAMEWORK_COREAUDIO) + LIBSOCKET="$X_EXTRA_LIBS" + AC_SUBST(LIBSOCKET) + AC_SUBST(X_EXTRA_LIBS) + AC_CHECK_LIB(ucb, killpg, [LIBUCB="-lucb"]) dnl for Solaris2.4 + AC_SUBST(LIBUCB) + + case $host in dnl this *is* LynxOS specific + *-*-lynxos* ) + AC_MSG_CHECKING([LynxOS header file wrappers]) + [CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__"] + AC_MSG_RESULT(disabled) + AC_CHECK_LIB(bsd, gethostbyname, [LIBSOCKET="-lbsd"]) dnl for LynxOS + ;; + esac + + KDE_CHECK_TYPES + KDE_CHECK_LIBDL + KDE_CHECK_STRLCPY + +# darwin needs this to initialize the environment +AC_CHECK_HEADERS(crt_externs.h) +AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])]) + +AH_VERBATIM(_DARWIN_ENVIRON, +[ +#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H) +# include +# include +# define environ (*_NSGetEnviron()) +#endif +]) + +AH_VERBATIM(_AIX_STRINGS_H_BZERO, +[ +/* + * AIX defines FD_SET in terms of bzero, but fails to include + * that defines bzero. + */ + +#if defined(_AIX) +#include +#endif +]) + +AC_CHECK_FUNCS([vsnprintf snprintf]) + +AH_VERBATIM(_TRU64,[ +/* + * On HP-UX, the declaration of vsnprintf() is needed every time ! + */ + +#if !defined(HAVE_VSNPRINTF) || defined(hpux) +#if __STDC__ +#include +#include +#else +#include +#endif +#ifdef __cplusplus +extern "C" +#endif +int vsnprintf(char *str, size_t n, char const *fmt, va_list ap); +#ifdef __cplusplus +extern "C" +#endif +int snprintf(char *str, size_t n, char const *fmt, ...); +#endif +]) + +]) + +dnl ------------------------------------------------------------------------ +dnl Find the header files and libraries for X-Windows. Extended the +dnl macro AC_PATH_X +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([K_PATH_X], +[ +AC_REQUIRE([KDE_MISC_TESTS])dnl +AC_REQUIRE([KDE_CHECK_LIB64]) + +AC_ARG_ENABLE( + embedded, + AC_HELP_STRING([--enable-embedded],[link to Qt-embedded, don't use X]), + kde_use_qt_emb=$enableval, + kde_use_qt_emb=no +) + +AC_ARG_ENABLE( + qtopia, + AC_HELP_STRING([--enable-qtopia],[link to Qt-embedded, link to the Qtopia Environment]), + kde_use_qt_emb_palm=$enableval, + kde_use_qt_emb_palm=no +) + +AC_ARG_ENABLE( + mac, + AC_HELP_STRING([--enable-mac],[link to Qt/Mac (don't use X)]), + kde_use_qt_mac=$enableval, + kde_use_qt_mac=no +) + +# used to disable x11-specific stuff on special platforms +AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no") + +if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then + +AC_MSG_CHECKING(for X) + +AC_CACHE_VAL(kde_cv_have_x, +[# One or both of the vars are not set, and there is no cached value. +if test "{$x_includes+set}" = set || test "$x_includes" = NONE; then + kde_x_includes=NO +else + kde_x_includes=$x_includes +fi +if test "{$x_libraries+set}" = set || test "$x_libraries" = NONE; then + kde_x_libraries=NO +else + kde_x_libraries=$x_libraries +fi + +# below we use the standard autoconf calls +ac_x_libraries=$kde_x_libraries +ac_x_includes=$kde_x_includes + +KDE_PATH_X_DIRECT +dnl AC_PATH_X_XMKMF picks /usr/lib as the path for the X libraries. +dnl Unfortunately, if compiling with the N32 ABI, this is not the correct +dnl location. The correct location is /usr/lib32 or an undefined value +dnl (the linker is smart enough to pick the correct default library). +dnl Things work just fine if you use just AC_PATH_X_DIRECT. +dnl Solaris has a similar problem. AC_PATH_X_XMKMF forces x_includes to +dnl /usr/openwin/include, which doesn't work. /usr/include does work, so +dnl x_includes should be left alone. +case "$host" in +mips-sgi-irix6*) + ;; +*-*-solaris*) + ;; +*) + _AC_PATH_X_XMKMF + if test -z "$ac_x_includes"; then + ac_x_includes="." + fi + if test -z "$ac_x_libraries"; then + ac_x_libraries="/usr/lib${kdelibsuff}" + fi +esac +#from now on we use our own again + +# when the user already gave --x-includes, we ignore +# what the standard autoconf macros told us. +if test "$kde_x_includes" = NO; then + kde_x_includes=$ac_x_includes +fi + +# for --x-libraries too +if test "$kde_x_libraries" = NO; then + kde_x_libraries=$ac_x_libraries +fi + +if test "$kde_x_includes" = NO; then + AC_MSG_ERROR([Can't find X includes. Please check your installation and add the correct paths!]) +fi + +if test "$kde_x_libraries" = NO; then + AC_MSG_ERROR([Can't find X libraries. Please check your installation and add the correct paths!]) +fi + +# Record where we found X for the cache. +kde_cv_have_x="have_x=yes \ + kde_x_includes=$kde_x_includes kde_x_libraries=$kde_x_libraries" +])dnl + +eval "$kde_cv_have_x" + +if test "$have_x" != yes; then + AC_MSG_RESULT($have_x) + no_x=yes +else + AC_MSG_RESULT([libraries $kde_x_libraries, headers $kde_x_includes]) +fi + +if test -z "$kde_x_includes" || test "x$kde_x_includes" = xNONE; then + X_INCLUDES="" + x_includes="."; dnl better than nothing :- + else + x_includes=$kde_x_includes + X_INCLUDES="-I$x_includes" +fi + +if test -z "$kde_x_libraries" || test "x$kde_x_libraries" = xNONE; then + X_LDFLAGS="" + x_libraries="/usr/lib"; dnl better than nothing :- + else + x_libraries=$kde_x_libraries + X_LDFLAGS="-L$x_libraries" +fi +all_includes="$X_INCLUDES" +all_libraries="$X_LDFLAGS $LDFLAGS_AS_NEEDED $LDFLAGS_NEW_DTAGS" + +# Check for libraries that X11R6 Xt/Xaw programs need. +ac_save_LDFLAGS="$LDFLAGS" +LDFLAGS="$LDFLAGS $X_LDFLAGS" +# SM needs ICE to (dynamically) link under SunOS 4.x (so we have to +# check for ICE first), but we must link in the order -lSM -lICE or +# we get undefined symbols. So assume we have SM if we have ICE. +# These have to be linked with before -lX11, unlike the other +# libraries we check for below, so use a different variable. +# --interran@uluru.Stanford.EDU, kb@cs.umb.edu. +AC_CHECK_LIB(ICE, IceConnectionNumber, + [LIBSM="-lSM -lICE"], , $X_EXTRA_LIBS) +LDFLAGS="$ac_save_LDFLAGS" + +LIB_X11='-lX11 $(LIBSOCKET)' + +AC_MSG_CHECKING(for libXext) +AC_CACHE_VAL(kde_cv_have_libXext, +[ +kde_ldflags_safe="$LDFLAGS" +kde_libs_safe="$LIBS" + +LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS" +LIBS="-lXext -lX11 $LIBSOCKET" + +AC_TRY_LINK([ +#include +#ifdef STDC_HEADERS +# include +#endif +], +[ +printf("hello Xext\n"); +], +kde_cv_have_libXext=yes, +kde_cv_have_libXext=no +) + +LDFLAGS=$kde_ldflags_safe +LIBS=$kde_libs_safe +]) + +AC_MSG_RESULT($kde_cv_have_libXext) + +if test "$kde_cv_have_libXext" = "no"; then + AC_MSG_ERROR([We need a working libXext to proceed. Since configure +can't find it itself, we stop here assuming that make wouldn't find +them either.]) +fi + +LIB_XEXT="-lXext" +QTE_NORTTI="" + +elif test "$kde_use_qt_emb" = "yes"; then + dnl We're using QT Embedded + CPPFLAGS=-DQWS + CXXFLAGS="$CXXFLAGS -fno-rtti" + QTE_NORTTI="-fno-rtti -DQWS" + X_PRE_LIBS="" + LIB_X11="" + LIB_XEXT="" + LIB_XRENDER="" + LIBSM="" + X_INCLUDES="" + X_LDFLAGS="" + x_includes="" + x_libraries="" +elif test "$kde_use_qt_mac" = "yes"; then + dnl We're using QT/Mac (I use QT_MAC so that qglobal.h doesn't *have* to + dnl be included to get the information) --Sam + CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp" + CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp" + X_PRE_LIBS="" + LIB_X11="" + LIB_XEXT="" + LIB_XRENDER="" + LIBSM="" + X_INCLUDES="" + X_LDFLAGS="" + x_includes="" + x_libraries="" +fi +AC_SUBST(X_PRE_LIBS) +AC_SUBST(LIB_X11) +AC_SUBST(LIB_XRENDER) +AC_SUBST(LIBSM) +AC_SUBST(X_INCLUDES) +AC_SUBST(X_LDFLAGS) +AC_SUBST(x_includes) +AC_SUBST(x_libraries) +AC_SUBST(QTE_NORTTI) +AC_SUBST(LIB_XEXT) + +]) + +AC_DEFUN([KDE_PRINT_QT_PROGRAM], +[ +AC_REQUIRE([KDE_USE_QT]) +cat > conftest.$ac_ext < +#include +EOF +if test "$kde_qtver" = "2"; then +cat >> conftest.$ac_ext < +#include +#include +EOF + +if test $kde_qtsubver -gt 0; then +cat >> conftest.$ac_ext <> conftest.$ac_ext < +#include +#include +EOF +fi + +echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext +cat >> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <&AC_FD_CC + cat conftest.$ac_ext >&AC_FD_CC +fi + +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" +export LD_LIBRARY_PATH +LIBRARY_PATH="$ac_LIBRARY_PATH" +export LIBRARY_PATH +AC_LANG_RESTORE +]) + +if test "$kde_cv_qt_direct" = "yes"; then + AC_MSG_RESULT(yes) + $1 +else + AC_MSG_RESULT(no) + $2 +fi +]) + +dnl ------------------------------------------------------------------------ +dnl Try to find the Qt headers and libraries. +dnl $(QT_LDFLAGS) will be -Lqtliblocation (if needed) +dnl and $(QT_INCLUDES) will be -Iqthdrlocation (if needed) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_PATH_QT_1_3], +[ +AC_REQUIRE([K_PATH_X]) +AC_REQUIRE([KDE_USE_QT]) +AC_REQUIRE([KDE_CHECK_LIB64]) + +dnl ------------------------------------------------------------------------ +dnl Add configure flag to enable linking to MT version of Qt library. +dnl ------------------------------------------------------------------------ + +AC_ARG_ENABLE( + mt, + AC_HELP_STRING([--disable-mt],[link to non-threaded Qt (deprecated)]), + kde_use_qt_mt=$enableval, + [ + if test $kde_qtver = 3; then + kde_use_qt_mt=yes + else + kde_use_qt_mt=no + fi + ] +) + +USING_QT_MT="" + +dnl ------------------------------------------------------------------------ +dnl If we not get --disable-qt-mt then adjust some vars for the host. +dnl ------------------------------------------------------------------------ + +KDE_MT_LDFLAGS= +KDE_MT_LIBS= +if test "x$kde_use_qt_mt" = "xyes"; then + KDE_CHECK_THREADING + if test "x$kde_use_threading" = "xyes"; then + CPPFLAGS="$USE_THREADS -DQT_THREAD_SUPPORT $CPPFLAGS" + KDE_MT_LDFLAGS="$USE_THREADS" + KDE_MT_LIBS="$LIBPTHREAD" + else + kde_use_qt_mt=no + fi +fi +AC_SUBST(KDE_MT_LDFLAGS) +AC_SUBST(KDE_MT_LIBS) + +kde_qt_was_given=yes + +dnl ------------------------------------------------------------------------ +dnl If we haven't been told how to link to Qt, we work it out for ourselves. +dnl ------------------------------------------------------------------------ +if test -z "$LIBQT_GLOB"; then + if test "x$kde_use_qt_emb" = "xyes"; then + LIBQT_GLOB="libqte.*" + else + LIBQT_GLOB="libqt.*" + fi +fi + +if test -z "$LIBQT"; then +dnl ------------------------------------------------------------ +dnl If we got --enable-embedded then adjust the Qt library name. +dnl ------------------------------------------------------------ + if test "x$kde_use_qt_emb" = "xyes"; then + qtlib="qte" + else + qtlib="qt" + fi + + kde_int_qt="-l$qtlib" +else + kde_int_qt="$LIBQT" + kde_lib_qt_set=yes +fi + +if test -z "$LIBQPE"; then +dnl ------------------------------------------------------------ +dnl If we got --enable-palmtop then add -lqpe to the link line +dnl ------------------------------------------------------------ + if test "x$kde_use_qt_emb" = "xyes"; then + if test "x$kde_use_qt_emb_palm" = "xyes"; then + LIB_QPE="-lqpe" + else + LIB_QPE="" + fi + else + LIB_QPE="" + fi +fi + +dnl ------------------------------------------------------------------------ +dnl If we got --enable-qt-mt then adjust the Qt library name for the host. +dnl ------------------------------------------------------------------------ + +if test "x$kde_use_qt_mt" = "xyes"; then + if test -z "$LIBQT"; then + LIBQT="-l$qtlib-mt" + kde_int_qt="-l$qtlib-mt" + else + LIBQT="$qtlib-mt" + kde_int_qt="$qtlib-mt" + fi + LIBQT_GLOB="lib$qtlib-mt.*" + USING_QT_MT="using -mt" +else + LIBQT="-l$qtlib" +fi + +if test $kde_qtver != 1; then + + AC_REQUIRE([AC_FIND_PNG]) + AC_REQUIRE([AC_FIND_JPEG]) + LIBQT="$LIBQT $LIBPNG $LIBJPEG" +fi + +if test $kde_qtver = 3; then + AC_REQUIRE([KDE_CHECK_LIBDL]) + LIBQT="$LIBQT $LIBDL" +fi + +AC_MSG_CHECKING([for Qt]) + +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET" +fi +ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO +qt_libraries="" +qt_includes="" +AC_ARG_WITH(qt-dir, + AC_HELP_STRING([--with-qt-dir=DIR],[where the root of Qt is installed ]), + [ ac_qt_includes="$withval"/include + ac_qt_libraries="$withval"/lib${kdelibsuff} + ac_qt_bindir="$withval"/bin + ]) + +AC_ARG_WITH(qt-includes, + AC_HELP_STRING([--with-qt-includes=DIR],[where the Qt includes are. ]), + [ + ac_qt_includes="$withval" + ]) + +kde_qt_libs_given=no + +AC_ARG_WITH(qt-libraries, + AC_HELP_STRING([--with-qt-libraries=DIR],[where the Qt library is installed.]), + [ ac_qt_libraries="$withval" + kde_qt_libs_given=yes + ]) + +AC_CACHE_VAL(ac_cv_have_qt, +[#try to guess Qt locations + +qt_incdirs="" +for dir in $kde_qt_dirs; do + qt_incdirs="$qt_incdirs $dir/include $dir" +done +qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/include/qt3 $x_includes" +if test ! "$ac_qt_includes" = "NO"; then + qt_incdirs="$ac_qt_includes $qt_incdirs" +fi + +if test "$kde_qtver" != "1"; then + kde_qt_header=qstyle.h +else + kde_qt_header=qglobal.h +fi + +AC_FIND_FILE($kde_qt_header, $qt_incdirs, qt_incdir) +ac_qt_includes="$qt_incdir" + +qt_libdirs="" +for dir in $kde_qt_dirs; do + qt_libdirs="$qt_libdirs $dir/lib${kdelibsuff} $dir" +done +qt_libdirs="$QTLIB $qt_libdirs /usr/X11R6/lib /usr/lib /usr/local/qt/lib $x_libraries" +if test ! "$ac_qt_libraries" = "NO"; then + qt_libdir=$ac_qt_libraries +else + qt_libdirs="$ac_qt_libraries $qt_libdirs" + # if the Qt was given, the chance is too big that libqt.* doesn't exist + qt_libdir=NONE + for dir in $qt_libdirs; do + try="ls -1 $dir/${LIBQT_GLOB}" + if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi + done +fi +for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do + if test -e "$a"; then + LIBQT="$LIBQT ${kde_int_qt}_incremental" + break + fi +done + +ac_qt_libraries="$qt_libdir" + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes" +LDFLAGS="$LDFLAGS -L$qt_libdir $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS" +LIBS="$LIBS $LIBQT $KDE_MT_LIBS" + +KDE_PRINT_QT_PROGRAM + +if AC_TRY_EVAL(ac_link) && test -s conftest; then + rm -f conftest* +else + echo "configure: failed program was:" >&AC_FD_CC + cat conftest.$ac_ext >&AC_FD_CC + ac_qt_libraries="NO" +fi +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +AC_LANG_RESTORE +if test "$ac_qt_includes" = NO || test "$ac_qt_libraries" = NO; then + ac_cv_have_qt="have_qt=no" + ac_qt_notfound="" + missing_qt_mt="" + if test "$ac_qt_includes" = NO; then + if test "$ac_qt_libraries" = NO; then + ac_qt_notfound="(headers and libraries)"; + else + ac_qt_notfound="(headers)"; + fi + else + if test "x$kde_use_qt_mt" = "xyes"; then + missing_qt_mt=" +Make sure that you have compiled Qt with thread support!" + ac_qt_notfound="(library $qtlib-mt)"; + else + ac_qt_notfound="(library $qtlib)"; + fi + fi + + AC_MSG_ERROR([Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation! +For more details about this problem, look at the end of config.log.$missing_qt_mt]) +else + have_qt="yes" +fi +]) + +eval "$ac_cv_have_qt" + +if test "$have_qt" != yes; then + AC_MSG_RESULT([$have_qt]); +else + ac_cv_have_qt="have_qt=yes \ + ac_qt_includes=$ac_qt_includes ac_qt_libraries=$ac_qt_libraries" + AC_MSG_RESULT([libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT]) + + qt_libraries="$ac_qt_libraries" + qt_includes="$ac_qt_includes" +fi + +if test ! "$kde_qt_libs_given" = "yes" && test ! "$kde_qtver" = 3; then + KDE_CHECK_QT_DIRECT(qt_libraries= ,[]) +fi + +AC_SUBST(qt_libraries) +AC_SUBST(qt_includes) + +if test "$qt_includes" = "$x_includes" || test -z "$qt_includes"; then + QT_INCLUDES="" +else + QT_INCLUDES="-I$qt_includes" + all_includes="$QT_INCLUDES $all_includes" +fi + +if test "$qt_libraries" = "$x_libraries" || test -z "$qt_libraries"; then + QT_LDFLAGS="" +else + QT_LDFLAGS="-L$qt_libraries" + all_libraries="$QT_LDFLAGS $all_libraries" +fi +test -z "$KDE_MT_LDFLAGS" || all_libraries="$all_libraries $KDE_MT_LDFLAGS" + +AC_SUBST(QT_INCLUDES) +AC_SUBST(QT_LDFLAGS) +AC_PATH_QT_MOC_UIC + +KDE_CHECK_QT_JPEG + +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM)' +else +LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG)' +fi +test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS" +for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do + if test -e "$a"; then + LIB_QT="$LIB_QT ${kde_int_qt}_incremental" + break + fi +done + +AC_SUBST(LIB_QT) +AC_SUBST(LIB_QPE) + +AC_SUBST(kde_qtver) +]) + +AC_DEFUN([AC_PATH_QT], +[ +AC_PATH_QT_1_3 +]) + +AC_DEFUN([KDE_CHECK_UIC_PLUGINS], +[ +AC_REQUIRE([AC_PATH_QT_MOC_UIC]) + +if test x$ac_uic_supports_libpath = xyes; then + +AC_MSG_CHECKING([if UIC has KDE plugins available]) +AC_CACHE_VAL(kde_cv_uic_plugins, +[ +cat > actest.ui << EOF + +NewConnectionDialog + + + + testInput + + + + +EOF + + + +kde_cv_uic_plugins=no +kde_line="$UIC_PATH -L $kde_widgetdir" +if test x$ac_uic_supports_nounload = xyes; then + kde_line="$kde_line -nounload" +fi +kde_line="$kde_line -impl actest.h actest.ui > actest.cpp" +if AC_TRY_EVAL(kde_line); then + # if you're trying to debug this check and think it's incorrect, + # better check your installation. The check _is_ correct - your + # installation is not. + if test -f actest.cpp && grep klineedit actest.cpp > /dev/null; then + kde_cv_uic_plugins=yes + fi +fi +rm -f actest.ui actest.cpp +]) + +AC_MSG_RESULT([$kde_cv_uic_plugins]) +if test "$kde_cv_uic_plugins" != yes; then + AC_MSG_ERROR([ +you need to install kdelibs first. + +If you did install kdelibs, then the Qt version that is picked up by +this configure is not the same version you used to compile kdelibs. +The Qt Plugin installed by kdelibs is *ONLY* loadable if its the +same Qt version, compiled with the same compiler and the same Qt +configuration settings. +]) +fi +fi +]) + +AC_DEFUN([KDE_CHECK_FINAL], +[ + AC_ARG_ENABLE(final, + AC_HELP_STRING([--enable-final], + [build size optimized apps (experimental - needs lots of memory)]), + kde_use_final=$enableval, kde_use_final=no) + + if test "x$kde_use_final" = "xyes"; then + KDE_USE_FINAL_TRUE="" + KDE_USE_FINAL_FALSE="#" + else + KDE_USE_FINAL_TRUE="#" + KDE_USE_FINAL_FALSE="" + fi + AC_SUBST(KDE_USE_FINAL_TRUE) + AC_SUBST(KDE_USE_FINAL_FALSE) +]) + +AC_DEFUN([KDE_CHECK_CLOSURE], +[ + AC_ARG_ENABLE(closure, + AC_HELP_STRING([--enable-closure],[delay template instantiation]), + kde_use_closure=$enableval, kde_use_closure=no) + + KDE_NO_UNDEFINED="" + if test "x$kde_use_closure" = "xyes"; then + KDE_USE_CLOSURE_TRUE="" + KDE_USE_CLOSURE_FALSE="#" +# CXXFLAGS="$CXXFLAGS $REPO" + else + KDE_USE_CLOSURE_TRUE="#" + KDE_USE_CLOSURE_FALSE="" + KDE_NO_UNDEFINED="" + case $host in + *-*-linux-gnu) + KDE_CHECK_COMPILER_FLAG([Wl,--no-undefined], + [KDE_CHECK_COMPILER_FLAG([Wl,--allow-shlib-undefined], + [KDE_NO_UNDEFINED="-Wl,--no-undefined -Wl,--allow-shlib-undefined"], + [KDE_NO_UNDEFINED=""])], + [KDE_NO_UNDEFINED=""]) + ;; + esac + fi + AC_SUBST(KDE_USE_CLOSURE_TRUE) + AC_SUBST(KDE_USE_CLOSURE_FALSE) + AC_SUBST(KDE_NO_UNDEFINED) +]) + +dnl Check if the linker supports --enable-new-dtags and --as-needed +AC_DEFUN([KDE_CHECK_NEW_LDFLAGS], +[ + AC_ARG_ENABLE(new_ldflags, + AC_HELP_STRING([--enable-new-ldflags], + [enable the new linker flags]), + kde_use_new_ldflags=$enableval, + kde_use_new_ldflags=no) + + LDFLAGS_AS_NEEDED="" + LDFLAGS_NEW_DTAGS="" + if test "x$kde_use_new_ldflags" = "xyes"; then + LDFLAGS_NEW_DTAGS="" + KDE_CHECK_COMPILER_FLAG([Wl,--enable-new-dtags], + [LDFLAGS_NEW_DTAGS="-Wl,--enable-new-dtags"],) + + KDE_CHECK_COMPILER_FLAG([Wl,--as-needed], + [LDFLAGS_AS_NEEDED="-Wl,--as-needed"],) + fi + AC_SUBST(LDFLAGS_AS_NEEDED) + AC_SUBST(LDFLAGS_NEW_DTAGS) +]) + +AC_DEFUN([KDE_CHECK_NMCHECK], +[ + AC_ARG_ENABLE(nmcheck,AC_HELP_STRING([--enable-nmcheck],[enable automatic namespace cleanness check]), + kde_use_nmcheck=$enableval, kde_use_nmcheck=no) + + if test "$kde_use_nmcheck" = "yes"; then + KDE_USE_NMCHECK_TRUE="" + KDE_USE_NMCHECK_FALSE="#" + else + KDE_USE_NMCHECK_TRUE="#" + KDE_USE_NMCHECK_FALSE="" + fi + AC_SUBST(KDE_USE_NMCHECK_TRUE) + AC_SUBST(KDE_USE_NMCHECK_FALSE) +]) + +AC_DEFUN([KDE_EXPAND_MAKEVAR], [ +savex=$exec_prefix +test "x$exec_prefix" = xNONE && exec_prefix=$prefix +tmp=$$2 +while $1=`eval echo "$tmp"`; test "x$$1" != "x$tmp"; do tmp=$$1; done +exec_prefix=$savex +]) + +dnl ------------------------------------------------------------------------ +dnl Now, the same with KDE +dnl $(KDE_LDFLAGS) will be the kdeliblocation (if needed) +dnl and $(kde_includes) will be the kdehdrlocation (if needed) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_BASE_PATH_KDE], +[ +AC_REQUIRE([KDE_CHECK_STL]) +AC_REQUIRE([AC_PATH_QT])dnl +AC_REQUIRE([KDE_CHECK_LIB64]) + +AC_CHECK_RPATH +AC_MSG_CHECKING([for KDE]) + +if test "${prefix}" != NONE; then + kde_includes=${includedir} + KDE_EXPAND_MAKEVAR(ac_kde_includes, includedir) + + kde_libraries=${libdir} + KDE_EXPAND_MAKEVAR(ac_kde_libraries, libdir) + +else + ac_kde_includes= + ac_kde_libraries= + kde_libraries="" + kde_includes="" +fi + +AC_CACHE_VAL(ac_cv_have_kde, +[#try to guess kde locations + +if test "$kde_qtver" = 1; then + kde_check_header="ksock.h" + kde_check_lib="libkdecore.la" +else + kde_check_header="ksharedptr.h" + kde_check_lib="libkio.la" +fi + +if test -z "$1"; then + +kde_incdirs="$kde_libs_prefix/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes $qt_includes" +test -n "$KDEDIR" && kde_incdirs="$KDEDIR/include $KDEDIR/include/kde $KDEDIR $kde_incdirs" +kde_incdirs="$ac_kde_includes $kde_incdirs" +AC_FIND_FILE($kde_check_header, $kde_incdirs, kde_incdir) +ac_kde_includes="$kde_incdir" + +if test -n "$ac_kde_includes" && test ! -r "$ac_kde_includes/$kde_check_header"; then + AC_MSG_ERROR([ +in the prefix, you've chosen, are no KDE headers installed. This will fail. +So, check this please and use another prefix!]) +fi + +kde_libdirs="$kde_libs_prefix/lib${kdelibsuff} /usr/lib/kde/lib${kdelibsuff} /usr/local/kde/lib${kdelibsuff} /usr/kde/lib${kdelibsuff} /usr/lib${kdelibsuff}/kde /usr/lib${kdelibsuff}/kde3 /usr/lib${kdelibsuff} /usr/X11R6/lib${kdelibsuff} /usr/local/lib${kdelibsuff} /opt/kde3/lib${kdelibsuff} /opt/kde/lib${kdelibsuff} /usr/X11R6/kde/lib${kdelibsuff}" +test -n "$KDEDIR" && kde_libdirs="$KDEDIR/lib${kdelibsuff} $KDEDIR $kde_libdirs" +kde_libdirs="$ac_kde_libraries $libdir $kde_libdirs" +AC_FIND_FILE($kde_check_lib, $kde_libdirs, kde_libdir) +ac_kde_libraries="$kde_libdir" + +kde_widgetdir=NO +dnl this might be somewhere else +AC_FIND_FILE("kde3/plugins/designer/kdewidgets.la", $kde_libdirs, kde_widgetdir) + +if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then +AC_MSG_ERROR([ +in the prefix, you've chosen, are no KDE libraries installed. This will fail. +So, check this please and use another prefix!]) +fi + +if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/kde3/plugins/designer/kdewidgets.la"; then +AC_MSG_ERROR([ +I can't find the designer plugins. These are required and should have been installed +by kdelibs]) +fi + +if test -n "$kde_widgetdir"; then + kde_widgetdir="$kde_widgetdir/kde3/plugins/designer" +fi + + +if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO || test "$kde_widgetdir" = NO; then + ac_cv_have_kde="have_kde=no" +else + ac_cv_have_kde="have_kde=yes \ + ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries" +fi + +else dnl test -z $1, e.g. from kdelibs + + ac_cv_have_kde="have_kde=no" + +fi +])dnl + +eval "$ac_cv_have_kde" + +if test "$have_kde" != "yes"; then + if test "${prefix}" = NONE; then + ac_kde_prefix="$ac_default_prefix" + else + ac_kde_prefix="$prefix" + fi + if test "$exec_prefix" = NONE; then + ac_kde_exec_prefix="$ac_kde_prefix" + AC_MSG_RESULT([will be installed in $ac_kde_prefix]) + else + ac_kde_exec_prefix="$exec_prefix" + AC_MSG_RESULT([will be installed in $ac_kde_prefix and $ac_kde_exec_prefix]) + fi + + kde_libraries="${libdir}" + kde_includes="${includedir}" + +else + ac_cv_have_kde="have_kde=yes \ + ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries" + AC_MSG_RESULT([libraries $ac_kde_libraries, headers $ac_kde_includes]) + + kde_libraries="$ac_kde_libraries" + kde_includes="$ac_kde_includes" +fi +AC_SUBST(kde_libraries) +AC_SUBST(kde_includes) + +if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then + KDE_INCLUDES="" +else + KDE_INCLUDES="-I$kde_includes" + all_includes="$KDE_INCLUDES $all_includes" +fi + +KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION" + +KDE_LDFLAGS="-L$kde_libraries" +if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then + all_libraries="$KDE_LDFLAGS $all_libraries" +fi + +AC_SUBST(KDE_LDFLAGS) +AC_SUBST(KDE_INCLUDES) + +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + +all_libraries="$all_libraries $USER_LDFLAGS" +all_includes="$all_includes $USER_INCLUDES" +AC_SUBST(all_includes) +AC_SUBST(all_libraries) + +if test -z "$1"; then +KDE_CHECK_UIC_PLUGINS +fi + +ac_kde_libraries="$kde_libdir" + +AC_SUBST(AUTODIRS) + + +]) + +AC_DEFUN([KDE_CHECK_EXTRA_LIBS], +[ +AC_MSG_CHECKING(for extra includes) +AC_ARG_WITH(extra-includes,AC_HELP_STRING([--with-extra-includes=DIR],[adds non standard include paths]), + kde_use_extra_includes="$withval", + kde_use_extra_includes=NONE +) +kde_extra_includes= +if test -n "$kde_use_extra_includes" && \ + test "$kde_use_extra_includes" != "NONE"; then + + ac_save_ifs=$IFS + IFS=':' + for dir in $kde_use_extra_includes; do + kde_extra_includes="$kde_extra_includes $dir" + USER_INCLUDES="$USER_INCLUDES -I$dir" + done + IFS=$ac_save_ifs + kde_use_extra_includes="added" +else + kde_use_extra_includes="no" +fi +AC_SUBST(USER_INCLUDES) + +AC_MSG_RESULT($kde_use_extra_includes) + +kde_extra_libs= +AC_MSG_CHECKING(for extra libs) +AC_ARG_WITH(extra-libs,AC_HELP_STRING([--with-extra-libs=DIR],[adds non standard library paths]), + kde_use_extra_libs=$withval, + kde_use_extra_libs=NONE +) +if test -n "$kde_use_extra_libs" && \ + test "$kde_use_extra_libs" != "NONE"; then + + ac_save_ifs=$IFS + IFS=':' + for dir in $kde_use_extra_libs; do + kde_extra_libs="$kde_extra_libs $dir" + KDE_EXTRA_RPATH="$KDE_EXTRA_RPATH -R $dir" + USER_LDFLAGS="$USER_LDFLAGS -L$dir" + done + IFS=$ac_save_ifs + kde_use_extra_libs="added" +else + kde_use_extra_libs="no" +fi + +AC_SUBST(USER_LDFLAGS) + +AC_MSG_RESULT($kde_use_extra_libs) + +]) + +AC_DEFUN([KDE_1_CHECK_PATH_HEADERS], +[ + AC_MSG_CHECKING([for KDE headers installed]) + AC_LANG_SAVE + AC_LANG_CPLUSPLUS +cat > conftest.$ac_ext < +#endif +#include +#include "confdefs.h" +#include + +int main() { + printf("kde_htmldir=\\"%s\\"\n", KApplication::kde_htmldir().data()); + printf("kde_appsdir=\\"%s\\"\n", KApplication::kde_appsdir().data()); + printf("kde_icondir=\\"%s\\"\n", KApplication::kde_icondir().data()); + printf("kde_sounddir=\\"%s\\"\n", KApplication::kde_sounddir().data()); + printf("kde_datadir=\\"%s\\"\n", KApplication::kde_datadir().data()); + printf("kde_locale=\\"%s\\"\n", KApplication::kde_localedir().data()); + printf("kde_cgidir=\\"%s\\"\n", KApplication::kde_cgidir().data()); + printf("kde_confdir=\\"%s\\"\n", KApplication::kde_configdir().data()); + printf("kde_mimedir=\\"%s\\"\n", KApplication::kde_mimedir().data()); + printf("kde_toolbardir=\\"%s\\"\n", KApplication::kde_toolbardir().data()); + printf("kde_wallpaperdir=\\"%s\\"\n", + KApplication::kde_wallpaperdir().data()); + printf("kde_bindir=\\"%s\\"\n", KApplication::kde_bindir().data()); + printf("kde_partsdir=\\"%s\\"\n", KApplication::kde_partsdir().data()); + printf("kde_servicesdir=\\"/tmp/dummy\\"\n"); + printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n"); + printf("kde_moduledir=\\"/tmp/dummy\\"\n"); + printf("kde_styledir=\\"/tmp/dummy\\"\n"); + printf("kde_widgetdir=\\"/tmp/dummy\\"\n"); + printf("xdg_appsdir=\\"/tmp/dummy\\"\n"); + printf("xdg_menudir=\\"/tmp/dummy\\"\n"); + printf("xdg_directorydir=\\"/tmp/dummy\\"\n"); + printf("kde_kcfgdir=\\"/tmp/dummy\\"\n"); + return 0; + } +EOF + + ac_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$all_includes $CPPFLAGS" + if AC_TRY_EVAL(ac_compile); then + AC_MSG_RESULT(yes) + else + AC_MSG_ERROR([your system is not able to compile a small KDE application! +Check, if you installed the KDE header files correctly. +For more details about this problem, look at the end of config.log.]) + fi + CPPFLAGS=$ac_save_CPPFLAGS + + AC_LANG_RESTORE +]) + +AC_DEFUN([KDE_CHECK_KDEQTADDON], +[ +AC_MSG_CHECKING(for kde-qt-addon) +AC_CACHE_VAL(kde_cv_have_kdeqtaddon, +[ + kde_ldflags_safe="$LDFLAGS" + kde_libs_safe="$LIBS" + kde_cxxflags_safe="$CXXFLAGS" + + LIBS="-lkde-qt-addon $LIBQT $LIBS" + CXXFLAGS="$CXXFLAGS -I$prefix/include -I$prefix/include/kde $all_includes" + LDFLAGS="$LDFLAGS $all_libraries $USER_LDFLAGS" + + AC_TRY_LINK([ + #include + ], + [ + QDomDocument doc; + ], + kde_cv_have_kdeqtaddon=yes, + kde_cv_have_kdeqtaddon=no + ) + + LDFLAGS=$kde_ldflags_safe + LIBS=$kde_libs_safe + CXXFLAGS=$kde_cxxflags_safe +]) + +AC_MSG_RESULT($kde_cv_have_kdeqtaddon) + +if test "$kde_cv_have_kdeqtaddon" = "no"; then + AC_MSG_ERROR([Can't find libkde-qt-addon. You need to install it first. +It is a separate package (and CVS module) named kde-qt-addon.]) +fi +]) + +AC_DEFUN([KDE_CREATE_LIBS_ALIASES], +[ + AC_REQUIRE([KDE_MISC_TESTS]) + AC_REQUIRE([KDE_CHECK_LIBDL]) + AC_REQUIRE([K_PATH_X]) + +if test $kde_qtver = 3; then + AC_SUBST(LIB_KDECORE, "-lkdecore") + AC_SUBST(LIB_KDEUI, "-lkdeui") + AC_SUBST(LIB_KIO, "-lkio") + AC_SUBST(LIB_KJS, "-lkjs") + AC_SUBST(LIB_SMB, "-lsmb") + AC_SUBST(LIB_KAB, "-lkab") + AC_SUBST(LIB_KABC, "-lkabc") + AC_SUBST(LIB_KHTML, "-lkhtml") + AC_SUBST(LIB_KSPELL, "-lkspell") + AC_SUBST(LIB_KPARTS, "-lkparts") + AC_SUBST(LIB_KDEPRINT, "-lkdeprint") + AC_SUBST(LIB_KUTILS, "-lkutils") + AC_SUBST(LIB_KDEPIM, "-lkdepim") + AC_SUBST(LIB_KIMPROXY, "-lkimproxy") + AC_SUBST(LIB_KNEWSTUFF, "-lknewstuff") + AC_SUBST(LIB_KDNSSD, "-lkdnssd") +# these are for backward compatibility + AC_SUBST(LIB_KSYCOCA, "-lkio") + AC_SUBST(LIB_KFILE, "-lkio") +elif test $kde_qtver = 2; then + AC_SUBST(LIB_KDECORE, "-lkdecore") + AC_SUBST(LIB_KDEUI, "-lkdeui") + AC_SUBST(LIB_KIO, "-lkio") + AC_SUBST(LIB_KSYCOCA, "-lksycoca") + AC_SUBST(LIB_SMB, "-lsmb") + AC_SUBST(LIB_KFILE, "-lkfile") + AC_SUBST(LIB_KAB, "-lkab") + AC_SUBST(LIB_KHTML, "-lkhtml") + AC_SUBST(LIB_KSPELL, "-lkspell") + AC_SUBST(LIB_KPARTS, "-lkparts") + AC_SUBST(LIB_KDEPRINT, "-lkdeprint") +else + AC_SUBST(LIB_KDECORE, "-lkdecore -lXext $(LIB_QT)") + AC_SUBST(LIB_KDEUI, "-lkdeui $(LIB_KDECORE)") + AC_SUBST(LIB_KFM, "-lkfm $(LIB_KDECORE)") + AC_SUBST(LIB_KFILE, "-lkfile $(LIB_KFM) $(LIB_KDEUI)") + AC_SUBST(LIB_KAB, "-lkab $(LIB_KIMGIO) $(LIB_KDECORE)") +fi +]) + +AC_DEFUN([AC_PATH_KDE], +[ + AC_BASE_PATH_KDE + AC_ARG_ENABLE(path-check,AC_HELP_STRING([--disable-path-check],[don't try to find out, where to install]), + [ + if test "$enableval" = "no"; + then ac_use_path_checking="default" + else ac_use_path_checking="" + fi + ], + [ + if test "$kde_qtver" = 1; + then ac_use_path_checking="" + else ac_use_path_checking="default" + fi + ] + ) + + AC_CREATE_KFSSTND($ac_use_path_checking) + + AC_SUBST_KFSSTND + KDE_CREATE_LIBS_ALIASES +]) + +dnl KDE_CHECK_FUNC_EXT(, [headers], [sample-use], [C prototype], [autoheader define], [call if found]) +AC_DEFUN([KDE_CHECK_FUNC_EXT], +[ +AC_MSG_CHECKING(for $1) +AC_CACHE_VAL(kde_cv_func_$1, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +save_CXXFLAGS="$CXXFLAGS" +kde_safe_LIBS="$LIBS" +LIBS="$LIBS $X_EXTRA_LIBS" +if test "$GXX" = "yes"; then +CXXFLAGS="$CXXFLAGS -pedantic-errors" +fi +AC_TRY_COMPILE([ +$2 +], +[ +$3 +], +kde_cv_func_$1=yes, +kde_cv_func_$1=no) +CXXFLAGS="$save_CXXFLAGS" +LIBS="$kde_safe_LIBS" +AC_LANG_RESTORE +]) + +AC_MSG_RESULT($kde_cv_func_$1) + +AC_MSG_CHECKING([if $1 needs custom prototype]) +AC_CACHE_VAL(kde_cv_proto_$1, +[ +if test "x$kde_cv_func_$1" = xyes; then + kde_cv_proto_$1=no +else + case "$1" in + setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat) + kde_cv_proto_$1="yes - in libkdefakes" + ;; + *) + kde_cv_proto_$1=unknown + ;; + esac +fi + +if test "x$kde_cv_proto_$1" = xunknown; then + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + kde_safe_libs=$LIBS + LIBS="$LIBS $X_EXTRA_LIBS" + AC_TRY_LINK([ +$2 + +extern "C" $4; +], +[ +$3 +], +[ kde_cv_func_$1=yes + kde_cv_proto_$1=yes ], + [kde_cv_proto_$1="$1 unavailable"] +) +LIBS=$kde_safe_libs +AC_LANG_RESTORE +fi +]) +AC_MSG_RESULT($kde_cv_proto_$1) + +if test "x$kde_cv_func_$1" = xyes; then + AC_DEFINE(HAVE_$5, 1, [Define if you have $1]) + $6 +fi +if test "x$kde_cv_proto_$1" = xno; then + AC_DEFINE(HAVE_$5_PROTO, 1, + [Define if you have the $1 prototype]) +fi + +AH_VERBATIM([_HAVE_$5_PROTO], +[ +#if !defined(HAVE_$5_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +$4; +#ifdef __cplusplus +} +#endif +#endif +]) +]) + +AC_DEFUN([AC_CHECK_SETENV], +[ + KDE_CHECK_FUNC_EXT(setenv, [ +#include +], + [setenv("VAR", "VALUE", 1);], + [int setenv (const char *, const char *, int)], + [SETENV]) +]) + +AC_DEFUN([AC_CHECK_UNSETENV], +[ + KDE_CHECK_FUNC_EXT(unsetenv, [ +#include +], + [unsetenv("VAR");], + [void unsetenv (const char *)], + [UNSETENV]) +]) + +AC_DEFUN([AC_CHECK_GETDOMAINNAME], +[ + KDE_CHECK_FUNC_EXT(getdomainname, [ +#include +#include +#include +], + [ +char buffer[200]; +getdomainname(buffer, 200); +], + [#include + int getdomainname (char *, size_t)], + [GETDOMAINNAME]) +]) + +AC_DEFUN([AC_CHECK_GETHOSTNAME], +[ + KDE_CHECK_FUNC_EXT(gethostname, [ +#include +#include +], + [ +char buffer[200]; +gethostname(buffer, 200); +], + [int gethostname (char *, unsigned int)], + [GETHOSTNAME]) +]) + +AC_DEFUN([AC_CHECK_USLEEP], +[ + KDE_CHECK_FUNC_EXT(usleep, [ +#include +], + [ +usleep(200); +], + [int usleep (unsigned int)], + [USLEEP]) +]) + + +AC_DEFUN([AC_CHECK_RANDOM], +[ + KDE_CHECK_FUNC_EXT(random, [ +#include +], + [ +random(); +], + [long int random(void)], + [RANDOM]) + + KDE_CHECK_FUNC_EXT(srandom, [ +#include +], + [ +srandom(27); +], + [void srandom(unsigned int)], + [SRANDOM]) + +]) + +AC_DEFUN([AC_CHECK_INITGROUPS], +[ + KDE_CHECK_FUNC_EXT(initgroups, [ +#include +#include +#include +], + [ +char buffer[200]; +initgroups(buffer, 27); +], + [int initgroups(const char *, gid_t)], + [INITGROUPS]) +]) + +AC_DEFUN([AC_CHECK_MKSTEMPS], +[ + KDE_CHECK_FUNC_EXT(mkstemps, [ +#include +#include +], + [ +mkstemps("/tmp/aaaXXXXXX", 6); +], + [int mkstemps(char *, int)], + [MKSTEMPS]) +]) + +AC_DEFUN([AC_CHECK_MKSTEMP], +[ + KDE_CHECK_FUNC_EXT(mkstemp, [ +#include +#include +], + [ +mkstemp("/tmp/aaaXXXXXX"); +], + [int mkstemp(char *)], + [MKSTEMP]) +]) + +AC_DEFUN([AC_CHECK_MKDTEMP], +[ + KDE_CHECK_FUNC_EXT(mkdtemp, [ +#include +#include +], + [ +mkdtemp("/tmp/aaaXXXXXX"); +], + [char *mkdtemp(char *)], + [MKDTEMP]) +]) + + +AC_DEFUN([AC_CHECK_RES_INIT], +[ + AC_MSG_CHECKING([if res_init needs -lresolv]) + kde_libs_safe="$LIBS" + LIBS="$LIBS $X_EXTRA_LIBS -lresolv" + AC_TRY_LINK( + [ +#include +#include +#include +#include + ], + [ + res_init(); + ], + [ + LIBRESOLV="-lresolv" + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function]) + ], + [ AC_MSG_RESULT(no) ] + ) + LIBS=$kde_libs_safe + AC_SUBST(LIBRESOLV) + + KDE_CHECK_FUNC_EXT(res_init, + [ +#include +#include +#include +#include + ], + [res_init()], + [int res_init(void)], + [RES_INIT]) +]) + +AC_DEFUN([AC_CHECK_STRLCPY], +[ + KDE_CHECK_FUNC_EXT(strlcpy, [ +#include +], +[ char buf[20]; + strlcpy(buf, "KDE function test", sizeof(buf)); +], + [unsigned long strlcpy(char*, const char*, unsigned long)], + [STRLCPY]) +]) + +AC_DEFUN([AC_CHECK_STRLCAT], +[ + KDE_CHECK_FUNC_EXT(strlcat, [ +#include +], +[ char buf[20]; + buf[0]='\0'; + strlcat(buf, "KDE function test", sizeof(buf)); +], + [unsigned long strlcat(char*, const char*, unsigned long)], + [STRLCAT]) +]) + +AC_DEFUN([AC_CHECK_RES_QUERY], +[ + KDE_CHECK_FUNC_EXT(res_query, [ +#include +#include +#include +#include +#include +], +[ +res_query(NULL, 0, 0, NULL, 0); +], + [int res_query(const char *, int, int, unsigned char *, int)], + [RES_QUERY]) +]) + +AC_DEFUN([AC_CHECK_DN_SKIPNAME], +[ + KDE_CHECK_FUNC_EXT(dn_skipname, [ +#include +#include +#include +#include +], +[ +dn_skipname (NULL, NULL); +], + [int dn_skipname (unsigned char *, unsigned char *)], + [DN_SKIPNAME]) +]) + + +AC_DEFUN([AC_FIND_GIF], + [AC_MSG_CHECKING([for giflib]) +AC_CACHE_VAL(ac_cv_lib_gif, +[ac_save_LIBS="$LIBS" +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBS="$all_libraries -lgif -lX11 $LIBSOCKET" +else +LIBS="$all_libraries -lgif" +fi +AC_TRY_LINK(dnl +[ +#ifdef __cplusplus +extern "C" { +#endif +int GifLastError(void); +#ifdef __cplusplus +} +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +], + [return GifLastError();], + eval "ac_cv_lib_gif=yes", + eval "ac_cv_lib_gif=no") +LIBS="$ac_save_LIBS" +])dnl +if eval "test \"`echo $ac_cv_lib_gif`\" = yes"; then + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED(HAVE_LIBGIF, 1, [Define if you have libgif]) +else + AC_MSG_ERROR(You need giflib30. Please install the kdesupport package) +fi +]) + +AC_DEFUN([KDE_FIND_JPEG_HELPER], +[ +AC_MSG_CHECKING([for libjpeg$2]) +AC_CACHE_VAL(ac_cv_lib_jpeg_$1, +[ +ac_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -ljpeg$2 -lm" +ac_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK( +[/* Override any gcc2 internal prototype to avoid an error. */ +struct jpeg_decompress_struct; +typedef struct jpeg_decompress_struct * j_decompress_ptr; +typedef int size_t; +#ifdef __cplusplus +extern "C" { +#endif + void jpeg_CreateDecompress(j_decompress_ptr cinfo, + int version, size_t structsize); +#ifdef __cplusplus +} +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +], + [jpeg_CreateDecompress(0L, 0, 0);], + eval "ac_cv_lib_jpeg_$1=-ljpeg$2", + eval "ac_cv_lib_jpeg_$1=no") +LIBS="$ac_save_LIBS" +CFLAGS="$ac_save_CFLAGS" +]) + +if eval "test ! \"`echo $ac_cv_lib_jpeg_$1`\" = no"; then + LIBJPEG="$ac_cv_lib_jpeg_$1" + AC_MSG_RESULT($ac_cv_lib_jpeg_$1) +else + AC_MSG_RESULT(no) + $3 +fi + +]) + +AC_DEFUN([AC_FIND_JPEG], +[ +dnl first look for libraries +KDE_FIND_JPEG_HELPER(6b, 6b, + KDE_FIND_JPEG_HELPER(normal, [], + [ + LIBJPEG= + ] + ) +) + +dnl then search the headers (can't use simply AC_TRY_xxx, as jpeglib.h +dnl requires system dependent includes loaded before it) +jpeg_incdirs="$includedir /usr/include /usr/local/include $kde_extra_includes" +AC_FIND_FILE(jpeglib.h, $jpeg_incdirs, jpeg_incdir) +test "x$jpeg_incdir" = xNO && jpeg_incdir= + +dnl if headers _and_ libraries are missing, this is no error, and we +dnl continue with a warning (the user will get no jpeg support in khtml) +dnl if only one is missing, it means a configuration error, but we still +dnl only warn +if test -n "$jpeg_incdir" && test -n "$LIBJPEG" ; then + AC_DEFINE_UNQUOTED(HAVE_LIBJPEG, 1, [Define if you have libjpeg]) +else + if test -n "$jpeg_incdir" || test -n "$LIBJPEG" ; then + AC_MSG_WARN([ +There is an installation error in jpeg support. You seem to have only one +of either the headers _or_ the libraries installed. You may need to either +provide correct --with-extra-... options, or the development package of +libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/ +Disabling JPEG support. +]) + else + AC_MSG_WARN([libjpeg not found. disable JPEG support.]) + fi + jpeg_incdir= + LIBJPEG= +fi + +AC_SUBST(LIBJPEG) +AH_VERBATIM(_AC_CHECK_JPEG, +[/* + * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system + * headers and I'm too lazy to write a configure test as long as only + * unixware is related + */ +#ifdef _UNIXWARE +#define HAVE_BOOLEAN +#endif +]) +]) + +AC_DEFUN([KDE_CHECK_QT_JPEG], +[ +if test -n "$LIBJPEG"; then +AC_MSG_CHECKING([if Qt needs $LIBJPEG]) +AC_CACHE_VAL(kde_cv_qt_jpeg, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS $LIBQT" +LIBS=`echo $LIBS | sed "s/$LIBJPEG//"` +ac_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK( +[#include ], + [ + int argc; + char** argv; + QApplication app(argc, argv);], + eval "kde_cv_qt_jpeg=no", + eval "kde_cv_qt_jpeg=yes") +LIBS="$ac_save_LIBS" +CXXFLAGS="$ac_save_CXXFLAGS" +AC_LANG_RESTORE +fi +]) + +if eval "test ! \"`echo $kde_cv_qt_jpeg`\" = no"; then + AC_MSG_RESULT(yes) + LIBJPEG_QT='$(LIBJPEG)' +else + AC_MSG_RESULT(no) + LIBJPEG_QT= +fi + +]) + +AC_DEFUN([AC_FIND_ZLIB], +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_MSG_CHECKING([for libz]) +AC_CACHE_VAL(ac_cv_lib_z, +[ +kde_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -lz $LIBSOCKET" +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK(dnl +[ +#include +], +[ + char buf[42]; + gzFile f = (gzFile) 0; + /* this would segfault.. but we only link, don't run */ + (void) gzgets(f, buf, sizeof(buf)); + + return (zlibVersion() == ZLIB_VERSION); +], + eval "ac_cv_lib_z='-lz'", + eval "ac_cv_lib_z=no") +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" +])dnl +if test ! "$ac_cv_lib_z" = no; then + AC_DEFINE_UNQUOTED(HAVE_LIBZ, 1, [Define if you have libz]) + LIBZ="$ac_cv_lib_z" + AC_MSG_RESULT($ac_cv_lib_z) +else + AC_MSG_ERROR(not found. + Possibly configure picks up an outdated version + installed by XFree86. Remove it from your system. + + Check your installation and look into config.log) + LIBZ="" +fi +AC_SUBST(LIBZ) +]) + +AC_DEFUN([KDE_TRY_TIFFLIB], +[ +AC_MSG_CHECKING([for libtiff $1]) + +AC_CACHE_VAL(kde_cv_libtiff_$1, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +kde_save_LIBS="$LIBS" +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lX11 $LIBSOCKET -lm" +else +LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lm" +fi +kde_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" + +AC_TRY_LINK(dnl +[ +#include +], + [return (TIFFOpen( "", "r") == 0); ], +[ + kde_cv_libtiff_$1="-l$1 $LIBJPEG $LIBZ" +], [ + kde_cv_libtiff_$1=no +]) + +LIBS="$kde_save_LIBS" +CXXFLAGS="$kde_save_CXXFLAGS" +AC_LANG_RESTORE +]) + +if test "$kde_cv_libtiff_$1" = "no"; then + AC_MSG_RESULT(no) + LIBTIFF="" + $3 +else + LIBTIFF="$kde_cv_libtiff_$1" + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED(HAVE_LIBTIFF, 1, [Define if you have libtiff]) + $2 +fi + +]) + +AC_DEFUN([AC_FIND_TIFF], +[ +AC_REQUIRE([K_PATH_X]) +AC_REQUIRE([AC_FIND_ZLIB]) +AC_REQUIRE([AC_FIND_JPEG]) +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + +KDE_TRY_TIFFLIB(tiff, [], + KDE_TRY_TIFFLIB(tiff34)) + +AC_SUBST(LIBTIFF) +]) + + +AC_DEFUN([AC_FIND_PNG], +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_REQUIRE([AC_FIND_ZLIB]) +AC_MSG_CHECKING([for libpng]) +AC_CACHE_VAL(ac_cv_lib_png, +[ +kde_save_LIBS="$LIBS" +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET" +else +LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm" +fi +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" + +AC_TRY_LINK(dnl + [ + #include + ], + [ + png_structp png_ptr = png_create_read_struct( /* image ptr */ + PNG_LIBPNG_VER_STRING, 0, 0, 0 ); + return( png_ptr != 0 ); + ], + eval "ac_cv_lib_png='-lpng $LIBZ -lm'", + eval "ac_cv_lib_png=no" +) +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" +])dnl +if eval "test ! \"`echo $ac_cv_lib_png`\" = no"; then + AC_DEFINE_UNQUOTED(HAVE_LIBPNG, 1, [Define if you have libpng]) + LIBPNG="$ac_cv_lib_png" + AC_SUBST(LIBPNG) + AC_MSG_RESULT($ac_cv_lib_png) +else + AC_MSG_RESULT(no) + LIBPNG="" + AC_SUBST(LIBPNG) +fi +]) + + +AC_DEFUN([AC_FIND_JASPER], +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_REQUIRE([AC_FIND_JPEG]) +AC_MSG_CHECKING([for jasper]) +AC_CACHE_VAL(ac_cv_jasper, +[ +kde_save_LIBS="$LIBS" +LIBS="$LIBS $all_libraries $USER_LDFLAGS -ljasper $LIBJPEG -lm" +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" + +AC_TRY_LINK(dnl + [ + #include + ], + [ + return( jas_init() ); + ], + eval "ac_cv_jasper='-ljasper $LIBJPEG -lm'", + eval "ac_cv_jasper=no" +) +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" +])dnl +if eval "test ! \"`echo $ac_cv_jasper`\" = no"; then + AC_DEFINE_UNQUOTED(HAVE_JASPER, 1, [Define if you have jasper]) + LIB_JASPER="$ac_cv_jasper" + AC_MSG_RESULT($ac_cv_jasper) +else + AC_MSG_RESULT(no) + LIB_JASPER="" +fi +AC_SUBST(LIB_JASPER) +]) + +AC_DEFUN([AC_CHECK_BOOL], +[ + AC_DEFINE_UNQUOTED(HAVE_BOOL, 1, [You _must_ have bool]) +]) + +AC_DEFUN([AC_CHECK_GNU_EXTENSIONS], +[ +AC_MSG_CHECKING(if you need GNU extensions) +AC_CACHE_VAL(ac_cv_gnu_extensions, +[ +cat > conftest.c << EOF +#include + +#ifdef __GNU_LIBRARY__ +yes +#endif +EOF + +if (eval "$ac_cpp conftest.c") 2>&5 | + egrep "yes" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_gnu_extensions=yes +else + ac_cv_gnu_extensions=no +fi +]) + +AC_MSG_RESULT($ac_cv_gnu_extensions) +if test "$ac_cv_gnu_extensions" = "yes"; then + AC_DEFINE_UNQUOTED(_GNU_SOURCE, 1, [Define if you need to use the GNU extensions]) +fi +]) + +AC_DEFUN([KDE_CHECK_COMPILER_FLAG], +[ +AC_MSG_CHECKING([whether $CXX supports -$1]) +kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'` +AC_CACHE_VAL(kde_cv_prog_cxx_$kde_cache, +[ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -$1" + AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cxx_$kde_cache=yes"], []) + CXXFLAGS="$save_CXXFLAGS" + AC_LANG_RESTORE +]) +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + AC_MSG_RESULT(yes) + : + $2 +else + AC_MSG_RESULT(no) + : + $3 +fi +]) + +AC_DEFUN([KDE_CHECK_C_COMPILER_FLAG], +[ +AC_MSG_CHECKING([whether $CC supports -$1]) +kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'` +AC_CACHE_VAL(kde_cv_prog_cc_$kde_cache, +[ + AC_LANG_SAVE + AC_LANG_C + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -$1" + AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cc_$kde_cache=yes"], []) + CFLAGS="$save_CFLAGS" + AC_LANG_RESTORE +]) +if eval "test \"`echo '$kde_cv_prog_cc_'$kde_cache`\" = yes"; then + AC_MSG_RESULT(yes) + : + $2 +else + AC_MSG_RESULT(no) + : + $3 +fi +]) + + +dnl AC_REMOVE_FORBIDDEN removes forbidden arguments from variables +dnl use: AC_REMOVE_FORBIDDEN(CC, [-forbid -bad-option whatever]) +dnl it's all white-space separated +AC_DEFUN([AC_REMOVE_FORBIDDEN], +[ __val=$$1 + __forbid=" $2 " + if test -n "$__val"; then + __new="" + ac_save_IFS=$IFS + IFS=" " + for i in $__val; do + case "$__forbid" in + *" $i "*) AC_MSG_WARN([found forbidden $i in $1, removing it]) ;; + *) # Careful to not add spaces, where there were none, because otherwise + # libtool gets confused, if we change e.g. CXX + if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;; + esac + done + IFS=$ac_save_IFS + $1=$__new + fi +]) + +dnl AC_VALIDIFY_CXXFLAGS checks for forbidden flags the user may have given +AC_DEFUN([AC_VALIDIFY_CXXFLAGS], +[dnl +if test "x$kde_use_qt_emb" != "xyes"; then + AC_REMOVE_FORBIDDEN(CXX, [-fno-rtti -rpath]) + AC_REMOVE_FORBIDDEN(CXXFLAGS, [-fno-rtti -rpath]) +else + AC_REMOVE_FORBIDDEN(CXX, [-rpath]) + AC_REMOVE_FORBIDDEN(CXXFLAGS, [-rpath]) +fi +]) + +AC_DEFUN([AC_CHECK_COMPILERS], +[ + AC_ARG_ENABLE(debug, + AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]), + [ + case $enableval in + yes) + kde_use_debug_code="yes" + kde_use_debug_define=no + ;; + full) + kde_use_debug_code="full" + kde_use_debug_define=no + ;; + *) + kde_use_debug_code="no" + kde_use_debug_define=yes + ;; + esac + ], + [kde_use_debug_code="no" + kde_use_debug_define=no + ]) + + dnl Just for configure --help + AC_ARG_ENABLE(dummyoption, + AC_HELP_STRING([--disable-debug], + [disables debug output and debug symbols [default=no]]), + [],[]) + + AC_ARG_ENABLE(strict, + AC_HELP_STRING([--enable-strict], + [compiles with strict compiler options (may not work!)]), + [ + if test $enableval = "no"; then + kde_use_strict_options="no" + else + kde_use_strict_options="yes" + fi + ], [kde_use_strict_options="no"]) + + AC_ARG_ENABLE(warnings,AC_HELP_STRING([--disable-warnings],[disables compilation with -Wall and similar]), + [ + if test $enableval = "no"; then + kde_use_warnings="no" + else + kde_use_warnings="yes" + fi + ], [kde_use_warnings="yes"]) + + dnl enable warnings for debug build + if test "$kde_use_debug_code" != "no"; then + kde_use_warnings=yes + fi + + AC_ARG_ENABLE(profile,AC_HELP_STRING([--enable-profile],[creates profiling infos [default=no]]), + [kde_use_profiling=$enableval], + [kde_use_profiling="no"] + ) + + dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS + CFLAGS=" $CFLAGS" + + AC_PROG_CC + + AC_PROG_CPP + + if test "$GCC" = "yes"; then + if test "$kde_use_debug_code" != "no"; then + if test $kde_use_debug_code = "full"; then + CFLAGS="-g3 -fno-inline $CFLAGS" + else + CFLAGS="-g -O2 $CFLAGS" + fi + else + CFLAGS="-O2 $CFLAGS" + fi + fi + + if test "$kde_use_debug_define" = "yes"; then + CFLAGS="-DNDEBUG $CFLAGS" + fi + + + case "$host" in + *-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";; + *-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";; + esac + + if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then + LDFLAGS="" + fi + + CXXFLAGS=" $CXXFLAGS" + + AC_PROG_CXX + + if test "$GXX" = "yes" || test "$CXX" = "KCC"; then + if test "$kde_use_debug_code" != "no"; then + if test "$CXX" = "KCC"; then + CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS" + else + if test "$kde_use_debug_code" = "full"; then + CXXFLAGS="-g3 -fno-inline $CXXFLAGS" + else + CXXFLAGS="-g -O2 $CXXFLAGS" + fi + fi + KDE_CHECK_COMPILER_FLAG(fno-builtin,[CXXFLAGS="-fno-builtin $CXXFLAGS"]) + + dnl convenience compiler flags + KDE_CHECK_COMPILER_FLAG(Woverloaded-virtual, [WOVERLOADED_VIRTUAL="-Woverloaded-virtual"], [WOVERLOADED_VRITUAL=""]) + AC_SUBST(WOVERLOADED_VIRTUAL) + else + if test "$CXX" = "KCC"; then + CXXFLAGS="+K3 $CXXFLAGS" + else + CXXFLAGS="-O2 $CXXFLAGS" + fi + fi + fi + + if test "$kde_use_debug_define" = "yes"; then + CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS" + fi + + if test "$kde_use_profiling" = "yes"; then + KDE_CHECK_COMPILER_FLAG(pg, + [ + CFLAGS="-pg $CFLAGS" + CXXFLAGS="-pg $CXXFLAGS" + ]) + fi + + if test "$kde_use_warnings" = "yes"; then + if test "$GCC" = "yes"; then + CXXFLAGS="-Wall -W -Wpointer-arith -Wwrite-strings $CXXFLAGS" + case $host in + *-*-linux-gnu) + CFLAGS="-std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS" + CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts $CXXFLAGS" + KDE_CHECK_COMPILER_FLAG(Wmissing-format-attribute, [CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"]) + KDE_CHECK_C_COMPILER_FLAG(Wmissing-format-attribute, [CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"]) + ;; + esac + KDE_CHECK_COMPILER_FLAG(Wundef,[CXXFLAGS="-Wundef $CXXFLAGS"]) + KDE_CHECK_COMPILER_FLAG(Wno-long-long,[CXXFLAGS="-Wno-long-long $CXXFLAGS"]) + KDE_CHECK_COMPILER_FLAG(Wnon-virtual-dtor,[CXXFLAGS="-Wnon-virtual-dtor $CXXFLAGS"]) + fi + fi + + if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then + CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS" + fi + + AC_ARG_ENABLE(pch, + AC_HELP_STRING([--enable-pch], + [enables precompiled header support (currently only KCC or gcc >=3.4+unsermake) [default=no]]), + [ kde_use_pch=$enableval ],[ kde_use_pch=no ]) + + HAVE_GCC_VISIBILITY=0 + AC_SUBST([HAVE_GCC_VISIBILITY]) + + if test "$GXX" = "yes"; then + KDE_CHECK_COMPILER_FLAG(fno-exceptions,[CXXFLAGS="$CXXFLAGS -fno-exceptions"]) + KDE_CHECK_COMPILER_FLAG(fno-check-new, [CXXFLAGS="$CXXFLAGS -fno-check-new"]) + KDE_CHECK_COMPILER_FLAG(fno-common, [CXXFLAGS="$CXXFLAGS -fno-common"]) + KDE_CHECK_COMPILER_FLAG(fexceptions, [USE_EXCEPTIONS="-fexceptions"], USE_EXCEPTIONS= ) + ENABLE_PERMISSIVE_FLAG="-fpermissive" + + if test "$kde_use_pch" = "yes"; then + AC_MSG_CHECKING(whether gcc supports precompiling c header files) + echo >conftest.h + if $CC -x c-header conftest.h >/dev/null 2>/dev/null; then + kde_gcc_supports_pch=yes + AC_MSG_RESULT(yes) + else + kde_gcc_supports_pch=no + AC_MSG_RESULT(no) + fi + if test "$kde_gcc_supports_pch" = "yes"; then + AC_MSG_CHECKING(whether gcc supports precompiling c++ header files) + if $CXX -x c++-header conftest.h >/dev/null 2>/dev/null; then + kde_gcc_supports_pch=yes + AC_MSG_RESULT(yes) + else + kde_gcc_supports_pch=no + AC_MSG_RESULT(no) + fi + fi + rm -f conftest.h conftest.h.gch + fi + fi + AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes") + if test "$CXX" = "KCC"; then + dnl unfortunately we currently cannot disable exception support in KCC + dnl because doing so is binary incompatible and Qt by default links with exceptions :-( + dnl KDE_CHECK_COMPILER_FLAG(-no_exceptions,[CXXFLAGS="$CXXFLAGS --no_exceptions"]) + dnl KDE_CHECK_COMPILER_FLAG(-exceptions, [USE_EXCEPTIONS="--exceptions"], USE_EXCEPTIONS= ) + + if test "$kde_use_pch" = "yes"; then + dnl TODO: support --pch-dir! + KDE_CHECK_COMPILER_FLAG(-pch,[CXXFLAGS="$CXXFLAGS --pch"]) + dnl the below works (but the dir must exist), but it's + dnl useless for a whole package. + dnl The are precompiled headers for each source file, so when compiling + dnl from scratch, it doesn't make a difference, and they take up + dnl around ~5Mb _per_ sourcefile. + dnl KDE_CHECK_COMPILER_FLAG(-pch_dir /tmp, + dnl [CXXFLAGS="$CXXFLAGS --pch_dir `pwd`/pcheaders"]) + fi + dnl this flag controls inlining. by default KCC inlines in optimisation mode + dnl all implementations that are defined inside the class {} declaration. + dnl because of templates-compatibility with broken gcc compilers, this + dnl can cause excessive inlining. This flag limits it to a sane level + KDE_CHECK_COMPILER_FLAG(-inline_keyword_space_time=6,[CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"]) + KDE_CHECK_COMPILER_FLAG(-inline_auto_space_time=2,[CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"]) + KDE_CHECK_COMPILER_FLAG(-inline_implicit_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"]) + KDE_CHECK_COMPILER_FLAG(-inline_generated_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"]) + dnl Some source files are shared between multiple executables + dnl (or libraries) and some of those need template instantiations. + dnl In that case KCC needs to compile those sources with + dnl --one_instantiation_per_object. To make it easy for us we compile + dnl _all_ objects with that flag (--one_per is a shorthand). + KDE_CHECK_COMPILER_FLAG(-one_per, [CXXFLAGS="$CXXFLAGS --one_per"]) + fi + AC_SUBST(USE_EXCEPTIONS) + dnl obsolete macro - provided to keep things going + USE_RTTI= + AC_SUBST(USE_RTTI) + + case "$host" in + *-*-irix*) test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;; + *-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";; + *-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";; + *-*-solaris*) + if test "$GXX" = yes; then + libstdcpp=`$CXX -print-file-name=libstdc++.so` + if test ! -f $libstdcpp; then + AC_MSG_ERROR([You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so]) + fi + fi + ;; + esac + + AC_VALIDIFY_CXXFLAGS + + AC_PROG_CXXCPP + + if test "$GCC" = yes; then + NOOPT_CFLAGS=-O0 + fi + KDE_CHECK_COMPILER_FLAG(O0,[NOOPT_CXXFLAGS=-O0]) + + AC_ARG_ENABLE(coverage, + AC_HELP_STRING([--enable-coverage],[use gcc coverage testing]), [ + if test "$am_cv_CC_dependencies_compiler_type" = "gcc3"; then + ac_coverage_compiler="-fprofile-arcs -ftest-coverage" + ac_coverage_linker="-lgcc" + elif test "$am_cv_CC_dependencies_compiler_type" = "gcc"; then + ac_coverage_compiler="-fprofile-arcs -ftest-coverage" + ac_coverage_linker="" + else + AC_MSG_ERROR([coverage with your compiler is not supported]) + fi + CFLAGS="$CFLAGS $ac_coverage_compiler" + CXXFLAGS="$CXXFLAGS $ac_coverage_compiler" + LDFLAGS="$LDFLAGS $ac_coverage_linker" + ]) + + AC_SUBST(NOOPT_CXXFLAGS) + AC_SUBST(NOOPT_CFLAGS) + AC_SUBST(ENABLE_PERMISSIVE_FLAG) + + KDE_CHECK_NEW_LDFLAGS + KDE_CHECK_FINAL + KDE_CHECK_CLOSURE + KDE_CHECK_NMCHECK + + ifdef([AM_DEPENDENCIES], AC_REQUIRE([KDE_ADD_DEPENDENCIES]), []) +]) + +AC_DEFUN([KDE_CHECK_VISIBILITY_GCC_BUG], + [ + AC_CACHE_CHECK([for gcc -fvisibility-inlines-hidden bug], kde_cv_val_gcc_visibility_bug, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + safe_CXXFLAGS=$CXXFLAGS + safe_LDFLAGS=$LDFLAGS + CXXFLAGS="$CXXFLAGS -fPIC -fvisibility-inlines-hidden -O0" + LDFLAGS="$LDFLAGS -shared -fPIC" + + AC_TRY_LINK( + [ + /* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */ + #include + int some_function( void ) __attribute__ ((visibility("default"))); + int some_function( void ) + { + std::string s("blafasel"); + return 0; + } + ], [/* elvis is alive */], + kde_cv_val_gcc_visibility_bug=no, kde_cv_val_gcc_visibility_bug=yes) + + CXXFLAGS=$safe_CXXFLAGS + LDFLAGS=$safe_LDFLAGS + AC_LANG_RESTORE + ] + ) + + if test x$kde_cv_val_gcc_visibility_bug = xno; then + CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden" + fi + ] +) + +AC_DEFUN([KDE_CHECK_AND_ADD_HIDDEN_VISIBILITY], +[ + if test "$GXX" = "yes"; then + KDE_CHECK_COMPILER_FLAG(fvisibility=hidden, + [ + CXXFLAGS="$CXXFLAGS -fvisibility=hidden" + KDE_CHECK_VISIBILITY_GCC_BUG + + HAVE_GCC_VISIBILITY=1 + AC_DEFINE_UNQUOTED(__KDE_HAVE_GCC_VISIBILITY, "$HAVE_GCC_VISIBILITY", [define to 1 if -fvisibility is supported]) + ]) + fi +]) + +AC_DEFUN([KDE_ENABLE_HIDDEN_VISIBILITY], +[ + AC_REQUIRE([KDE_CHECK_AND_ADD_HIDDEN_VISIBILITY]) +]) + +AC_DEFUN([KDE_ADD_DEPENDENCIES], +[ + [A]M_DEPENDENCIES(CC) + [A]M_DEPENDENCIES(CXX) +]) + +dnl just a wrapper to clean up configure.in +AC_DEFUN([KDE_PROG_LIBTOOL], +[ +AC_REQUIRE([AC_CHECK_COMPILERS]) +AC_REQUIRE([AC_ENABLE_SHARED]) +AC_REQUIRE([AC_ENABLE_STATIC]) + +AC_REQUIRE([AC_LIBTOOL_DLOPEN]) +AC_REQUIRE([KDE_CHECK_LIB64]) + +AC_OBJEXT +AC_EXEEXT + +AM_PROG_LIBTOOL +AC_LIBTOOL_CXX + +LIBTOOL_SHELL="/bin/sh ./libtool" +# LIBTOOL="$LIBTOOL --silent" +KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_NO_UNDEFINED) \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)" +AC_SUBST(KDE_PLUGIN) + +# we patch configure quite some so we better keep that consistent for incremental runs +AC_SUBST(AUTOCONF,'$(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure') +]) + +AC_DEFUN([KDE_CHECK_LIB64], +[ + kdelibsuff="$kde_libs_suffix" + if test -z "$kdelibsuff"; then + kdelibsuff=no + fi + AC_ARG_ENABLE(libsuffix, + AC_HELP_STRING([--enable-libsuffix], + [/lib directory suffix (64,32,none[=default])]), + kdelibsuff=$enableval) + # TODO: add an auto case that compiles a little C app to check + # where the glibc is + if test "$kdelibsuff" = "no"; then + kdelibsuff= + fi + if test -z "$kdelibsuff"; then + AC_MSG_RESULT([not using lib directory suffix]) + AC_DEFINE(KDELIBSUFF, [""], Suffix for lib directories) + else + if test "$libdir" = '${exec_prefix}/lib'; then + libdir="$libdir${kdelibsuff}" + AC_SUBST([libdir], ["$libdir"]) dnl ugly hack for lib64 platforms + fi + AC_DEFINE_UNQUOTED(KDELIBSUFF, ["${kdelibsuff}"], Suffix for lib directories) + AC_MSG_RESULT([using lib directory suffix $kdelibsuff]) + fi +]) + +AC_DEFUN([KDE_CHECK_TYPES], +[ AC_CHECK_SIZEOF(int, 4)dnl + AC_CHECK_SIZEOF(short)dnl + AC_CHECK_SIZEOF(long, 4)dnl + AC_CHECK_SIZEOF(char *, 4)dnl +])dnl + +dnl Not used - kept for compat only? +AC_DEFUN([KDE_DO_IT_ALL], +[ +AC_CANONICAL_SYSTEM +AC_ARG_PROGRAM +AM_INIT_AUTOMAKE($1, $2) +AM_DISABLE_LIBRARIES +AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde}) +AC_CHECK_COMPILERS +KDE_PROG_LIBTOOL +AM_KDE_WITH_NLS +AC_PATH_KDE +]) + +AC_DEFUN([AC_CHECK_RPATH], +[ +AC_MSG_CHECKING(for rpath) +AC_ARG_ENABLE(rpath, + AC_HELP_STRING([--disable-rpath],[do not use the rpath feature of ld]), + USE_RPATH=$enableval, USE_RPATH=yes) + +if test -z "$KDE_RPATH" && test "$USE_RPATH" = "yes"; then + + KDE_RPATH="-R \$(libdir)" + + if test "$kde_libraries" != "$libdir"; then + KDE_RPATH="$KDE_RPATH -R \$(kde_libraries)" + fi + + if test -n "$qt_libraries"; then + KDE_RPATH="$KDE_RPATH -R \$(qt_libraries)" + fi + dnl $x_libraries is set to /usr/lib in case + if test -n "$X_LDFLAGS"; then + X_RPATH="-R \$(x_libraries)" + KDE_RPATH="$KDE_RPATH $X_RPATH" + fi + if test -n "$KDE_EXTRA_RPATH"; then + KDE_RPATH="$KDE_RPATH \$(KDE_EXTRA_RPATH)" + fi +fi +AC_SUBST(KDE_EXTRA_RPATH) +AC_SUBST(KDE_RPATH) +AC_SUBST(X_RPATH) +AC_MSG_RESULT($USE_RPATH) +]) + +dnl Check for the type of the third argument of getsockname +AC_DEFUN([AC_CHECK_SOCKLEN_T], +[ + AC_MSG_CHECKING(for socklen_t) + AC_CACHE_VAL(kde_cv_socklen_t, + [ + AC_LANG_PUSH(C++) + kde_cv_socklen_t=no + AC_TRY_COMPILE([ + #include + #include + ], + [ + socklen_t len; + getpeername(0,0,&len); + ], + [ + kde_cv_socklen_t=yes + kde_cv_socklen_t_equiv=socklen_t + ]) + AC_LANG_POP(C++) + ]) + AC_MSG_RESULT($kde_cv_socklen_t) + if test $kde_cv_socklen_t = no; then + AC_MSG_CHECKING([for socklen_t equivalent for socket functions]) + AC_CACHE_VAL(kde_cv_socklen_t_equiv, + [ + kde_cv_socklen_t_equiv=int + AC_LANG_PUSH(C++) + for t in int size_t unsigned long "unsigned long"; do + AC_TRY_COMPILE([ + #include + #include + ], + [ + $t len; + getpeername(0,0,&len); + ], + [ + kde_cv_socklen_t_equiv="$t" + break + ]) + done + AC_LANG_POP(C++) + ]) + AC_MSG_RESULT($kde_cv_socklen_t_equiv) + fi + AC_DEFINE_UNQUOTED(kde_socklen_t, $kde_cv_socklen_t_equiv, + [type to use in place of socklen_t if not defined]) + AC_DEFINE_UNQUOTED(ksize_t, $kde_cv_socklen_t_equiv, + [type to use in place of socklen_t if not defined (deprecated, use kde_socklen_t)]) +]) + +dnl This is a merge of some macros out of the gettext aclocal.m4 +dnl since we don't need anything, I took the things we need +dnl the copyright for them is: +dnl > +dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +dnl This Makefile.in is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. +dnl > +dnl for this file it is relicensed under LGPL + +AC_DEFUN([AM_KDE_WITH_NLS], + [ + dnl If we use NLS figure out what method + + AM_PATH_PROG_WITH_TEST_KDE(MSGFMT, msgfmt, + [test -n "`$ac_dir/$ac_word --version 2>&1 | grep 'GNU gettext'`"], msgfmt) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + + if test -z "`$GMSGFMT --version 2>&1 | grep 'GNU gettext'`"; then + AC_MSG_RESULT([found msgfmt program is not GNU msgfmt; ignore it]) + GMSGFMT=":" + fi + MSGFMT=$GMSGFMT + AC_SUBST(GMSGFMT) + AC_SUBST(MSGFMT) + + AM_PATH_PROG_WITH_TEST_KDE(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is no 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 programs is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + AC_SUBST(XGETTEXT) + + ]) + +# Search path for a program which passes the given test. +# Ulrich Drepper , 1996. + +# serial 1 +# Stephan Kulow: I appended a _KDE against name conflicts + +dnl AM_PATH_PROG_WITH_TEST_KDE(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST_KDE], +[# 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 -n "[$]$1"; then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) + + +# Check whether LC_MESSAGES is available in . +# Ulrich Drepper , 1995. + +# serial 1 + +AC_DEFUN([AM_LC_MESSAGES], + [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 locale.h file contains LC_MESSAGES]) + fi + fi]) + +dnl From Jim Meyering. +dnl FIXME: migrate into libit. + +AC_DEFUN([AM_FUNC_OBSTACK], +[AC_CACHE_CHECK([for obstacks], am_cv_func_obstack, + [AC_TRY_LINK([#include "obstack.h"], + [struct obstack *mem;obstack_free(mem,(char *) 0)], + am_cv_func_obstack=yes, + am_cv_func_obstack=no)]) + if test $am_cv_func_obstack = yes; then + AC_DEFINE(HAVE_OBSTACK) + else + LIBOBJS="$LIBOBJS obstack.o" + fi +]) + +dnl From Jim Meyering. Use this if you use the GNU error.[ch]. +dnl FIXME: Migrate into libit + +AC_DEFUN([AM_FUNC_ERROR_AT_LINE], +[AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line, + [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");], + am_cv_lib_error_at_line=yes, + am_cv_lib_error_at_line=no)]) + if test $am_cv_lib_error_at_line = no; then + LIBOBJS="$LIBOBJS error.o" + fi + AC_SUBST(LIBOBJS)dnl +]) + +# Macro to add for using GNU gettext. +# Ulrich Drepper , 1995. + +# serial 1 +# Stephan Kulow: I put a KDE in it to avoid name conflicts + +AC_DEFUN([AM_KDE_GNU_GETTEXT], + [AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + AC_REQUIRE([AC_TYPE_OFF_T])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + AC_REQUIRE([AM_KDE_WITH_NLS])dnl + AC_CHECK_HEADERS([limits.h locale.h nl_types.h string.h values.h alloca.h]) + AC_CHECK_FUNCS([getcwd munmap putenv setlocale strchr strcasecmp \ +__argz_count __argz_stringify __argz_next]) + + AC_MSG_CHECKING(for stpcpy) + AC_CACHE_VAL(kde_cv_func_stpcpy, + [ + kde_safe_cxxflags=$CXXFLAGS + CXXFLAGS="-Werror" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([ + #include + ], + [ + char buffer[200]; + stpcpy(buffer, buffer); + ], + kde_cv_func_stpcpy=yes, + kde_cv_func_stpcpy=no) + AC_LANG_RESTORE + CXXFLAGS=$kde_safe_cxxflags + ]) + AC_MSG_RESULT($kde_cv_func_stpcpy) + if eval "test \"`echo $kde_cv_func_stpcpy`\" = yes"; then + AC_DEFINE(HAVE_STPCPY, 1, [Define if you have stpcpy]) + fi + + AM_LC_MESSAGES + + if test "x$CATOBJEXT" != "x"; 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 + + ]) + +AC_DEFUN([AC_HAVE_XPM], + [AC_REQUIRE_CPP()dnl + AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + + test -z "$XPM_LDFLAGS" && XPM_LDFLAGS= + test -z "$XPM_INCLUDE" && XPM_INCLUDE= + + AC_ARG_WITH(xpm,AC_HELP_STRING([--without-xpm],[disable color pixmap XPM tests]), + xpm_test=$withval, xpm_test="yes") + if test "x$xpm_test" = xno; then + ac_cv_have_xpm=no + else + AC_MSG_CHECKING(for XPM) + AC_CACHE_VAL(ac_cv_have_xpm, + [ + ac_save_ldflags="$LDFLAGS" + ac_save_cflags="$CFLAGS" + if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then + LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm -lX11 -lXext $LIBZ $LIBSOCKET" + else + LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm $LIBZ $LIBSOCKET" + fi + CFLAGS="$CFLAGS $X_INCLUDES $USER_INCLUDES" + test -n "$XPM_INCLUDE" && CFLAGS="-I$XPM_INCLUDE $CFLAGS" + AC_TRY_LINK([#include ],[], + ac_cv_have_xpm="yes",ac_cv_have_xpm="no") + LDFLAGS="$ac_save_ldflags" + CFLAGS="$ac_save_cflags" + ])dnl + + if test "$ac_cv_have_xpm" = no; then + AC_MSG_RESULT(no) + XPM_LDFLAGS="" + XPMINC="" + $2 + else + AC_DEFINE(HAVE_XPM, 1, [Define if you have XPM support]) + if test "$XPM_LDFLAGS" = ""; then + XPMLIB='-lXpm $(LIB_X11)' + else + XPMLIB="-L$XPM_LDFLAGS -lXpm "'$(LIB_X11)' + fi + if test "$XPM_INCLUDE" = ""; then + XPMINC="" + else + XPMINC="-I$XPM_INCLUDE" + fi + AC_MSG_RESULT(yes) + $1 + fi + fi + AC_SUBST(XPMINC) + AC_SUBST(XPMLIB) +]) + +AC_DEFUN([AC_HAVE_DPMS], + [AC_REQUIRE_CPP()dnl + AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + + test -z "$DPMS_LDFLAGS" && DPMS_LDFLAGS= + test -z "$DPMS_INCLUDE" && DPMS_INCLUDE= + DPMS_LIB= + + AC_ARG_WITH(dpms,AC_HELP_STRING([--without-dpms],[disable DPMS power saving]), + dpms_test=$withval, dpms_test="yes") + if test "x$dpms_test" = xno; then + ac_cv_have_dpms=no + else + AC_MSG_CHECKING(for DPMS) + dnl Note: ac_cv_have_dpms can be no, yes, or -lXdpms. + dnl 'yes' means DPMS_LIB="", '-lXdpms' means DPMS_LIB="-lXdpms". + AC_CACHE_VAL(ac_cv_have_dpms, + [ + if test "x$kde_use_qt_emb" = "xyes" || test "x$kde_use_qt_mac" = "xyes"; then + AC_MSG_RESULT(no) + ac_cv_have_dpms="no" + else + ac_save_ldflags="$LDFLAGS" + ac_save_cflags="$CFLAGS" + ac_save_libs="$LIBS" + LDFLAGS="$LDFLAGS $DPMS_LDFLAGS $all_libraries -lX11 -lXext $LIBSOCKET" + CFLAGS="$CFLAGS $X_INCLUDES" + test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS" + AC_TRY_LINK([ + #include + #include + #include + #include + int foo_test_dpms() + { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[], + ac_cv_have_dpms="yes", [ + LDFLAGS="$ac_save_ldflags" + CFLAGS="$ac_save_cflags" + LDFLAGS="$LDFLAGS $DPMS_LDFLAGS $all_libraries -lX11 -lXext $LIBSOCKET" + LIBS="$LIBS -lXdpms" + CFLAGS="$CFLAGS $X_INCLUDES" + test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS" + AC_TRY_LINK([ + #include + #include + #include + #include + int foo_test_dpms() + { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[], + [ + ac_cv_have_dpms="-lXdpms" + ],ac_cv_have_dpms="no") + ]) + LDFLAGS="$ac_save_ldflags" + CFLAGS="$ac_save_cflags" + LIBS="$ac_save_libs" + fi + ])dnl + + if test "$ac_cv_have_dpms" = no; then + AC_MSG_RESULT(no) + DPMS_LDFLAGS="" + DPMSINC="" + $2 + else + AC_DEFINE(HAVE_DPMS, 1, [Define if you have DPMS support]) + if test "$ac_cv_have_dpms" = "-lXdpms"; then + DPMS_LIB="-lXdpms" + fi + if test "$DPMS_LDFLAGS" = ""; then + DPMSLIB="$DPMS_LIB "'$(LIB_X11)' + else + DPMSLIB="$DPMS_LDFLAGS $DPMS_LIB "'$(LIB_X11)' + fi + if test "$DPMS_INCLUDE" = ""; then + DPMSINC="" + else + DPMSINC="-I$DPMS_INCLUDE" + fi + AC_MSG_RESULT(yes) + $1 + fi + fi + ac_save_cflags="$CFLAGS" + CFLAGS="$CFLAGS $X_INCLUDES" + test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS" + AH_TEMPLATE(HAVE_DPMSCAPABLE_PROTO, + [Define if you have the DPMSCapable prototype in ]) + AC_CHECK_DECL(DPMSCapable, + AC_DEFINE(HAVE_DPMSCAPABLE_PROTO),, + [#include ]) + AH_TEMPLATE(HAVE_DPMSINFO_PROTO, + [Define if you have the DPMSInfo prototype in ]) + AC_CHECK_DECL(DPMSInfo, + AC_DEFINE(HAVE_DPMSINFO_PROTO),, + [#include ]) + CFLAGS="$ac_save_cflags" + AC_SUBST(DPMSINC) + AC_SUBST(DPMSLIB) +]) + +AC_DEFUN([AC_HAVE_GL], + [AC_REQUIRE_CPP()dnl + AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + + test -z "$GL_LDFLAGS" && GL_LDFLAGS= + test -z "$GL_INCLUDE" && GL_INCLUDE= + + AC_ARG_WITH(gl,AC_HELP_STRING([--without-gl],[disable 3D GL modes]), + gl_test=$withval, gl_test="yes") + if test "x$kde_use_qt_emb" = "xyes"; then + # GL and Qt Embedded is a no-go for now. + ac_cv_have_gl=no + elif test "x$gl_test" = xno; then + ac_cv_have_gl=no + else + AC_MSG_CHECKING(for GL) + AC_CACHE_VAL(ac_cv_have_gl, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_ldflags=$LDFLAGS + ac_save_cxxflags=$CXXFLAGS + ac_save_libs=$LIBS + LDFLAGS="$LDFLAGS $GL_LDFLAGS $X_LDFLAGS $all_libraries" + LIBS="$LIBS -lGL -lGLU" + test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && LIBS="$LIBS -lX11" + LIBS="$LIBS $LIB_XEXT -lm $LIBSOCKET" + CXXFLAGS="$CFLAGS $X_INCLUDES" + test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS" + AC_TRY_LINK([#include +#include +], [], + ac_cv_have_gl="yes", ac_cv_have_gl="no") + AC_LANG_RESTORE + LDFLAGS=$ac_save_ldflags + CXXFLAGS=$ac_save_cxxflags + LIBS=$ac_save_libs + ])dnl + + if test "$ac_cv_have_gl" = "no"; then + AC_MSG_RESULT(no) + GL_LDFLAGS="" + GLINC="" + $2 + else + AC_DEFINE(HAVE_GL, 1, [Defines if you have GL (Mesa, OpenGL, ...)]) + if test "$GL_LDFLAGS" = ""; then + GLLIB='-lGLU -lGL $(LIB_X11)' + else + GLLIB="$GL_LDFLAGS -lGLU -lGL "'$(LIB_X11)' + fi + if test "$GL_INCLUDE" = ""; then + GLINC="" + else + GLINC="-I$GL_INCLUDE" + fi + AC_MSG_RESULT($ac_cv_have_gl) + $1 + fi + fi + AC_SUBST(GLINC) + AC_SUBST(GLLIB) +]) + + + dnl shadow password and PAM magic - maintained by ossi@kde.org + +AC_DEFUN([KDE_PAM], [ + AC_REQUIRE([KDE_CHECK_LIBDL]) + + want_pam= + AC_ARG_WITH(pam, + AC_HELP_STRING([--with-pam[=ARG]],[enable support for PAM: ARG=[yes|no|service name]]), + [ if test "x$withval" = "xyes"; then + want_pam=yes + pam_service=kde + elif test "x$withval" = "xno"; then + want_pam=no + else + want_pam=yes + pam_service=$withval + fi + ], [ pam_service=kde ]) + + use_pam= + PAMLIBS= + if test "x$want_pam" != xno; then + AC_CHECK_LIB(pam, pam_start, [ + AC_CHECK_HEADER(security/pam_appl.h, + [ pam_header=security/pam_appl.h ], + [ AC_CHECK_HEADER(pam/pam_appl.h, + [ pam_header=pam/pam_appl.h ], + [ + AC_MSG_WARN([PAM detected, but no headers found! +Make sure you have the necessary development packages installed.]) + ] + ) + ] + ) + ], , $LIBDL) + if test -z "$pam_header"; then + if test "x$want_pam" = xyes; then + AC_MSG_ERROR([--with-pam was specified, but cannot compile with PAM!]) + fi + else + AC_DEFINE(HAVE_PAM, 1, [Defines if you have PAM (Pluggable Authentication Modules)]) + PAMLIBS="$PAM_MISC_LIB -lpam $LIBDL" + use_pam=yes + + dnl darwin claims to be something special + if test "$pam_header" = "pam/pam_appl.h"; then + AC_DEFINE(HAVE_PAM_PAM_APPL_H, 1, [Define if your PAM headers are in pam/ instead of security/]) + fi + + dnl test whether struct pam_message is const (Linux) or not (Sun) + AC_MSG_CHECKING(for const pam_message) + AC_EGREP_HEADER([struct pam_message], $pam_header, + [ AC_EGREP_HEADER([const struct pam_message], $pam_header, + [AC_MSG_RESULT([const: Linux-type PAM])], + [AC_MSG_RESULT([nonconst: Sun-type PAM]) + AC_DEFINE(PAM_MESSAGE_NONCONST, 1, [Define if your PAM support takes non-const arguments (Solaris)])] + )], + [AC_MSG_RESULT([not found - assume const, Linux-type PAM])]) + fi + fi + + AC_SUBST(PAMLIBS) +]) + +dnl DEF_PAM_SERVICE(arg name, full name, define name) +AC_DEFUN([DEF_PAM_SERVICE], [ + AC_ARG_WITH($1-pam, + AC_HELP_STRING([--with-$1-pam=[val]],[override PAM service from --with-pam for $2]), + [ if test "x$use_pam" = xyes; then + $3_PAM_SERVICE=$withval + else + AC_MSG_ERROR([Cannot use use --with-$1-pam, as no PAM was detected. +You may want to enforce it by using --with-pam.]) + fi + ], + [ if test "x$use_pam" = xyes; then + $3_PAM_SERVICE="$pam_service" + fi + ]) + if test -n "$$3_PAM_SERVICE"; then + AC_MSG_RESULT([The PAM service used by $2 will be $$3_PAM_SERVICE]) + AC_DEFINE_UNQUOTED($3_PAM_SERVICE, "$$3_PAM_SERVICE", [The PAM service to be used by $2]) + fi + AC_SUBST($3_PAM_SERVICE) +]) + +AC_DEFUN([KDE_SHADOWPASSWD], [ + AC_REQUIRE([KDE_PAM]) + + AC_CHECK_LIB(shadow, getspent, + [ LIBSHADOW="-lshadow" + ac_use_shadow=yes + ], + [ dnl for UnixWare + AC_CHECK_LIB(gen, getspent, + [ LIBGEN="-lgen" + ac_use_shadow=yes + ], + [ AC_CHECK_FUNC(getspent, + [ ac_use_shadow=yes ], + [ ac_use_shadow=no ]) + ]) + ]) + AC_SUBST(LIBSHADOW) + AC_SUBST(LIBGEN) + + AC_MSG_CHECKING([for shadow passwords]) + + AC_ARG_WITH(shadow, + AC_HELP_STRING([--with-shadow],[If you want shadow password support]), + [ if test "x$withval" != "xno"; then + use_shadow=yes + else + use_shadow=no + fi + ], [ + use_shadow="$ac_use_shadow" + ]) + + if test "x$use_shadow" = xyes; then + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SHADOW, 1, [Define if you use shadow passwords]) + else + AC_MSG_RESULT(no) + LIBSHADOW= + LIBGEN= + fi + + dnl finally make the relevant binaries setuid root, if we have shadow passwds. + dnl this still applies, if we could use it indirectly through pam. + if test "x$use_shadow" = xyes || + ( test "x$use_pam" = xyes && test "x$ac_use_shadow" = xyes ); then + case $host in + *-*-freebsd* | *-*-netbsd* | *-*-openbsd*) + SETUIDFLAGS="-m 4755 -o root";; + *) + SETUIDFLAGS="-m 4755";; + esac + fi + AC_SUBST(SETUIDFLAGS) + +]) + +AC_DEFUN([KDE_PASSWDLIBS], [ + AC_REQUIRE([KDE_MISC_TESTS]) dnl for LIBCRYPT + AC_REQUIRE([KDE_PAM]) + AC_REQUIRE([KDE_SHADOWPASSWD]) + + if test "x$use_pam" = "xyes"; then + PASSWDLIBS="$PAMLIBS" + else + PASSWDLIBS="$LIBCRYPT $LIBSHADOW $LIBGEN" + fi + + dnl FreeBSD uses a shadow-like setup, where /etc/passwd holds the users, but + dnl /etc/master.passwd holds the actual passwords. /etc/master.passwd requires + dnl root to read, so kcheckpass needs to be root (even when using pam, since pam + dnl may need to read /etc/master.passwd). + case $host in + *-*-freebsd*) + SETUIDFLAGS="-m 4755 -o root" + ;; + *) + ;; + esac + + AC_SUBST(PASSWDLIBS) +]) + +AC_DEFUN([KDE_CHECK_LIBDL], +[ +AC_CHECK_LIB(dl, dlopen, [ +LIBDL="-ldl" +ac_cv_have_dlfcn=yes +]) + +AC_CHECK_LIB(dld, shl_unload, [ +LIBDL="-ldld" +ac_cv_have_shload=yes +]) + +AC_SUBST(LIBDL) +]) + +AC_DEFUN([KDE_CHECK_DLOPEN], +[ +KDE_CHECK_LIBDL +AC_CHECK_HEADERS(dlfcn.h dl.h) +if test "$ac_cv_header_dlfcn_h" = "no"; then + ac_cv_have_dlfcn=no +fi + +if test "$ac_cv_header_dl_h" = "no"; then + ac_cv_have_shload=no +fi + +dnl XXX why change enable_dlopen? its already set by autoconf's AC_ARG_ENABLE +dnl (MM) +AC_ARG_ENABLE(dlopen, +AC_HELP_STRING([--disable-dlopen],[link statically [default=no]]), +enable_dlopen=$enableval, +enable_dlopen=yes) + +# override the user's opinion, if we know it better ;) +if test "$ac_cv_have_dlfcn" = "no" && test "$ac_cv_have_shload" = "no"; then + enable_dlopen=no +fi + +if test "$ac_cv_have_dlfcn" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_DLFCN, 1, [Define if you have dlfcn]) +fi + +if test "$ac_cv_have_shload" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_SHLOAD, 1, [Define if you have shload]) +fi + +if test "$enable_dlopen" = no ; then + test -n "$1" && eval $1 +else + test -n "$2" && eval $2 +fi + +]) + +AC_DEFUN([KDE_CHECK_DYNAMIC_LOADING], +[ +KDE_CHECK_DLOPEN(libtool_enable_shared=yes, libtool_enable_static=no) +KDE_PROG_LIBTOOL +AC_MSG_CHECKING([dynamic loading]) +eval "`egrep '^build_libtool_libs=' libtool`" +if test "$build_libtool_libs" = "yes" && test "$enable_dlopen" = "yes"; then + dynamic_loading=yes + AC_DEFINE_UNQUOTED(HAVE_DYNAMIC_LOADING) +else + dynamic_loading=no +fi +AC_MSG_RESULT($dynamic_loading) +if test "$dynamic_loading" = "yes"; then + $1 +else + $2 +fi +]) + +AC_DEFUN([KDE_ADD_INCLUDES], +[ +if test -z "$1"; then + test_include="Pix.h" +else + test_include="$1" +fi + +AC_MSG_CHECKING([for libg++ ($test_include)]) + +AC_CACHE_VAL(kde_cv_libgpp_includes, +[ +kde_cv_libgpp_includes=no + + for ac_dir in \ + \ + /usr/include/g++ \ + /usr/include \ + /usr/unsupported/include \ + /opt/include \ + $extra_include \ + ; \ + do + if test -r "$ac_dir/$test_include"; then + kde_cv_libgpp_includes=$ac_dir + break + fi + done +]) + +AC_MSG_RESULT($kde_cv_libgpp_includes) +if test "$kde_cv_libgpp_includes" != "no"; then + all_includes="-I$kde_cv_libgpp_includes $all_includes $USER_INCLUDES" +fi +]) +]) + +AC_DEFUN([KDE_CHECK_LIBPTHREAD], +[ + dnl This code is here specifically to handle the + dnl various flavors of threading library on FreeBSD + dnl 4-, 5-, and 6-, and the (weird) rules around it. + dnl There may be an environment PTHREAD_LIBS that + dnl specifies what to use; otherwise, search for it. + dnl -pthread is special cased and unsets LIBPTHREAD + dnl below if found. + LIBPTHREAD="" + + if test -n "$PTHREAD_LIBS"; then + if test "x$PTHREAD_LIBS" = "x-pthread" ; then + LIBPTHREAD="PTHREAD" + else + PTHREAD_LIBS_save="$PTHREAD_LIBS" + PTHREAD_LIBS=`echo "$PTHREAD_LIBS_save" | sed -e 's,^-l,,g'` + AC_MSG_CHECKING([for pthread_create in $PTHREAD_LIBS]) + KDE_CHECK_LIB($PTHREAD_LIBS, pthread_create, [ + LIBPTHREAD="$PTHREAD_LIBS_save"]) + PTHREAD_LIBS="$PTHREAD_LIBS_save" + fi + fi + + dnl Is this test really needed, in the face of the Tru64 test below? + if test -z "$LIBPTHREAD"; then + AC_CHECK_LIB(pthread, pthread_create, [LIBPTHREAD="-lpthread"]) + fi + + dnl This is a special Tru64 check, see BR 76171 issue #18. + if test -z "$LIBPTHREAD" ; then + AC_MSG_CHECKING([for pthread_create in -lpthread]) + kde_safe_libs=$LIBS + LIBS="$LIBS -lpthread" + AC_TRY_LINK([#include ],[(void)pthread_create(0,0,0,0);],[ + AC_MSG_RESULT(yes) + LIBPTHREAD="-lpthread"],[ + AC_MSG_RESULT(no)]) + LIBS=$kde_safe_libs + fi + + dnl Un-special-case for FreeBSD. + if test "x$LIBPTHREAD" = "xPTHREAD" ; then + LIBPTHREAD="" + fi + + AC_SUBST(LIBPTHREAD) +]) + +AC_DEFUN([KDE_CHECK_PTHREAD_OPTION], +[ + USE_THREADS="" + if test -z "$LIBPTHREAD"; then + KDE_CHECK_COMPILER_FLAG(pthread, [USE_THREADS="-D_THREAD_SAFE -pthread"]) + fi + + AH_VERBATIM(__svr_define, [ +#if defined(__SVR4) && !defined(__svr4__) +#define __svr4__ 1 +#endif +]) + case $host_os in + solaris*) + KDE_CHECK_COMPILER_FLAG(mt, [USE_THREADS="-mt"]) + CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4" + ;; + freebsd*) + CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE $PTHREAD_CFLAGS" + ;; + aix*) + CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" + LIBPTHREAD="$LIBPTHREAD -lc_r" + ;; + linux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" + if test "$CXX" = "KCC"; then + CXXFLAGS="$CXXFLAGS --thread_safe" + NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS --thread_safe" + fi + ;; + *) + ;; + esac + AC_SUBST(USE_THREADS) + AC_SUBST(LIBPTHREAD) +]) + +AC_DEFUN([KDE_CHECK_THREADING], +[ + AC_REQUIRE([KDE_CHECK_LIBPTHREAD]) + AC_REQUIRE([KDE_CHECK_PTHREAD_OPTION]) + dnl default is yes if libpthread is found and no if no libpthread is available + if test -z "$LIBPTHREAD"; then + if test -z "$USE_THREADS"; then + kde_check_threading_default=no + else + kde_check_threading_default=yes + fi + else + kde_check_threading_default=yes + fi + AC_ARG_ENABLE(threading,AC_HELP_STRING([--disable-threading],[disables threading even if libpthread found]), + kde_use_threading=$enableval, kde_use_threading=$kde_check_threading_default) + if test "x$kde_use_threading" = "xyes"; then + AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have a working libpthread (will enable threaded code)]) + fi +]) + +AC_DEFUN([KDE_TRY_LINK_PYTHON], +[ +if test "$kde_python_link_found" = no; then + +if test "$1" = normal; then + AC_MSG_CHECKING(if a Python application links) +else + AC_MSG_CHECKING(if Python depends on $2) +fi + +AC_CACHE_VAL(kde_cv_try_link_python_$1, +[ +kde_save_cflags="$CFLAGS" +CFLAGS="$CFLAGS $PYTHONINC" +kde_save_libs="$LIBS" +LIBS="$LIBS $LIBPYTHON $2 $LIBDL $LIBSOCKET" +kde_save_ldflags="$LDFLAGS" +LDFLAGS="$LDFLAGS $PYTHONLIB" + +AC_TRY_LINK( +[ +#include +],[ + PySys_SetArgv(1, 0); +], + [kde_cv_try_link_python_$1=yes], + [kde_cv_try_link_python_$1=no] +) +CFLAGS="$kde_save_cflags" +LIBS="$kde_save_libs" +LDFLAGS="$kde_save_ldflags" +]) + +if test "$kde_cv_try_link_python_$1" = "yes"; then + AC_MSG_RESULT(yes) + kde_python_link_found=yes + if test ! "$1" = normal; then + LIBPYTHON="$LIBPYTHON $2" + fi + $3 +else + AC_MSG_RESULT(no) + $4 +fi + +fi + +]) + +AC_DEFUN([KDE_CHECK_PYTHON_DIR], +[ +AC_MSG_CHECKING([for Python directory]) + +AC_CACHE_VAL(kde_cv_pythondir, +[ + if test -z "$PYTHONDIR"; then + kde_cv_pythondir=/usr/local + else + kde_cv_pythondir="$PYTHONDIR" + fi +]) + +AC_ARG_WITH(pythondir, +AC_HELP_STRING([--with-pythondir=pythondir],[use python installed in pythondir]), +[ + ac_python_dir=$withval +], ac_python_dir=$kde_cv_pythondir +) + +AC_MSG_RESULT($ac_python_dir) +]) + +AC_DEFUN([KDE_CHECK_PYTHON_INTERN], +[ +AC_REQUIRE([KDE_CHECK_LIBDL]) +AC_REQUIRE([KDE_CHECK_LIBPTHREAD]) +AC_REQUIRE([KDE_CHECK_PYTHON_DIR]) + +if test -z "$1"; then + version="1.5" +else + version="$1" +fi + +AC_MSG_CHECKING([for Python$version]) + +python_incdirs="$ac_python_dir/include /usr/include /usr/local/include/ $kde_extra_includes" +AC_FIND_FILE(Python.h, $python_incdirs, python_incdir) +if test ! -r $python_incdir/Python.h; then + AC_FIND_FILE(python$version/Python.h, $python_incdirs, python_incdir) + python_incdir=$python_incdir/python$version + if test ! -r $python_incdir/Python.h; then + python_incdir=no + fi +fi + +PYTHONINC=-I$python_incdir + +python_libdirs="$ac_python_dir/lib$kdelibsuff /usr/lib$kdelibsuff /usr/local /usr/lib$kdelibsuff $kde_extra_libs" +AC_FIND_FILE(libpython$version.so, $python_libdirs, python_libdir) +if test ! -r $python_libdir/libpython$version.so; then + AC_FIND_FILE(libpython$version.a, $python_libdirs, python_libdir) + if test ! -r $python_libdir/libpython$version.a; then + AC_FIND_FILE(python$version/config/libpython$version.a, $python_libdirs, python_libdir) + python_libdir=$python_libdir/python$version/config + if test ! -r $python_libdir/libpython$version.a; then + python_libdir=no + fi + fi +fi + +PYTHONLIB=-L$python_libdir +kde_orig_LIBPYTHON=$LIBPYTHON +if test -z "$LIBPYTHON"; then + LIBPYTHON=-lpython$version +fi + +AC_FIND_FILE(python$version/copy.py, $python_libdirs, python_moddir) +python_moddir=$python_moddir/python$version +if test ! -r $python_moddir/copy.py; then + python_moddir=no +fi + +PYTHONMODDIR=$python_moddir + +AC_MSG_RESULT(header $python_incdir library $python_libdir modules $python_moddir) + +if test x$python_incdir = xno || test x$python_libdir = xno || test x$python_moddir = xno; then + LIBPYTHON=$kde_orig_LIBPYTHON + test "x$PYTHONLIB" = "x-Lno" && PYTHONLIB="" + test "x$PYTHONINC" = "x-Ino" && PYTHONINC="" + $2 +else + dnl Note: this test is very weak + kde_python_link_found=no + KDE_TRY_LINK_PYTHON(normal) + KDE_TRY_LINK_PYTHON(m, -lm) + KDE_TRY_LINK_PYTHON(pthread, $LIBPTHREAD) + KDE_TRY_LINK_PYTHON(tcl, -ltcl) + KDE_TRY_LINK_PYTHON(db2, -ldb2) + KDE_TRY_LINK_PYTHON(m_and_thread, [$LIBPTHREAD -lm]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_util, [$LIBPTHREAD -lm -lutil]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_db3, [$LIBPTHREAD -lm -ldb-3 -lutil]) + KDE_TRY_LINK_PYTHON(pthread_and_db3, [$LIBPTHREAD -ldb-3]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_db, [$LIBPTHREAD -lm -ldb -ltermcap -lutil]) + KDE_TRY_LINK_PYTHON(pthread_and_dl, [$LIBPTHREAD $LIBDL -lutil -lreadline -lncurses -lm]) + KDE_TRY_LINK_PYTHON(pthread_and_panel_curses, [$LIBPTHREAD $LIBDL -lm -lpanel -lcurses]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_db_special, [$LIBPTHREAD -lm -ldb -lutil], [], + [AC_MSG_WARN([it seems, Python depends on another library. + Please set LIBPYTHON to '-lpython$version -lotherlib' before calling configure to fix this + and contact the authors to let them know about this problem]) + ]) + + LIBPYTHON="$LIBPYTHON $LIBDL $LIBSOCKET" + AC_SUBST(PYTHONINC) + AC_SUBST(PYTHONLIB) + AC_SUBST(LIBPYTHON) + AC_SUBST(PYTHONMODDIR) + AC_DEFINE(HAVE_PYTHON, 1, [Define if you have the development files for python]) +fi + +]) + + +AC_DEFUN([KDE_CHECK_PYTHON], +[ + KDE_CHECK_PYTHON_INTERN("2.4", + [KDE_CHECK_PYTHON_INTERN("2.3", + [KDE_CHECK_PYTHON_INTERN("2.2", + [KDE_CHECK_PYTHON_INTERN("2.1", + [KDE_CHECK_PYTHON_INTERN("2.0", + [KDE_CHECK_PYTHON_INTERN($1, $2) ]) + ]) + ]) + ]) + ]) +]) + +AC_DEFUN([KDE_CHECK_STL], +[ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="`echo $CXXFLAGS | sed s/-fno-exceptions//`" + + AC_MSG_CHECKING([if C++ programs can be compiled]) + AC_CACHE_VAL(kde_cv_stl_works, + [ + AC_TRY_COMPILE([ +#include +using namespace std; +],[ + string astring="Hallo Welt."; + astring.erase(0, 6); // now astring is "Welt" + return 0; +], kde_cv_stl_works=yes, + kde_cv_stl_works=no) +]) + + AC_MSG_RESULT($kde_cv_stl_works) + + if test "$kde_cv_stl_works" = "yes"; then + # back compatible + AC_DEFINE_UNQUOTED(HAVE_SGI_STL, 1, [Define if you have a STL implementation by SGI]) + else + AC_MSG_ERROR([Your Installation isn't able to compile simple C++ programs. +Check config.log for details - if you're using a Linux distribution you might miss +a package named similar to libstdc++-dev.]) + fi + + CXXFLAGS="$ac_save_CXXFLAGS" + AC_LANG_RESTORE +]) + +AC_DEFUN([AC_FIND_QIMGIO], + [AC_REQUIRE([AC_FIND_JPEG]) +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_MSG_CHECKING([for qimgio]) +AC_CACHE_VAL(ac_cv_lib_qimgio, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_save_LIBS="$LIBS" +ac_save_CXXFLAGS="$CXXFLAGS" +LIBS="$all_libraries -lqimgio -lpng -lz $LIBJPEG $LIBQT" +CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes" +AC_TRY_RUN(dnl +[ +#include +#include +int main() { + QString t = "hallo"; + t.fill('t'); + qInitImageIO(); +} +], + ac_cv_lib_qimgio=yes, + ac_cv_lib_qimgio=no, + ac_cv_lib_qimgio=no) +LIBS="$ac_save_LIBS" +CXXFLAGS="$ac_save_CXXFLAGS" +AC_LANG_RESTORE +])dnl +if eval "test \"`echo $ac_cv_lib_qimgio`\" = yes"; then + LIBQIMGIO="-lqimgio -lpng -lz $LIBJPEG" + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED(HAVE_QIMGIO, 1, [Define if you have the Qt extension qimgio available]) + AC_SUBST(LIBQIMGIO) +else + AC_MSG_RESULT(not found) +fi +]) + +AC_DEFUN([AM_DISABLE_LIBRARIES], +[ + AC_PROVIDE([AM_ENABLE_STATIC]) + AC_PROVIDE([AM_ENABLE_SHARED]) + enable_static=no + enable_shared=yes +]) + + +AC_DEFUN([AC_CHECK_UTMP_FILE], +[ + AC_MSG_CHECKING([for utmp file]) + + AC_CACHE_VAL(kde_cv_utmp_file, + [ + kde_cv_utmp_file=no + + for ac_file in \ + \ + /var/run/utmp \ + /var/adm/utmp \ + /etc/utmp \ + ; \ + do + if test -r "$ac_file"; then + kde_cv_utmp_file=$ac_file + break + fi + done + ]) + + if test "$kde_cv_utmp_file" != "no"; then + AC_DEFINE_UNQUOTED(UTMP, "$kde_cv_utmp_file", [Define the file for utmp entries]) + $1 + AC_MSG_RESULT($kde_cv_utmp_file) + else + $2 + AC_MSG_RESULT([non found]) + fi +]) + + +AC_DEFUN([KDE_CREATE_SUBDIRSLIST], +[ + +DO_NOT_COMPILE="$DO_NOT_COMPILE CVS debian bsd-port admin" +TOPSUBDIRS="" + +if test ! -s $srcdir/subdirs; then + dnl Note: Makefile.common creates subdirs, so this is just a fallback + files=`cd $srcdir && ls -1` + dirs=`for i in $files; do if test -d $i; then echo $i; fi; done` + for i in $dirs; do + echo $i >> $srcdir/subdirs + done +fi + +ac_topsubdirs= +if test -s $srcdir/inst-apps; then + ac_topsubdirs="`cat $srcdir/inst-apps`" +elif test -s $srcdir/subdirs; then + ac_topsubdirs="`cat $srcdir/subdirs`" +fi + +for i in $ac_topsubdirs; do + AC_MSG_CHECKING([if $i should be compiled]) + if test -d $srcdir/$i; then + install_it="yes" + for j in $DO_NOT_COMPILE; do + if test $i = $j; then + install_it="no" + fi + done + else + install_it="no" + fi + AC_MSG_RESULT($install_it) + vari=`echo $i | sed -e 's,[[-+.@]],_,g'` + if test $install_it = "yes"; then + TOPSUBDIRS="$TOPSUBDIRS $i" + eval "$vari""_SUBDIR_included=yes" + else + eval "$vari""_SUBDIR_included=no" + fi +done + +AC_SUBST(TOPSUBDIRS) +]) + +AC_DEFUN([KDE_CHECK_NAMESPACES], +[ +AC_MSG_CHECKING(whether C++ compiler supports namespaces) +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +AC_TRY_COMPILE([ +], +[ +namespace Foo { + extern int i; + namespace Bar { + extern int i; + } +} + +int Foo::i = 0; +int Foo::Bar::i = 1; +],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_NAMESPACES) +], [ +AC_MSG_RESULT(no) +]) +AC_LANG_RESTORE +]) + +dnl ------------------------------------------------------------------------ +dnl Check for S_ISSOCK macro. Doesn't exist on Unix SCO. faure@kde.org +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_CHECK_S_ISSOCK], +[ +AC_MSG_CHECKING(for S_ISSOCK) +AC_CACHE_VAL(ac_cv_have_s_issock, +[ +AC_TRY_LINK( +[ +#include +], +[ +struct stat buff; +int b = S_ISSOCK( buff.st_mode ); +], +ac_cv_have_s_issock=yes, +ac_cv_have_s_issock=no) +]) +AC_MSG_RESULT($ac_cv_have_s_issock) +if test "$ac_cv_have_s_issock" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_S_ISSOCK, 1, [Define if sys/stat.h declares S_ISSOCK.]) +fi + +AH_VERBATIM(_ISSOCK, +[ +#ifndef HAVE_S_ISSOCK +#define HAVE_S_ISSOCK +#define S_ISSOCK(mode) (1==0) +#endif +]) + +]) + +dnl ------------------------------------------------------------------------ +dnl Check for MAXPATHLEN macro, defines KDEMAXPATHLEN. faure@kde.org +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_CHECK_KDEMAXPATHLEN], +[ +AC_MSG_CHECKING(for MAXPATHLEN) +AC_CACHE_VAL(ac_cv_maxpathlen, +[ +cat > conftest.$ac_ext < +#endif +#include +#include +#ifndef MAXPATHLEN +#define MAXPATHLEN 1024 +#endif + +KDE_HELLO MAXPATHLEN + +EOF + +ac_try="$ac_cpp conftest.$ac_ext 2>/dev/null | grep '^KDE_HELLO' >conftest.out" + +if AC_TRY_EVAL(ac_try) && test -s conftest.out; then + ac_cv_maxpathlen=`sed 's#KDE_HELLO ##' conftest.out` +else + ac_cv_maxpathlen=1024 +fi + +rm conftest.* + +]) +AC_MSG_RESULT($ac_cv_maxpathlen) +AC_DEFINE_UNQUOTED(KDEMAXPATHLEN,$ac_cv_maxpathlen, [Define a safe value for MAXPATHLEN] ) +]) + +AC_DEFUN([KDE_CHECK_HEADER], +[ + kde_safe_cppflags=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $all_includes" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_CHECK_HEADER([$1], [$2], [$3], [$4]) + AC_LANG_RESTORE + CPPFLAGS=$kde_safe_cppflags +]) + +AC_DEFUN([KDE_CHECK_HEADERS], +[ + AH_CHECK_HEADERS([$1]) + AC_LANG_SAVE + kde_safe_cppflags=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $all_includes" + AC_LANG_CPLUSPLUS + AC_CHECK_HEADERS([$1], [$2], [$3], [$4]) + CPPFLAGS=$kde_safe_cppflags + AC_LANG_RESTORE +]) + +AC_DEFUN([KDE_FAST_CONFIGURE], +[ + dnl makes configure fast (needs perl) + AC_ARG_ENABLE(fast-perl, AC_HELP_STRING([--disable-fast-perl],[disable fast Makefile generation (needs perl)]), + with_fast_perl=$enableval, with_fast_perl=yes) +]) + +AC_DEFUN([KDE_CONF_FILES], +[ + val= + if test -f $srcdir/configure.files ; then + val=`sed -e 's%^%\$(top_srcdir)/%' $srcdir/configure.files` + fi + CONF_FILES= + if test -n "$val" ; then + for i in $val ; do + CONF_FILES="$CONF_FILES $i" + done + fi + AC_SUBST(CONF_FILES) +])dnl + +dnl This sets the prefix, for arts and kdelibs +dnl Do NOT use in any other module. +dnl It only looks at --prefix, KDEDIR and falls back to /usr/local/kde +AC_DEFUN([KDE_SET_PREFIX_CORE], +[ + unset CDPATH + dnl make $KDEDIR the default for the installation + AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde}) + + if test "x$prefix" = "xNONE"; then + prefix=$ac_default_prefix + ac_configure_args="$ac_configure_args --prefix=$prefix" + fi + # And delete superfluous '/' to make compares easier + prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + + kde_libs_prefix='$(prefix)' + kde_libs_htmldir='$(kde_htmldir)' + AC_SUBST(kde_libs_prefix) + AC_SUBST(kde_libs_htmldir) + KDE_FAST_CONFIGURE + KDE_CONF_FILES +]) + + +AC_DEFUN([KDE_SET_PREFIX], +[ + unset CDPATH + dnl We can't give real code to that macro, only a value. + dnl It only matters for --help, since we set the prefix in this function anyway. + AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix}) + + KDE_SET_DEFAULT_BINDIRS + if test "x$prefix" = "xNONE"; then + dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it + KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) + else + dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH + kde_save_PATH="$PATH" + PATH="$exec_prefix/bin:$prefix/bin:$PATH" + KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) + PATH="$kde_save_PATH" + fi + + kde_libs_prefix=`$KDECONFIG --prefix` + if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then + AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs. + This means it has been moved since you installed it. + This won't work. Please recompile kdelibs for the new prefix. + ]) + fi + kde_libs_htmldir=`$KDECONFIG --install html --expandvars` + kde_libs_suffix=`$KDECONFIG --libsuffix` + + AC_MSG_CHECKING([where to install]) + if test "x$prefix" = "xNONE"; then + prefix=$kde_libs_prefix + AC_MSG_RESULT([$prefix (as returned by kde-config)]) + else + dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different + given_prefix=$prefix + AC_MSG_RESULT([$prefix (as requested)]) + fi + + # And delete superfluous '/' to make compares easier + prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + + AC_SUBST(KDECONFIG) + AC_SUBST(kde_libs_prefix) + AC_SUBST(kde_libs_htmldir) + + KDE_FAST_CONFIGURE + KDE_CONF_FILES +]) + +pushdef([AC_PROG_INSTALL], +[ + dnl our own version, testing for a -p flag + popdef([AC_PROG_INSTALL]) + dnl as AC_PROG_INSTALL works as it works we first have + dnl to save if the user didn't specify INSTALL, as the + dnl autoconf one overwrites INSTALL and we have no chance to find + dnl out afterwards + test -n "$INSTALL" && kde_save_INSTALL_given=$INSTALL + test -n "$INSTALL_PROGRAM" && kde_save_INSTALL_PROGRAM_given=$INSTALL_PROGRAM + test -n "$INSTALL_SCRIPT" && kde_save_INSTALL_SCRIPT_given=$INSTALL_SCRIPT + AC_PROG_INSTALL + + if test -z "$kde_save_INSTALL_given" ; then + # OK, user hasn't given any INSTALL, autoconf found one for us + # now we test, if it supports the -p flag + AC_MSG_CHECKING(for -p flag to install) + rm -f confinst.$$.* > /dev/null 2>&1 + echo "Testtest" > confinst.$$.orig + ac_res=no + if ${INSTALL} -p confinst.$$.orig confinst.$$.new > /dev/null 2>&1 ; then + if test -f confinst.$$.new ; then + # OK, -p seems to do no harm to install + INSTALL="${INSTALL} -p" + ac_res=yes + fi + fi + rm -f confinst.$$.* + AC_MSG_RESULT($ac_res) + fi + dnl the following tries to resolve some signs and wonders coming up + dnl with different autoconf/automake versions + dnl e.g.: + dnl *automake 1.4 install-strip sets A_M_INSTALL_PROGRAM_FLAGS to -s + dnl and has INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(A_M_INSTALL_PROGRAM_FLAGS) + dnl it header-vars.am, so there the actual INSTALL_PROGRAM gets the -s + dnl *automake 1.4a (and above) use INSTALL_STRIP_FLAG and only has + dnl INSTALL_PROGRAM = @INSTALL_PROGRAM@ there, but changes the + dnl install-@DIR@PROGRAMS targets to explicitly use that flag + dnl *autoconf 2.13 is dumb, and thinks it can use INSTALL_PROGRAM as + dnl INSTALL_SCRIPT, which breaks with automake <= 1.4 + dnl *autoconf >2.13 (since 10.Apr 1999) has not that failure + dnl *sometimes KDE does not use the install-@DIR@PROGRAM targets from + dnl automake (due to broken Makefile.am or whatever) to install programs, + dnl and so does not see the -s flag in automake > 1.4 + dnl to clean up that mess we: + dnl +set INSTALL_PROGRAM to use INSTALL_STRIP_FLAG + dnl which cleans KDE's program with automake > 1.4; + dnl +set INSTALL_SCRIPT to only use INSTALL, to clean up autoconf's problems + dnl with automake<=1.4 + dnl note that dues to this sometimes two '-s' flags are used (if KDE + dnl properly uses install-@DIR@PROGRAMS, but I don't care + dnl + dnl And to all this comes, that I even can't write in comments variable + dnl names used by automake, because it is so stupid to think I wanted to + dnl _use_ them, therefor I have written A_M_... instead of AM_ + dnl hmm, I wanted to say something ... ahh yes: Arghhh. + + if test -z "$kde_save_INSTALL_PROGRAM_given" ; then + INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)' + fi + if test -z "$kde_save_INSTALL_SCRIPT_given" ; then + INSTALL_SCRIPT='${INSTALL}' + fi +])dnl + +AC_DEFUN([KDE_LANG_CPLUSPLUS], +[AC_LANG_CPLUSPLUS +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC' +pushdef([AC_LANG_CPLUSPLUS], [popdef([AC_LANG_CPLUSPLUS]) KDE_LANG_CPLUSPLUS]) +]) + +pushdef([AC_LANG_CPLUSPLUS], +[popdef([AC_LANG_CPLUSPLUS]) +KDE_LANG_CPLUSPLUS +]) + +AC_DEFUN([KDE_CHECK_LONG_LONG], +[ +AC_MSG_CHECKING(for long long) +AC_CACHE_VAL(kde_cv_c_long_long, +[ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_LINK([], [ + long long foo = 0; + foo = foo+1; + ], + kde_cv_c_long_long=yes, kde_cv_c_long_long=no) + AC_LANG_RESTORE +]) +AC_MSG_RESULT($kde_cv_c_long_long) +if test "$kde_cv_c_long_long" = yes; then + AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have long long as datatype]) +fi +]) + +AC_DEFUN([KDE_CHECK_LIB], +[ + kde_save_LDFLAGS="$LDFLAGS" + dnl AC_CHECK_LIB modifies LIBS, so save it here + kde_save_LIBS="$LIBS" + LDFLAGS="$LDFLAGS $all_libraries" + case $host_os in + aix*) LDFLAGS="-brtl $LDFLAGS" + test "$GCC" = yes && LDFLAGS="-Wl,$LDFLAGS" + ;; + esac + AC_CHECK_LIB($1, $2, $3, $4, $5) + LDFLAGS="$kde_save_LDFLAGS" + LIBS="$kde_save_LIBS" +]) + +AC_DEFUN([KDE_JAVA_PREFIX], +[ + dir=`dirname "$1"` + base=`basename "$1"` + list=`ls -1 $dir 2> /dev/null` + for entry in $list; do + if test -d $dir/$entry/bin; then + case $entry in + $base) + javadirs="$javadirs $dir/$entry/bin" + ;; + esac + elif test -d $dir/$entry/jre/bin; then + case $entry in + $base) + javadirs="$javadirs $dir/$entry/jre/bin" + ;; + esac + fi + done +]) + +dnl KDE_CHEC_JAVA_DIR(onlyjre) +AC_DEFUN([KDE_CHECK_JAVA_DIR], +[ + +AC_ARG_WITH(java, +AC_HELP_STRING([--with-java=javadir],[use java installed in javadir, --without-java disables]), +[ ac_java_dir=$withval +], ac_java_dir="" +) + +AC_MSG_CHECKING([for Java]) + +dnl at this point ac_java_dir is either a dir, 'no' to disable, or '' to say look in $PATH +if test "x$ac_java_dir" = "xno"; then + kde_java_bindir=no + kde_java_includedir=no + kde_java_libjvmdir=no + kde_java_libgcjdir=no + kde_java_libhpidir=no +else + if test "x$ac_java_dir" = "x"; then + + + dnl No option set -> collect list of candidate paths + if test -n "$JAVA_HOME"; then + KDE_JAVA_PREFIX($JAVA_HOME) + fi + KDE_JAVA_PREFIX(/usr/j2se) + KDE_JAVA_PREFIX(/usr/lib/j2se) + KDE_JAVA_PREFIX(/usr/j*dk*) + KDE_JAVA_PREFIX(/usr/lib/j*dk*) + KDE_JAVA_PREFIX(/opt/j*sdk*) + KDE_JAVA_PREFIX(/usr/lib/java*) + KDE_JAVA_PREFIX(/usr/java*) + KDE_JAVA_PREFIX(/usr/java/j*dk*) + KDE_JAVA_PREFIX(/usr/java/j*re*) + KDE_JAVA_PREFIX(/usr/lib/SunJava2*) + KDE_JAVA_PREFIX(/usr/lib/SunJava*) + KDE_JAVA_PREFIX(/usr/lib/IBMJava2*) + KDE_JAVA_PREFIX(/usr/lib/IBMJava*) + KDE_JAVA_PREFIX(/opt/java*) + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + for dir in $PATH; do + if test -d "$dir"; then + javadirs="$javadirs $dir" + fi + done + IFS=$kde_save_IFS + jredirs= + + dnl Now javadirs contains a list of paths that exist, all ending with bin/ + for dir in $javadirs; do + dnl Check for the java executable + if test -x "$dir/java"; then + dnl And also check for a libjvm.so somewhere under there + dnl Since we have to go to the parent dir, /usr/bin is excluded, /usr is too big. + if test "$dir" != "/usr/bin"; then + libjvmdir=`find $dir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1` + if test ! -f $libjvmdir/libjvm.so; then continue; fi + jredirs="$jredirs $dir" + fi + fi + done + + dnl Now jredirs contains a reduced list, of paths where both java and ../**/libjvm.so was found + JAVAC= + JAVA= + kde_java_bindir=no + for dir in $jredirs; do + JAVA="$dir/java" + kde_java_bindir=$dir + if test -x "$dir/javac"; then + JAVAC="$dir/javac" + break + fi + done + + if test -n "$JAVAC"; then + dnl this substitution might not work - well, we test for jni.h below + kde_java_includedir=`echo $JAVAC | sed -e 's,bin/javac$,include/,'` + else + kde_java_includedir=no + fi + else + dnl config option set + kde_java_bindir=$ac_java_dir/bin + if test -x $ac_java_dir/bin/java && test ! -x $ac_java_dir/bin/javac; then + kde_java_includedir=no + else + kde_java_includedir=$ac_java_dir/include + fi + fi +fi + +dnl At this point kde_java_bindir and kde_java_includedir are either set or "no" +if test "x$kde_java_bindir" != "xno"; then + + dnl Look for libjvm.so + kde_java_libjvmdir=`find $kde_java_bindir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1` + dnl Look for libgcj.so + kde_java_libgcjdir=`find $kde_java_bindir/.. -name libgcj.so | sed 's,libgcj.so,,'|head -n 1` + dnl Look for libhpi.so and avoid green threads + kde_java_libhpidir=`find $kde_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,' | head -n 1` + + dnl Now check everything's fine under there + dnl the include dir is our flag for having the JDK + if test -d "$kde_java_includedir"; then + if test ! -x "$kde_java_bindir/javac"; then + AC_MSG_ERROR([javac not found under $kde_java_bindir - it seems you passed a wrong --with-java.]) + fi + if test ! -x "$kde_java_bindir/javah"; then + AC_MSG_ERROR([javah not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) + fi + if test ! -x "$kde_java_bindir/jar"; then + AC_MSG_ERROR([jar not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) + fi + if test ! -r "$kde_java_includedir/jni.h"; then + AC_MSG_ERROR([jni.h not found under $kde_java_includedir. Use --with-java or --without-java.]) + fi + + jni_includes="-I$kde_java_includedir" + dnl Strange thing, jni.h requires jni_md.h which is under genunix here.. + dnl and under linux here.. + + dnl not needed for gcj + + if test "x$kde_java_libgcjdir" = "x"; then + test -d "$kde_java_includedir/linux" && jni_includes="$jni_includes -I$kde_java_includedir/linux" + test -d "$kde_java_includedir/solaris" && jni_includes="$jni_includes -I$kde_java_includedir/solaris" + test -d "$kde_java_includedir/genunix" && jni_includes="$jni_includes -I$kde_java_includedir/genunix" + fi + + else + JAVAC= + jni_includes= + fi + + if test "x$kde_java_libgcjdir" = "x"; then + if test ! -r "$kde_java_libjvmdir/libjvm.so"; then + AC_MSG_ERROR([libjvm.so not found under $kde_java_libjvmdir. Use --without-java.]) + fi + else + if test ! -r "$kde_java_libgcjdir/libgcj.so"; then + AC_MSG_ERROR([libgcj.so not found under $kde_java_libgcjdir. Use --without-java.]) + fi + fi + + if test ! -x "$kde_java_bindir/java"; then + AC_MSG_ERROR([java not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) + fi + + dnl not needed for gcj compile + + if test "x$kde_java_libgcjdir" = "x"; then + if test ! -r "$kde_java_libhpidir/libhpi.so"; then + AC_MSG_ERROR([libhpi.so not found under $kde_java_libhpidir. Use --without-java.]) + fi + fi + + if test -n "$jni_includes"; then + dnl Check for JNI version + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_cxxflags_safe="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $all_includes $jni_includes" + + AC_TRY_COMPILE([ + #include + ], + [ + #ifndef JNI_VERSION_1_2 + Syntax Error + #endif + ],[ kde_jni_works=yes ], + [ kde_jni_works=no ]) + + if test $kde_jni_works = no; then + AC_MSG_ERROR([Incorrect version of $kde_java_includedir/jni.h. + You need to have Java Development Kit (JDK) version 1.2. + + Use --with-java to specify another location. + Use --without-java to configure without java support. + Or download a newer JDK and try again. + See e.g. http://java.sun.com/products/jdk/1.2 ]) + fi + + CXXFLAGS="$ac_cxxflags_safe" + AC_LANG_RESTORE + + dnl All tests ok, inform and subst the variables + + JAVAC=$kde_java_bindir/javac + JAVAH=$kde_java_bindir/javah + JAR=$kde_java_bindir/jar + AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) + if test "x$kde_java_libgcjdir" = "x"; then + JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_java_libhpidir -lhpi" + else + JVMLIBS="-L$kde_java_libgcjdir -lgcj" + fi + AC_MSG_RESULT([java JDK in $kde_java_bindir]) + + else + AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) + AC_MSG_RESULT([java JRE in $kde_java_bindir]) + fi +elif test -d "/Library/Java/Home"; then + kde_java_bindir="/Library/Java/Home/bin" + jni_includes="-I/Library/Java/Home/include" + + JAVAC=$kde_java_bindir/javac + JAVAH=$kde_java_bindir/javah + JAR=$kde_java_bindir/jar + JVMLIBS="-Xlinker -framework -Xlinker JavaVM" + + AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) + AC_MSG_RESULT([Apple Java Framework]) +else + AC_MSG_RESULT([none found]) +fi + +AC_SUBST(JAVAC) +AC_SUBST(JAVAH) +AC_SUBST(JAR) +AC_SUBST(JVMLIBS) +AC_SUBST(jni_includes) + +# for backward compat +kde_cv_java_includedir=$kde_java_includedir +kde_cv_java_bindir=$kde_java_bindir +]) + +dnl this is a redefinition of autoconf 2.5x's AC_FOREACH. +dnl When the argument list becomes big, as in KDE for AC_OUTPUT in +dnl big packages, m4_foreach is dog-slow. So use our own version of +dnl it. (matz@kde.org) +m4_define([mm_foreach], +[m4_pushdef([$1])_mm_foreach($@)m4_popdef([$1])]) +m4_define([mm_car], [[$1]]) +m4_define([mm_car2], [[$@]]) +m4_define([_mm_foreach], +[m4_if(m4_quote($2), [], [], + [m4_define([$1], mm_car($2))$3[]_mm_foreach([$1], + mm_car2(m4_shift($2)), + [$3])])]) +m4_define([AC_FOREACH], +[mm_foreach([$1], m4_split(m4_normalize([$2])), [$3])]) + +AC_DEFUN([KDE_NEED_FLEX], +[ +kde_libs_safe=$LIBS +LIBS="$LIBS $USER_LDFLAGS" +AM_PROG_LEX +LIBS=$kde_libs_safe +if test -z "$LEXLIB"; then + AC_MSG_ERROR([You need to have flex installed.]) +fi +AC_SUBST(LEXLIB) +]) + +AC_DEFUN([AC_PATH_QTOPIA], +[ + dnl TODO: use AC_CACHE_VAL + + if test -z "$1"; then + qtopia_minver_maj=1 + qtopia_minver_min=5 + qtopia_minver_pat=0 + else + qtopia_minver_maj=`echo "$1" | sed -e "s/^\(.*\)\..*\..*$/\1/"` + qtopia_minver_min=`echo "$1" | sed -e "s/^.*\.\(.*\)\..*$/\1/"` + qtopia_minver_pat=`echo "$1" | sed -e "s/^.*\..*\.\(.*\)$/\1/"` + fi + + qtopia_minver="$qtopia_minver_maj$qtopia_minver_min$qtopia_minver_pat" + qtopia_minverstr="$qtopia_minver_maj.$qtopia_minver_min.$qtopia_minver_pat" + + AC_REQUIRE([AC_PATH_QT]) + + AC_MSG_CHECKING([for Qtopia]) + + LIB_QTOPIA="-lqpe" + AC_SUBST(LIB_QTOPIA) + + kde_qtopia_dirs="$QPEDIR /opt/Qtopia" + + ac_qtopia_incdir=NO + + AC_ARG_WITH(qtopia-dir, + AC_HELP_STRING([--with-qtopia-dir=DIR],[where the root of Qtopia is installed]), + [ ac_qtopia_incdir="$withval"/include] ) + + qtopia_incdirs="" + for dir in $kde_qtopia_dirs; do + qtopia_incdirs="$qtopia_incdirs $dir/include" + done + + if test ! "$ac_qtopia_incdir" = "NO"; then + qtopia_incdirs="$ac_qtopia_incdir $qtopia_incdirs" + fi + + qtopia_incdir="" + AC_FIND_FILE(qpe/qpeapplication.h, $qtopia_incdirs, qtopia_incdir) + ac_qtopia_incdir="$qtopia_incdir" + + if test -z "$qtopia_incdir"; then + AC_MSG_ERROR([Cannot find Qtopia headers. Please check your installation.]) + fi + + qtopia_ver_maj=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION "\(.*\)\..*\..*".*,\1,p'`; + qtopia_ver_min=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\.\(.*\)\..*".*,\1,p'`; + qtopia_ver_pat=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\..*\.\(.*\)".*,\1,p'`; + + qtopia_ver="$qtopia_ver_maj$qtopia_ver_min$qtopia_ver_pat" + qtopia_verstr="$qtopia_ver_maj.$qtopia_ver_min.$qtopia_ver_pat" + if test "$qtopia_ver" -lt "$qtopia_minver"; then + AC_MSG_ERROR([found Qtopia version $qtopia_verstr but version $qtopia_minverstr +is required.]) + fi + + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + ac_cxxflags_safe="$CXXFLAGS" + ac_ldflags_safe="$LDFLAGS" + ac_libs_safe="$LIBS" + + CXXFLAGS="$CXXFLAGS -I$qtopia_incdir $all_includes" + LDFLAGS="$LDFLAGS $QT_LDFLAGS $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS" + LIBS="$LIBS $LIB_QTOPIA $LIBQT" + + cat > conftest.$ac_ext < +#include + +int main( int argc, char **argv ) +{ + QPEApplication app( argc, argv ); + return 0; +} +EOF + + if AC_TRY_EVAL(ac_link) && test -s conftest; then + rm -f conftest* + else + rm -f conftest* + AC_MSG_ERROR([Cannot link small Qtopia Application. For more details look at +the end of config.log]) + fi + + CXXFLAGS="$ac_cxxflags_safe" + LDFLAGS="$ac_ldflags_safe" + LIBS="$ac_libs_safe" + + AC_LANG_RESTORE + + QTOPIA_INCLUDES="-I$qtopia_incdir" + AC_SUBST(QTOPIA_INCLUDES) + + AC_MSG_RESULT([found version $qtopia_verstr with headers at $qtopia_incdir]) +]) + + +AC_DEFUN([KDE_INIT_DOXYGEN], +[ +AC_MSG_CHECKING([for Qt docs]) +kde_qtdir= +if test "${with_qt_dir+set}" = set; then + kde_qtdir="$with_qt_dir" +fi + +AC_FIND_FILE(qsql.html, [ $kde_qtdir/doc/html $QTDIR/doc/html /usr/share/doc/packages/qt3/html /usr/lib/qt/doc /usr/lib/qt3/doc /usr/lib/qt3/doc/html /usr/doc/qt3/html /usr/doc/qt3 /usr/share/doc/qt3-doc /usr/share/qt3/doc/html /usr/X11R6/share/doc/qt/html ], QTDOCDIR) +AC_MSG_RESULT($QTDOCDIR) + +AC_SUBST(QTDOCDIR) + +KDE_FIND_PATH(dot, DOT, [], []) +if test -n "$DOT"; then + KDE_HAVE_DOT="YES" +else + KDE_HAVE_DOT="NO" +fi +AC_SUBST(KDE_HAVE_DOT) +KDE_FIND_PATH(doxygen, DOXYGEN, [], []) +AC_SUBST(DOXYGEN) + +DOXYGEN_PROJECT_NAME="$1" +DOXYGEN_PROJECT_NUMBER="$2" +AC_SUBST(DOXYGEN_PROJECT_NAME) +AC_SUBST(DOXYGEN_PROJECT_NUMBER) + +KDE_HAS_DOXYGEN=no +if test -n "$DOXYGEN" && test -x "$DOXYGEN" && test -f $QTDOCDIR/qsql.html; then + KDE_HAS_DOXYGEN=yes +fi +AC_SUBST(KDE_HAS_DOXYGEN) + +]) + + +AC_DEFUN([AC_FIND_BZIP2], +[ +AC_MSG_CHECKING([for bzDecompress in libbz2]) +AC_CACHE_VAL(ac_cv_lib_bzip2, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +kde_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -lbz2 $LIBSOCKET" +kde_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK(dnl +[ +#define BZ_NO_STDIO +#include +], + [ bz_stream s; (void) bzDecompress(&s); ], + eval "ac_cv_lib_bzip2='-lbz2'", + eval "ac_cv_lib_bzip2=no") +LIBS="$kde_save_LIBS" +CXXFLAGS="$kde_save_CXXFLAGS" +AC_LANG_RESTORE +])dnl +AC_MSG_RESULT($ac_cv_lib_bzip2) + +if test ! "$ac_cv_lib_bzip2" = no; then + BZIP2DIR=bzip2 + + LIBBZ2="$ac_cv_lib_bzip2" + AC_SUBST(LIBBZ2) + +else + + cxx_shared_flag= + ld_shared_flag= + KDE_CHECK_COMPILER_FLAG(shared, [ + ld_shared_flag="-shared" + ]) + KDE_CHECK_COMPILER_FLAG(fPIC, [ + cxx_shared_flag="-fPIC" + ]) + + AC_MSG_CHECKING([for BZ2_bzDecompress in (shared) libbz2]) + AC_CACHE_VAL(ac_cv_lib_bzip2_prefix, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + kde_save_LIBS="$LIBS" + LIBS="$all_libraries $USER_LDFLAGS $ld_shared_flag -lbz2 $LIBSOCKET" + kde_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CFLAGS $cxx_shared_flag $all_includes $USER_INCLUDES" + + AC_TRY_LINK(dnl + [ + #define BZ_NO_STDIO + #include + ], + [ bz_stream s; (void) BZ2_bzDecompress(&s); ], + eval "ac_cv_lib_bzip2_prefix='-lbz2'", + eval "ac_cv_lib_bzip2_prefix=no") + LIBS="$kde_save_LIBS" + CXXFLAGS="$kde_save_CXXFLAGS" + AC_LANG_RESTORE + ])dnl + + AC_MSG_RESULT($ac_cv_lib_bzip2_prefix) + + if test ! "$ac_cv_lib_bzip2_prefix" = no; then + BZIP2DIR=bzip2 + + LIBBZ2="$ac_cv_lib_bzip2_prefix" + AC_SUBST(LIBBZ2) + + AC_DEFINE(NEED_BZ2_PREFIX, 1, [Define if the libbz2 functions need the BZ2_ prefix]) + dnl else, we just ignore this + fi + +fi +AM_CONDITIONAL(include_BZIP2, test -n "$BZIP2DIR") +]) + +dnl ------------------------------------------------------------------------ +dnl Try to find the SSL headers and libraries. +dnl $(SSL_LDFLAGS) will be -Lsslliblocation (if needed) +dnl and $(SSL_INCLUDES) will be -Isslhdrlocation (if needed) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([KDE_CHECK_SSL], +[ +LIBSSL="-lssl -lcrypto" +AC_REQUIRE([KDE_CHECK_LIB64]) + +ac_ssl_includes=NO ac_ssl_libraries=NO +ssl_libraries="" +ssl_includes="" +AC_ARG_WITH(ssl-dir, + AC_HELP_STRING([--with-ssl-dir=DIR],[where the root of OpenSSL is installed]), + [ ac_ssl_includes="$withval"/include + ac_ssl_libraries="$withval"/lib$kdelibsuff + ]) + +want_ssl=yes +AC_ARG_WITH(ssl, + AC_HELP_STRING([--without-ssl],[disable SSL checks]), + [want_ssl=$withval]) + +if test $want_ssl = yes; then + +AC_MSG_CHECKING(for OpenSSL) + +AC_CACHE_VAL(ac_cv_have_ssl, +[#try to guess OpenSSL locations + + ssl_incdirs="/usr/include /usr/local/include /usr/ssl/include /usr/local/ssl/include $prefix/include $kde_extra_includes" + ssl_incdirs="$ac_ssl_includes $ssl_incdirs" + AC_FIND_FILE(openssl/ssl.h, $ssl_incdirs, ssl_incdir) + ac_ssl_includes="$ssl_incdir" + + ssl_libdirs="/usr/lib$kdelibsuff /usr/local/lib$kdelibsuff /usr/ssl/lib$kdelibsuff /usr/local/ssl/lib$kdelibsuff $libdir $prefix/lib$kdelibsuff $exec_prefix/lib$kdelibsuff $kde_extra_libs" + if test ! "$ac_ssl_libraries" = "NO"; then + ssl_libdirs="$ac_ssl_libraries $ssl_libdirs" + fi + + test=NONE + ssl_libdir=NONE + for dir in $ssl_libdirs; do + try="ls -1 $dir/libssl*" + if test=`eval $try 2> /dev/null`; then ssl_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi + done + + ac_ssl_libraries="$ssl_libdir" + + ac_ldflags_safe="$LDFLAGS" + ac_libs_safe="$LIBS" + + LDFLAGS="$LDFLAGS -L$ssl_libdir $all_libraries" + LIBS="$LIBS $LIBSSL -lRSAglue -lrsaref" + + AC_TRY_LINK(,void RSAPrivateEncrypt(void);RSAPrivateEncrypt();, + ac_ssl_rsaref="yes" + , + ac_ssl_rsaref="no" + ) + + LDFLAGS="$ac_ldflags_safe" + LIBS="$ac_libs_safe" + + if test "$ac_ssl_includes" = NO || test "$ac_ssl_libraries" = NO; then + have_ssl=no + else + have_ssl=yes; + fi + + ]) + + eval "$ac_cv_have_ssl" + + AC_MSG_RESULT([libraries $ac_ssl_libraries, headers $ac_ssl_includes]) + + AC_MSG_CHECKING([whether OpenSSL uses rsaref]) + AC_MSG_RESULT($ac_ssl_rsaref) + + AC_MSG_CHECKING([for easter eggs]) + AC_MSG_RESULT([none found]) + +else + have_ssl=no +fi + +if test "$have_ssl" = yes; then + AC_MSG_CHECKING(for OpenSSL version) + dnl Check for SSL version + AC_CACHE_VAL(ac_cv_ssl_version, + [ + + cat >conftest.$ac_ext < +#include + int main() { + +#ifndef OPENSSL_VERSION_NUMBER + printf("ssl_version=\\"error\\"\n"); +#else + if (OPENSSL_VERSION_NUMBER < 0x00906000) + printf("ssl_version=\\"old\\"\n"); + else + printf("ssl_version=\\"ok\\"\n"); +#endif + return (0); + } +EOF + + ac_save_CPPFLAGS=$CPPFLAGS + if test "$ac_ssl_includes" != "/usr/include"; then + CPPFLAGS="$CPPFLAGS -I$ac_ssl_includes" + fi + + if AC_TRY_EVAL(ac_link); then + + if eval `./conftest 2>&5`; then + if test $ssl_version = error; then + AC_MSG_ERROR([$ssl_incdir/openssl/opensslv.h doesn't define OPENSSL_VERSION_NUMBER !]) + else + if test $ssl_version = old; then + AC_MSG_WARN([OpenSSL version too old. Upgrade to 0.9.6 at least, see http://www.openssl.org. SSL support disabled.]) + have_ssl=no + fi + fi + ac_cv_ssl_version="ssl_version=$ssl_version" + else + AC_MSG_ERROR([Your system couldn't run a small SSL test program. + Check config.log, and if you can't figure it out, send a mail to + David Faure , attaching your config.log]) + fi + + else + AC_MSG_ERROR([Your system couldn't link a small SSL test program. + Check config.log, and if you can't figure it out, send a mail to + David Faure , attaching your config.log]) + fi + CPPFLAGS=$ac_save_CPPFLAGS + + ]) + + eval "$ac_cv_ssl_version" + AC_MSG_RESULT($ssl_version) +fi + +if test "$have_ssl" != yes; then + LIBSSL=""; +else + AC_DEFINE(HAVE_SSL, 1, [If we are going to use OpenSSL]) + ac_cv_have_ssl="have_ssl=yes \ + ac_ssl_includes=$ac_ssl_includes ac_ssl_libraries=$ac_ssl_libraries ac_ssl_rsaref=$ac_ssl_rsaref" + + + ssl_libraries="$ac_ssl_libraries" + ssl_includes="$ac_ssl_includes" + + if test "$ac_ssl_rsaref" = yes; then + LIBSSL="-lssl -lcrypto -lRSAglue -lrsaref" + fi + + if test $ssl_version = "old"; then + AC_DEFINE(HAVE_OLD_SSL_API, 1, [Define if you have OpenSSL < 0.9.6]) + fi +fi + +SSL_INCLUDES= + +if test "$ssl_includes" = "/usr/include"; then + if test -f /usr/kerberos/include/krb5.h; then + SSL_INCLUDES="-I/usr/kerberos/include" + fi +elif test "$ssl_includes" != "/usr/local/include" && test -n "$ssl_includes"; then + SSL_INCLUDES="-I$ssl_includes" +fi + +if test "$ssl_libraries" = "/usr/lib" || test "$ssl_libraries" = "/usr/local/lib" || test -z "$ssl_libraries" || test "$ssl_libraries" = "NONE"; then + SSL_LDFLAGS="" +else + SSL_LDFLAGS="-L$ssl_libraries -R$ssl_libraries" +fi + +AC_SUBST(SSL_INCLUDES) +AC_SUBST(SSL_LDFLAGS) +AC_SUBST(LIBSSL) +]) + +AC_DEFUN([KDE_CHECK_STRLCPY], +[ + AC_REQUIRE([AC_CHECK_STRLCAT]) + AC_REQUIRE([AC_CHECK_STRLCPY]) + AC_CHECK_SIZEOF(size_t) + AC_CHECK_SIZEOF(unsigned long) + + AC_MSG_CHECKING([sizeof size_t == sizeof unsigned long]) + AC_TRY_COMPILE(,[ + #if SIZEOF_SIZE_T != SIZEOF_UNSIGNED_LONG + choke me + #endif + ],AC_MSG_RESULT([yes]),[ + AC_MSG_RESULT(no) + AC_MSG_ERROR([ + Apparently on your system our assumption sizeof size_t == sizeof unsigned long + does not apply. Please mail kde-devel@kde.org with a description of your system! + ]) + ]) +]) + +AC_DEFUN([KDE_CHECK_BINUTILS], +[ + AC_MSG_CHECKING([if ld supports unversioned version maps]) + + kde_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" + echo "{ local: extern \"C++\" { foo }; };" > conftest.map + AC_TRY_LINK([int foo;], +[ +#ifdef __INTEL_COMPILER +icc apparently does not support libtools version-info and version-script +at the same time. Dunno where the bug is, but until somebody figured out, +better disable the optional version scripts. +#endif + + foo = 42; +], kde_supports_versionmaps=yes, kde_supports_versionmaps=no) + LDFLAGS="$kde_save_LDFLAGS" + rm -f conftest.map + AM_CONDITIONAL(include_VERSION_SCRIPT, + [test "$kde_supports_versionmaps" = "yes" && test "$kde_use_debug_code" = "no"]) + + AC_MSG_RESULT($kde_supports_versionmaps) +]) + +AC_DEFUN([AM_PROG_OBJC],[ +AC_CHECK_PROGS(OBJC, gcc, gcc) +test -z "$OBJC" && AC_MSG_ERROR([no acceptable objective-c gcc found in \$PATH]) +if test "x${OBJCFLAGS-unset}" = xunset; then + OBJCFLAGS="-g -O2" +fi +AC_SUBST(OBJCFLAGS) +_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES(OBJC)]) +]) + +AC_DEFUN([KDE_CHECK_PERL], +[ + KDE_FIND_PATH(perl, PERL, [$bindir $exec_prefix/bin $prefix/bin], [ + AC_MSG_ERROR([No Perl found in your $PATH. +We need perl to generate some code.]) + ]) + AC_SUBST(PERL) +]) + +AC_DEFUN([KDE_CHECK_LARGEFILE], +[ +AC_SYS_LARGEFILE +if test "$ac_cv_sys_file_offset_bits" != no; then + CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits" +fi + +if test "x$ac_cv_sys_large_files" != "xno"; then + CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=1" +fi + +]) + +dnl A small extension to PKG_CHECK_MODULES (defined in pkg.m4.in) +dnl which allows to search for libs that get installed into the KDE prefix. +dnl +dnl Syntax: KDE_PKG_CHECK_MODULES(KSTUFF, libkexif >= 0.2 glib = 1.3.4, action-if, action-not) +dnl defines KSTUFF_LIBS, KSTUFF_CFLAGS, see pkg-config man page +dnl also defines KSTUFF_PKG_ERRORS on error +AC_DEFUN([KDE_PKG_CHECK_MODULES], [ + + PKG_CONFIG_PATH="$prefix/lib/pkgconfig:$PKG_CONFIG_PATH" + if test "$prefix" != "$kde_libs_prefix"; then + PKG_CONFIG_PATH="$kde_libs_prefix/lib/pkgconfig:$PKG_CONFIG_PATH" + fi + export PKG_CONFIG_PATH + PKG_CHECK_MODULES($1,$2,$3,$4) +]) + +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +## Copyright 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. + +# serial 47 AC_PROG_LIBTOOL + + +# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) +# ----------------------------------------------------------- +# If this macro is not defined by Autoconf, define it here. +m4_ifdef([AC_PROVIDE_IFELSE], + [], + [m4_define([AC_PROVIDE_IFELSE], + [m4_ifdef([AC_PROVIDE_$1], + [$2], [$3])])]) + + +# AC_PROG_LIBTOOL +# --------------- +AC_DEFUN([AC_PROG_LIBTOOL], +[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl +dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX +dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. + AC_PROVIDE_IFELSE([AC_PROG_CXX], + [AC_LIBTOOL_CXX], + [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX + ])]) +dnl And a similar setup for Fortran 77 support + AC_PROVIDE_IFELSE([AC_PROG_F77], + [AC_LIBTOOL_F77], + [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 +])]) + +dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. +dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run +dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. + AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [ifdef([AC_PROG_GCJ], + [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([A][M_PROG_GCJ], + [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([LT_AC_PROG_GCJ], + [define([LT_AC_PROG_GCJ], + defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) +])])# AC_PROG_LIBTOOL + + +# _AC_PROG_LIBTOOL +# ---------------- +AC_DEFUN([_AC_PROG_LIBTOOL], +[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl +AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl +AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl +AC_BEFORE([$0],[AC_LIBTOOL_GCJ])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 --silent' +AC_SUBST(LIBTOOL)dnl + +# Prevent multiple expansion +define([AC_PROG_LIBTOOL], []) +])# _AC_PROG_LIBTOOL + + +# AC_LIBTOOL_SETUP +# ---------------- +AC_DEFUN([AC_LIBTOOL_SETUP], +[AC_PREREQ(2.50)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([AC_PROG_LN_S])dnl +AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! +AC_REQUIRE([AC_OBJEXT])dnl +AC_REQUIRE([AC_EXEEXT])dnl +dnl + +AC_LIBTOOL_SYS_MAX_CMD_LEN +AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +AC_LIBTOOL_OBJDIR + +AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +_LT_AC_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +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' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_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" + +AC_CHECK_TOOL(AR, ar, false) +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_CHECK_TOOL(STRIP, strip, :) + +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 "$LTCC" && LTCC=$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 "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# 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 + +# 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_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +enable_win32_dll=yes, enable_win32_dll=no) + +AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +AC_ARG_WITH([pic], + [AC_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) +test -z "$pic_mode" && pic_mode=default + +# Use C for the default configuration in the libtool script +tagname= +AC_LIBTOOL_LANG_C_CONFIG +_LT_AC_TAGCONFIG +])# AC_LIBTOOL_SETUP + + +# _LT_AC_SYS_COMPILER +# ------------------- +AC_DEFUN([_LT_AC_SYS_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_AC_SYS_COMPILER + + +# _LT_AC_SYS_LIBPATH_AIX +# ---------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], +[AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_AC_SYS_LIBPATH_AIX + + +# _LT_AC_SHELL_INIT(ARG) +# ---------------------- +AC_DEFUN([_LT_AC_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_AC_SHELL_INIT + + +# _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], +[_LT_AC_SHELL_INIT([ +# 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. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(ECHO) +])])# _LT_AC_PROG_ECHO_BACKSLASH + + +# _LT_AC_LOCK +# ----------- +AC_DEFUN([_LT_AC_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case "`/usr/bin/file conftest.o`" in + *32-bit*) + LINUX_64_MODE="32" + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + LINUX_64_MODE="64" + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +AC_PROVIDE_IFELSE([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) + ;; + ]) +esac + +need_locks="$enable_libtool_lock" + +])# _LT_AC_LOCK + + +# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], +[AC_REQUIRE([LT_AC_PROG_SED]) +AC_CACHE_CHECK([$1], [$2], + [$2=no + ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s conftest.err; then + $2=yes + fi + fi + $rm conftest* +]) + +if test x"[$]$2" = xyes; then + ifelse([$5], , :, [$5]) +else + ifelse([$6], , :, [$6]) +fi +])# AC_LIBTOOL_COMPILER_OPTION + + +# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ------------------------------------------------------------ +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], +[AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; 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 + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + else + $2=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + ifelse([$4], , :, [$4]) +else + ifelse([$5], , :, [$5]) +fi +])# AC_LIBTOOL_LINKER_OPTION + + +# AC_LIBTOOL_SYS_MAX_CMD_LEN +# -------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], +[# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + testring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + *) + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \ + = "XX$testring") >/dev/null 2>&1 && + new_result=`expr "X$testring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + testring=$testring$testring + done + testring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +])# AC_LIBTOOL_SYS_MAX_CMD_LEN + + +# _LT_AC_CHECK_DLFCN +# -------------------- +AC_DEFUN([_LT_AC_CHECK_DLFCN], +[AC_CHECK_HEADERS(dlfcn.h)dnl +])# _LT_AC_CHECK_DLFCN + + +# _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], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#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], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-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" + 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_LIBTOOL_PROG_CC_C_O([TAGNAME]) +# --------------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler +AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + # 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 . + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s out/conftest.err; then + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . + $rm conftest* out/* + rmdir out + cd .. + rmdir conftest + $rm conftest* +]) +])# AC_LIBTOOL_PROG_CC_C_O + + +# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) +# ----------------------------------------- +# Check to see if we can do hard links to lock some files if needed +AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], +[AC_REQUIRE([_LT_AC_LOCK])dnl + +hard_links="nottested" +if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS + + +# AC_LIBTOOL_OBJDIR +# ----------------- +AC_DEFUN([AC_LIBTOOL_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +])# AC_LIBTOOL_OBJDIR + + +# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) +# ---------------------------------------------- +# Check hardcoding attributes. +AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_AC_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ + test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \ + test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then + + # We can hardcode non-existant directories. + if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_AC_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_AC_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_AC_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = 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 +])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH + + +# AC_LIBTOOL_SYS_LIB_STRIP +# ------------------------ +AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], +[striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) +fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +])# AC_LIBTOOL_SYS_LIB_STRIP + + +# AC_LIBTOOL_SYS_DYNAMIC_LINKER +# ----------------------------- +# PORTME Fill in your ld.so characteristics +AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], +[AC_MSG_CHECKING([dynamic linker characteristics]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +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}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + 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}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi4*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext='$(test .$module = .yes && echo .so || echo .dylib)' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd*-gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +freebsd*) + objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + *) # from 3.2 on + 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}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case "$host_cpu" in + ia64*) + shrext='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + libsuff= + if test "x$LINUX_64_MODE" = x64; then + # Some platforms are per default 64-bit, so there's no /lib64 + if test -d /lib64; then + libsuff=64 + fi + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}" + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +sco3.2v5*) + version_type=osf + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + 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 + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no +])# AC_LIBTOOL_SYS_DYNAMIC_LINKER + + +# _LT_AC_TAGCONFIG +# ---------------- +AC_DEFUN([_LT_AC_TAGCONFIG], +[AC_ARG_WITH([tags], + [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], + [include additional configurations @<:@automatic@:>@])], + [tagnames="$withval"]) + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + AC_MSG_WARN([output file `$ofile' does not exist]) + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) + else + AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) + fi + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in + "") ;; + *) AC_MSG_ERROR([invalid tag name: $tagname]) + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + AC_MSG_ERROR([tag name \"$tagname\" already exists]) + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && test "X$CXX" != "Xno"; then + AC_LIBTOOL_LANG_CXX_CONFIG + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + AC_LIBTOOL_LANG_F77_CONFIG + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + AC_LIBTOOL_LANG_GCJ_CONFIG + else + tagname="" + fi + ;; + + RC) + AC_LIBTOOL_LANG_RC_CONFIG + ;; + + *) + AC_MSG_ERROR([Unsupported tag name: $tagname]) + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + AC_MSG_ERROR([unable to update list of available tagged configurations.]) + fi +fi +])# _LT_AC_TAGCONFIG + + +# AC_LIBTOOL_DLOPEN +# ----------------- +# enable checks for dlopen support +AC_DEFUN([AC_LIBTOOL_DLOPEN], + [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_DLOPEN + + +# 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_LIBTOOL_WIN32_DLL + + +# AC_ENABLE_SHARED([DEFAULT]) +# --------------------------- +# implement the --enable-shared flag +# 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], + [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]AC_ENABLE_SHARED_DEFAULT) +])# AC_ENABLE_SHARED + + +# 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_DISABLE_SHARED + + +# AC_ENABLE_STATIC([DEFAULT]) +# --------------------------- +# implement the --enable-static flag +# 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], + [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]AC_ENABLE_STATIC_DEFAULT) +])# AC_ENABLE_STATIC + + +# 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_DISABLE_STATIC + + +# AC_ENABLE_FAST_INSTALL([DEFAULT]) +# --------------------------------- +# implement the --enable-fast-install flag +# 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], + [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) +])# AC_ENABLE_FAST_INSTALL + + +# 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_DISABLE_FAST_INSTALL + + +# AC_LIBTOOL_PICMODE([MODE]) +# -------------------------- +# implement the --with-pic flag +# 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_LIBTOOL_PICMODE + + +# AC_PROG_EGREP +# ------------- +# This is predefined starting with Autoconf 2.54, so this conditional +# definition can be removed once we require Autoconf 2.54 or later. +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], +[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], + [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]) + EGREP=$ac_cv_prog_egrep + AC_SUBST([EGREP]) +])]) + + +# AC_PATH_TOOL_PREFIX +# ------------------- +# find a file program which can recognise shared library +AC_DEFUN([AC_PATH_TOOL_PREFIX], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="ifelse([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&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="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +])# AC_PATH_TOOL_PREFIX + + +# AC_PATH_MAGIC +# ------------- +# find a file program which can recognise a shared library +AC_DEFUN([AC_PATH_MAGIC], +[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# AC_PATH_MAGIC + + +# AC_PROG_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([AC_PROG_LD], +[AC_ARG_WITH([gnu-ld], + [AC_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no]) +AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /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_file_magic_cmd=/usr/bin/file + case "$host_cpu" in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +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*) + case $host_cpu in + alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* ) + lt_cv_deplibs_check_method=pass_all ;; + # the debian people say, arm and glibc 2.3.1 works for them with pass_all + arm* ) + 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]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +nto-qnx*) + lt_cv_deplibs_check_method=unknown + ;; + +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 + ;; + +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 + ;; + +sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown +])# AC_DEPLIBS_CHECK_METHOD + + +# AC_PROG_NM +# ---------- +# find the pathname to a BSD-compatible name lister +AC_DEFUN([AC_PROG_NM], +[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + 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 + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + esac + fi + done + IFS="$lt_save_ifs" + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi]) +NM="$lt_cv_path_NM" +])# AC_PROG_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* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +])# AC_CHECK_LIBM + + +# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) +# ----------------------------------- +# 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 +# DIRECTORY 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_CONVENIENCE + + +# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) +# ----------------------------------- +# 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 +# DIRECTORY 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, lt_dlinit, + [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" +])# AC_LIBLTDL_INSTALLABLE + + +# AC_LIBTOOL_CXX +# -------------- +# enable support for C++ libraries +AC_DEFUN([AC_LIBTOOL_CXX], +[AC_REQUIRE([_LT_AC_LANG_CXX]) +])# AC_LIBTOOL_CXX + + +# _LT_AC_LANG_CXX +# --------------- +AC_DEFUN([_LT_AC_LANG_CXX], +[AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([AC_PROG_CXXCPP]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) +])# _LT_AC_LANG_CXX + + +# AC_LIBTOOL_F77 +# -------------- +# enable support for Fortran 77 libraries +AC_DEFUN([AC_LIBTOOL_F77], +[AC_REQUIRE([_LT_AC_LANG_F77]) +])# AC_LIBTOOL_F77 + + +# _LT_AC_LANG_F77 +# --------------- +AC_DEFUN([_LT_AC_LANG_F77], +[AC_REQUIRE([AC_PROG_F77]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) +])# _LT_AC_LANG_F77 + + +# AC_LIBTOOL_GCJ +# -------------- +# enable support for GCJ libraries +AC_DEFUN([AC_LIBTOOL_GCJ], +[AC_REQUIRE([_LT_AC_LANG_GCJ]) +])# AC_LIBTOOL_GCJ + + +# _LT_AC_LANG_GCJ +# --------------- +AC_DEFUN([_LT_AC_LANG_GCJ], +[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], + [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], + [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], + [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) +])# _LT_AC_LANG_GCJ + + +# AC_LIBTOOL_RC +# -------------- +# enable support for Windows resource files +AC_DEFUN([AC_LIBTOOL_RC], +[AC_REQUIRE([LT_AC_PROG_RC]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) +])# AC_LIBTOOL_RC + + +# AC_LIBTOOL_LANG_C_CONFIG +# ------------------------ +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) +AC_DEFUN([_LT_AC_LANG_C_CONFIG], +[lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}\n' + +_LT_AC_SYS_COMPILER + +# +# Check for any special shared library compilation flags. +# +_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)= +if test "$GCC" = no; then + case $host_os in + sco3.2v5*) + _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf' + ;; + esac +fi +if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then + AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries]) + if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ ]]" >/dev/null; then : + else + AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure]) + _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no + fi +fi + + +# +# Check to make sure the static flag actually works. +# +AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works], + _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), + $_LT_AC_TAGVAR(lt_prog_compiler_static, $1), + [], + [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF($1) + +# Report which librarie types wil actually be built +AC_MSG_CHECKING([if libtool supports shared libraries]) +AC_MSG_RESULT([$can_build_shared]) + +AC_MSG_CHECKING([whether to build shared libraries]) +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case "$host_os" in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + darwin* | rhapsody*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + case "$host_os" in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup' + ;; + esac + fi + ;; + esac + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + else + _LT_AC_TAGVAR(ld_shlibs, $1)=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]) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_C_CONFIG + + +# AC_LIBTOOL_LANG_CXX_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) +AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], +[AC_LANG_PUSH(C++) +AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([AC_PROG_CXXCPP]) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Dependencies to place before and after the object being linked: +_LT_AC_TAGVAR(predep_objects, $1)= +_LT_AC_TAGVAR(postdep_objects, $1)= +_LT_AC_TAGVAR(predeps, $1)= +_LT_AC_TAGVAR(postdeps, $1)= +_LT_AC_TAGVAR(compiler_lib_search_path, $1)= + +# Source file extension for C++ test sources. +ac_ext=cc + +# Object file extension for compiled C++ test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_LD=$LD +lt_save_GCC=$GCC +GCC=$GXX +lt_save_with_gnu_ld=$with_gnu_ld +lt_save_path_LD=$lt_cv_path_LD +if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx +else + unset lt_cv_prog_gnu_ld +fi +if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX +else + unset lt_cv_path_LD +fi +test -z "${LDCXX+set}" || LD=$LDCXX +CC=${CXX-"c++"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' +else + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + AC_PROG_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ + grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + +else + GXX=no + with_gnu_ld=no + wlarc= +fi + +# PORTME: fill in a description of your system's C++ link characteristics +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +_LT_AC_TAGVAR(ld_shlibs, $1)=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + 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 + # KDE requires run time linking. Make it the default. + aix_use_runtimelinking=yes + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='-qmkshrobj ${wl}-G' + else + shared_flag='-qmkshrobj' + fi + fi + fi + + # Let the compiler handle the export list. + _LT_AC_TAGVAR(always_export_symbols, $1)=no + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # -bexpall does not export symbols beginning with underscore (_) + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds it's shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=no + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + darwin* | rhapsody*) + if test "$GXX" = yes; then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + case "$host_os" in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup' + ;; + esac + fi + ;; + esac + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' + + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + dgux*) + case $cc_basename in + ec++) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + freebsd[12]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + freebsd-elf*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + freebsd*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + ;; + gnu*) + ;; + hpux9*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + case "$host_cpu" in + hppa*64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + *) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case "$host_cpu" in + hppa*64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + ia64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC) + case "$host_cpu" in + hppa*64*|ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case "$host_cpu" in + ia64*|hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + irix5* | irix6*) + case $cc_basename in + CC) + # SGI C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + linux*) + case $cc_basename in + KCC) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc) + # Intel C++ + with_gnu_ld=yes + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + cxx) + # Compaq C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + m88k*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + mvs*) + case $cc_basename in + cxx) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + osf3*) + case $cc_basename in + KCC) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + osf4* | osf5*) + case $cc_basename in + KCC) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' + ;; + RCC) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~ + $rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + sco*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + case $cc_basename in + CC) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + lcc) + # Lucid + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The C++ compiler is used as linker so we must use $wl + # flag to pass the commands to the underlying system + # linker. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + fi + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + fi + ;; + esac + ;; + sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + tandem*) + case $cc_basename in + NCC) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; +esac +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_AC_TAGVAR(GCC, $1)="$GXX" +_LT_AC_TAGVAR(LD, $1)="$LD" + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +AC_LIBTOOL_POSTDEP_PREDEP($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +with_gnu_ld=$lt_save_with_gnu_ld +lt_cv_path_LDCXX=$lt_cv_path_LD +lt_cv_path_LD=$lt_save_path_LD +lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld +lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +])# AC_LIBTOOL_LANG_CXX_CONFIG + +# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) +# ------------------------ +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" +ifelse([$1], [], +[#! $SHELL + +# `$echo "$cfgfile" | 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, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# 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 program 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 + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG], +[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) + +# 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=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) + +# 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 + +# A C compiler. +LTCC=$lt_LTCC + +# A language-specific compiler. +CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) + +# Is the compiler the GNU C compiler? +with_gcc=$_LT_AC_TAGVAR(GCC, $1) + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_[]_LT_AC_TAGVAR(LD, $1) + +# 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_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext='$shrext' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) + +# 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_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) + +# 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_[]_LT_AC_TAGVAR(old_archive_cmds, $1) +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_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) + +# Commands used to build and install a shared archive. +archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) +archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) +module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) + +# 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_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) + +# 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_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# 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=$_LT_AC_TAGVAR(hardcode_action, $1) + +# 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_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) + +# 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=$_LT_AC_TAGVAR(link_all_deplibs, $1) + +# 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="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" + +# Set to yes if exported symbols are required. +always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) + +# The commands to list exported symbols. +export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) + +# 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_[]_LT_AC_TAGVAR(exclude_expsyms, $1) + +# Symbols that must always be exported. +include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) + +ifelse([$1],[], +[# ### END LIBTOOL CONFIG], +[# ### END LIBTOOL TAG CONFIG: $tagname]) + +__EOF__ + +ifelse([$1],[], [ + case $host_os in + aix3*) + cat <<\EOF >> "$cfgfile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || \ + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +]) +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 +])# AC_LIBTOOL_CONFIG + + +# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl + +_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI + + +# 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 from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# 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_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (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 + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_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 $build_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. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGISTW]]' ;; +esac + +# 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 grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' 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_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#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/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -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 +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi +]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE + + +# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) +# --------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], +[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) + ifelse([$1],[CXX],[ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | os2* | pw32*) + # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68) + # Green Hills C++ Compiler + # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux*) + case $cc_basename in + KCC) + # KAI C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + icpc) + # Intel C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + cxx) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC) + # Rational C++ 2.4.1 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx) + # Digital/Compaq C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + sco*) + case $cc_basename in + CC) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + *) + ;; + esac + ;; + solaris*) + case $cc_basename in + CC) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC) + # Sun C++ 4.x + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc) + # Lucid + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC) + # NonStop-UX NCC 3.20 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + unixware*) + ;; + vxworks*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + newsos6) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + linux*) + case $CC in + icc* | ecc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + ccc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + sco3.2v5*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn' + ;; + + solaris*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sunos4*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + uts4*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then + AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], + _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), + [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +case "$host_os" in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" + ;; +esac +]) + + +# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) +# ------------------------------------ +# See if the linker supports building shared libraries. +AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], +[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +ifelse([$1],[CXX],[ + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + ;; + *) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +],[ + runpath_var= + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)= + _LT_AC_TAGVAR(archive_expsym_cmds, $1)= + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown + _LT_AC_TAGVAR(hardcode_automatic, $1)=no + _LT_AC_TAGVAR(module_cmds, $1)= + _LT_AC_TAGVAR(module_expsym_cmds, $1)= + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$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 + _LT_AC_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_AC_TAGVAR(exclude_expsyms, $1)="_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 + + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(ld_shlibs, $1)=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 + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=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't use + # them. + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=no + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris* | sysv5*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + _LT_AC_TAGVAR(ld_shlibs, $1)=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 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sunos4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$link_static_flag"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_AC_TAGVAR(hardcode_direct, $1)=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 + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + + # KDE requires run time linking. Make it the default. + aix_use_runtimelinking=yes + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='-qmkshrobj ${wl}-G' + else + shared_flag='-qmkshrobj' + fi + fi + fi + + # Let the compiler handle the export list. + _LT_AC_TAGVAR(always_export_symbols, $1)=no + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # -bexpall does not export symbols beginning with underscore (_) + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds it's shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + # see comment about different semantics on the GNU ld section + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + bsdi4*) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + 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. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=no + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $compiler_flags $libobjs `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + if test "$GXX" = yes ; then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + case "$host_os" in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup' + ;; + esac + fi + ;; + esac + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + dgux*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $compiler_flags $libobjs $deplibs' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10* | hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*|ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs' + ;; + esac + else + case "$host_cpu" in + hppa*64*|ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + *) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $compiler_flags $libobjs $deplibs$output_objdir/$libname.def' + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$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 + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${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' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$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' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $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 + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + sco3.2v5*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ;; + + solaris*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $compiler_flags $libobjs $deplibs' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4.2uw2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + hardcode_runpath_var=yes + runpath_var=LD_RUN_PATH + ;; + + sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text' + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + fi + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv5*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -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 + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + ;; + + uts4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +# +# Do we need to explicitly link libc? +# +case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_AC_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) + then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac +])# AC_LIBTOOL_PROG_LD_SHLIBS + + +# _LT_AC_FILE_LTDLL_C +# ------------------- +# Be careful that the start marker always follows a newline. +AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ +# /* 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 */ +])# _LT_AC_FILE_LTDLL_C + + +# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) +# --------------------------------- +AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) + + +# 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]) + +AC_DEFUN([LT_AC_PROG_GCJ], +[AC_CHECK_TOOL(GCJ, gcj, no) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS) +]) + +AC_DEFUN([LT_AC_PROG_RC], +[AC_CHECK_TOOL(RC, windres, no) +]) + +############################################################ +# 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_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && break + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_MSG_RESULT([$SED]) +]) +## -*- autoconf -*- +dnl This file was created by Joachim Ansorg +dnl It provides macord for the autoconf package to find the Sword library on your system. + +dnl ---------------------------------------------------------------------- +dnl Check wheter to use static linking +dnl first parameter is the required version +dnl second is whether to use static sword library +dnl ---------------------------------------------------------------------- +AC_DEFUN(AC_CHECK_SWORD, +[ +dnl AC_MSG_CHECKING([for a Sword installation]) + +dnl The option for the configure script +AC_ARG_WITH(sword-dir, +[ --with-sword-dir=DIR Path where Sword is being installed (default=/usr) ], +[ + ac_sword_dir=$withval +],ac_sword_dir=/usr +) + +AC_ARG_ENABLE(static-sword, +[ --enable-static-sword Link to the static Sword library], + ac_static_sword="YES", + [ ac_static_sword="$2" ] +) + +dnl try to find Sword library files +AC_MSG_CHECKING([for Sword library files]) +AC_REQUIRE([AC_FIND_ZLIB]) +ac_sword_library_dirs="$ac_sword_dir/lib $exec_prefix/lib $prefix/lib /usr/lib /usr/lib64 /usr/lib/sword /usr/local/lib /usr/local/lib/sword /usr/local/sword/lib" + +if test "x$ac_static_sword" = "xYES"; then + SEARCH_LIBS="libsword.a"; +else + SEARCH_LIBS="libsword.so libsword.so.3 libsword.so.4 libsword.a"; +fi + + +AC_CACHE_VAL(ac_cv_sword_libdir, AC_FIND_FILE($SEARCH_LIBS, $ac_sword_library_dirs, ac_cv_sword_libdir)) + +if test "x$ac_cv_sword_libdir" = "xNO"; then + AC_MSG_ERROR(SWORD library not found. Try to use configure with --with-sword-dir=/your/SWORD/path!); +fi + +if test "x$ac_static_sword" = "xYES"; then + LIB_SWORD="$ac_cv_sword_libdir/libsword.a"; +else + LIB_SWORD="-lsword"; +fi + +AC_SUBST(SWORD_LIBRARY_PATH) +AC_SUBST(LIB_SWORD) +all_libraries="$all_libraries -L$ac_cv_sword_libdir" + +if test "x$ac_static_sword" = "xYES"; then + MESSAGE="static library $ac_cv_sword_libdir/libsword.a"; +else + MESSAGE="$ac_cv_sword_libdir"; +fi +AC_MSG_RESULT([$MESSAGE]) + +dnl -- try to find Swords include files -- +AC_MSG_CHECKING([for Sword include files]) +ac_sword_include_dirs="$ac_sword_dir/include/sword $ac_sword_dir/include $exec_prefix/include $prefix/include /usr/include/sword /usr/include /usr/local/include/sword /usr/local/include /usr/local/sword/include /usr/local/sword/include/sword" + +AC_CACHE_VAL(ac_cv_sword_incdir, AC_FIND_FILE(swmgr.h, $ac_sword_include_dirs, ac_cv_sword_incdir)) + +if test "x$ac_cv_sword_incdir" = "xNO"; then + AC_MSG_ERROR([The Sword include file files were not found. +Please try to use configure with --with-sword-dir=/your/SWORD/path ! +]) +fi + +SWORD_INCLUDES="-I$ac_cv_sword_incdir" +AC_SUBST(SWORD_INCLUDES) +all_includes="$all_includes -I$ac_cv_sword_incdir" + +AC_MSG_RESULT([$ac_cv_sword_incdir]) + + + +dnl -- Sword version tests -- +dnl First test for installed Sword version +dnl Then check if it's recent enough + +AC_MSG_CHECKING([for installed Sword version]) + +AC_CACHE_VAL(ac_cv_installed_sword_version, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH +ac_LIBRARY_PATH="$LIBRARY_PATH" +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$" +LDFLAGS="$LDFLAGS -L$ac_cv_sword_libdir" +LIBS="$LIB_SWORD -lz" +LD_LIBRARY_PATH="$ac_cv_sword_libdir" +export LD_LIBRARY_PATH +LIBRARY_PATH= +export LIBRARY_PATH + +cat > conftest.$ac_ext < +#include + +#ifdef SWORD_NAMESPACE_START +using namespace sword; +#endif + +int main(int argc, char** argv) { + std::cout << SWVersion::currentVersion << std::endl; + return 0; +} +EOF + + +ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +if AC_TRY_EVAL(ac_link) && test -s conftest; then + if test -x conftest; then + eval ac_cv_installed_sword_version=`./conftest 2>&5` + fi +else + echo "configure: failed program was:" >&AC_FD_CC + AC_MSG_ERROR([Failed to compile the test program to check the Sword version! Please have a look at config.log! Report this to the BibleTime developers!]); + cat conftest.$ac_ext >&AC_FD_CC +fi + +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" +export LD_LIBRARY_PATH +LIBRARY_PATH="$ac_LIBRARY_PATH" +export LIBRARY_PATH +AC_LANG_RESTORE +]) +AC_MSG_RESULT([$ac_cv_installed_sword_version]) + + + + +dnl *** Now check if the installed version is recent enough +AC_MSG_CHECKING([whether your Sword installation is recent enough]) + +AC_CACHE_VAL(ac_cv_sword_recent_version, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH +ac_LIBRARY_PATH="$LIBRARY_PATH" +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$" +LDFLAGS="$LDFLAGS -L$ac_cv_sword_libdir" +LIBS="$LIB_SWORD -lz" +LD_LIBRARY_PATH="$ac_cv_sword_libdir" +export LD_LIBRARY_PATH +LIBRARY_PATH= +export LIBRARY_PATH + +cat > conftest.$ac_ext < +#include + +#ifdef SWORD_NAMESPACE_START +using namespace sword; +#endif + + +int main(int argc, char** argv) { + if (argc == 2) { //compare required with installed Sword version + const char* requiredVersion( argv[[1]] ); + if ( (SWVersion( requiredVersion ) < SWVersion::currentVersion) || (SWVersion( requiredVersion ) == SWVersion::currentVersion) ) { + std::cout << "ok"; + return -1; + } + else { + std::cout << "not-ok"; + return -2; //version not recent enough + } + } + return 0; +} +EOF + +ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +if AC_TRY_EVAL(ac_link) && test -s conftest; then + if test -x conftest; then + eval ac_cv_sword_recent_version=`./conftest $1 2>&5` + fi +else + echo "configure: failed program was:" >&AC_FD_CC + AC_MSG_ERROR([Failed to compile the test program to check the Sword version! Please have a look at config.log! Report this to the BibleTime developers!]); + cat conftest.$ac_ext >&AC_FD_CC +fi; + +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" +export LD_LIBRARY_PATH +LIBRARY_PATH="$ac_LIBRARY_PATH" +export LIBRARY_PATH +AC_LANG_RESTORE +]) + +if test "x$ac_cv_sword_recent_version" = "xok"; then + AC_MSG_RESULT([yes]); +elif test "x$ac_cv_sword_recent_version" = "xnot-ok"; then + AC_MSG_RESULT([no]); + AC_MSG_ERROR([Your Sword installation is not recent enought! Please upgrade to version $1! Get the Sword library at www.crosswire.org.]); +else + AC_MSG_ERROR([Invalid return code of the internal Sword version test program. Please submit a bugreport!]); +fi; + +]) +## -*- autoconf -*- + +dnl ------------------------------------------------------------------------------- +dnl Check wheter to use static linking, first parameter is the result (YES/NO) +dnl ------------------------------------------------------------------------------- +AC_DEFUN(AC_CHECK_STATIC_LINKING, +[ +$1="NO" + +AC_MSG_CHECKING(whether to use static linking) +AC_ARG_ENABLE(static-linking, + [ --enable-static-linking use static linking], + USE_STATIC_LINKING=$enableval, USE_STATIC_LINKING="no") + +if test "$USE_STATIC_LINKING" = "yes"; then + BT_LDFLAGS="-all-static -Wl,-Bstatic"; + AC_SUBST(BT_LDFLAGS) + CPPFLAGS="-DSTATIC_BUILD $CPPFLAGS"; + $1="YES"; +else + $1="NO"; +fi + +AC_MSG_RESULT($USE_STATIC_LINKING) +]) + +dnl ------------------------------------------------------------------------------- +dnl Checks the type of the distribution +dnl Possible names for the distributions are SuSE, RedHat, Mandrake +dnl ------------------------------------------------------------------------------- +AC_DEFUN(AC_CHECK_DISTRIBUTION, +[ +AC_MSG_CHECKING([for the used Linux distribution]) + +AC_ARG_WITH(distribution, +[ --with-distribution=TYPE The name of your *NIX distribution, e.g. SuSE [auto] ], +[ + ac_distribution=$withval +],ac_distribution=auto +) + +AC_ARG_WITH(distribution-version, +[ --with-distribution-version=VERSION Version of your *NIX distribution, e.g. 7.2 [auto] ], +[ + ac_distribution_version=$withval +],ac_distribution_version=auto +) + +AC_ARG_WITH(rpm-prefix, +[ --with-rpm-prefix=DIR The directory which should be used as PREFIX + in the RPM spec file [auto] ], +[ + ac_rpm_prefix=$withval +],ac_rpm_prefix=auto +) + +AC_ARG_WITH(rpm-group, +[ --with-rpm-group=DIR The group which will be used for the RPM system [auto] ], +[ + ac_rpm_group=$withval +],ac_rpm_group=auto +) + +if test "$ac_distribution" != "auto"; then + DISTRIBUTION=[$ac_distribution] +fi + +if test "$ac_distribution" = "auto"; then +AC_CACHE_VAL(DISTRIBUTION, [ +if test -f "/etc/SuSE-release"; then + DISTRIBUTION="SuSE" +elif test -f "/etc/mandrake-release"; then + DISTRIBUTION="Mandrake" +elif test -f "/etc/redhat-release"; then + DISTRIBUTION="Red Hat" +elif test -f "/etc/debian_version"; then + DISTRIBUTION="Debian" +fi +]) +fi + +if test "$ac_distribution_version" != "auto"; then + DISTRIBUTION_VERSION=[$ac_distribution_version] +fi +if test "$ac_distribution_version" = "auto"; then +AC_CACHE_VAL(DISTRIBUTION_VERSION, [ +if test -f "/etc/SuSE-release" && test "$DISTRIBUTION" = "SuSE"; then + DISTRIBUTION_VERSION=[`grep "VERSION =" /etc/SuSE-release | sed 's/VERSION = //'`]; +elif test -f "/etc/mandrake-release" && test "$DISTRIBUTION" = "Mandrake"; then + DISTRIBUTION_VERSION=[`grep "Mandrake" /etc/mandrake-release | sed 's/[a-zA-Z()]*//g' | awk '{print $1}'`] +elif test -f "/etc/redhat-release" && test "$DISTRIBUTION" = "Red Hat"; then + DISTRIBUTION_VERSION=[`grep "Red Hat" /etc/redhat-release | sed 's/[a-zA-Z()]*//g' | awk '{print $1}'`] +elif test -f "/etc/debian_version" && test "$DISTRIBUTION" = "Debian"; then + DISTRIBUTION_VERSION=[`cat /etc/debian_version`] +fi +]) +fi + + +if test "$ac_rpm_prefix" != "auto"; then + RPM_PREFIX=[$ac_rpm_prefix] +fi +if test "$ac_rpm_prefix" = "auto"; then +AC_CACHE_VAL(RPM_PREFIX, [ +if test "$DISTRIBUTION" = "SuSE"; then + RPM_PREFIX="/opt/kde3" +elif test "$DISTRIBUTION" = "Mandrake"; then + RPM_PREFIX="/usr" +elif test "$DISTRIBUTION" = "Red Hat"; then + RPM_PREFIX="/usr" +elif test "$DISTRIBUTION" = "Debian"; then + RPM_PREFIX="/usr" +fi +]) +fi + +if test "$ac_rpm_group" != "auto"; then + RPM_GROUP=[$ac_rpm_group] +fi +if test "$ac_rpm_prefix" = "auto"; then +AC_CACHE_VAL(RPM_GROUP, +[ +if test "$DISTRIBUTION" = "SuSE"; then + RPM_GROUP="X11/KDE/Applications" +elif test "$DISTRIBUTION" = "Mandrake"; then + RPM_GROUP="Graphical desktop/KDE" +elif test "$DISTRIBUTION" = "Red Hat"; then + RPM_GROUP="Graphical desktop/KDE" +elif test "$DISTRIBUTION" = "Debian"; then + RPM_GROUP="Graphical desktop/KDE" +fi +]) +fi + +if test -n "$DISTRIBUTION" && test "$DISTRIBUTION" != "unknown"; then + AC_DEFINE_UNQUOTED(DISTRIBUTION, ${DISTRIBUTION}, [The type of your distribution]) +fi + +if test -n "$DISTRIBUTION_VERSION" && test "$DISTRIBUTION_VERSION" != "unknown"; then + AC_DEFINE_UNQUOTED(DISTRIBUTION_VERSION, ${DISTRIBUTION_VERSION}, [The version of your distribution]) +fi + +AC_SUBST(DISTRIBUTION) +AC_SUBST(DISTRIBUTION_VERSION) +AC_SUBST(RPM_PREFIX) +AC_SUBST(RPM_GROUP) + +AC_MSG_RESULT([$DISTRIBUTION $DISTRIBUTION_VERSION]) + +AC_MSG_CHECKING([for RPM installation prefix]) +AC_MSG_RESULT([$RPM_PREFIX]) + +AC_MSG_CHECKING([for the correct RPM group]) +AC_MSG_RESULT([$RPM_GROUP]) +]) + + + + +dnl MY_CURL +dnl ------- +dnl set my_cv_curl_vers to the version of libcurl or NONE +dnl if libcurl is not found or is too old +dnl This function comes from cURL's webpage + +AC_DEFUN(AC_CHECK_CURL,[ + AC_CACHE_VAL(my_cv_curl_vers,[ + my_cv_curl_vers=NONE + dnl check is the plain-text version of the required version + check="7.9" + dnl check_hex must be UPPERCASE if any hex letters are present + check_hex="070900" + + AC_MSG_CHECKING([for curl >= $check]) + + if eval curl-config --version 2>/dev/null >/dev/null; then + ver=`curl-config --version | sed -e "s/libcurl //g"` + hex_ver=`curl-config --vernum | tr 'a-f' 'A-F'` + ok=`echo "ibase=16; if($hex_ver>=$check_hex) $hex_ver else 0" | bc` + + if test x$ok != x0; then + my_cv_curl_vers="$ver" + AC_MSG_RESULT([$my_cv_curl_vers]) + else + AC_MSG_RESULT(FAILED) + AC_MSG_ERROR([$ver is too old. Please install libcurl version $check or higher.]); + fi + else + AC_MSG_RESULT(FAILED) + AC_MSG_ERROR([curl-config was not found. Please install libcurl version $check or higher.]) + fi + ]) +]) +## -*- autoconf -*- +dnl This file was created by Lee Carpenter +dnl Later modified by Martin Gruner +dnl It provides macros for the autoconf package to find the CLucene library on your system. + +dnl ---------------------------------------------------------------------- +dnl Check for clucene installation +dnl First argument specifies whether or not to link +dnl CLucene statically +dnl ---------------------------------------------------------------------- +AC_DEFUN(AC_CHECK_CLUCENE, +[ +dnl AC_MSG_CHECKING([for a clucene installation]) + +dnl The option for the configure script +AC_ARG_WITH(clucene-dir, +[ --with-clucene-dir=DIR Path where CLucene is installed (default=/usr) ], +[ + ac_clucene_dir=$withval +],ac_clucene_dir=/usr +) + +AC_ARG_ENABLE(static-clucene, +[ --enable-static-clucene Link to the static CLucene library], + ac_static_clucene="YES", + [ ac_static_clucene="$1" ] +) + +dnl try to find CLucene library files +AC_MSG_CHECKING([for CLucene library files]) +ac_clucene_library_dirs="$ac_clucene_dir/lib $exec_prefix/lib $prefix/lib /usr/lib /usr/lib64 /usr/local/lib" + +if test "x$ac_static_clucene" = "xYES"; then + SEARCH_LIBS="libclucene.a"; +else + SEARCH_LIBS="libclucene.so libclucene.so.0 libclucene.so.0.0.0 libcluene.a"; +fi + + +AC_CACHE_VAL(ac_cv_clucene_libdir, AC_FIND_FILE($SEARCH_LIBS, $ac_clucene_library_dirs, ac_cv_clucene_libdir)) + +if test "x$ac_cv_clucene_libdir" = "xNO"; then + AC_MSG_ERROR(CLucene library not found. Try to use configure with --with-clucene-dir=/path/to/clucene); +fi + +if test "x$ac_static_clucene" = "xYES"; then + LIB_CLUCENE="$ac_cv_clucene_libdir/libclucene.a"; +else + LIB_CLUCENE="-lclucene"; +fi + +AC_SUBST(CLUCENE_LIBRARY_PATH) +AC_SUBST(LIB_CLUCENE) +all_libraries="$all_libraries -L$ac_cv_clucene_libdir" + +if test "x$ac_static_clucene" = "xYES"; then + MESSAGE="static library $ac_cv_clucene_libdir/libclucene.a"; +else + MESSAGE="$ac_cv_clucene_libdir"; +fi +AC_MSG_RESULT([$MESSAGE]) + +dnl -- try to find CLucene include files -- +AC_MSG_CHECKING([for Clucene include files]) +ac_clucene_include_dirs="$ac_clucene_dir/include $exec_prefix/include $prefix/include /usr/include /usr/local/include" + +AC_CACHE_VAL(ac_cv_clucene_incdir, AC_FIND_FILE(CLucene.h, $ac_clucene_include_dirs, ac_cv_clucene_incdir)) + +if test "x$ac_cv_clucene_incdir" = "xNO"; then + AC_MSG_ERROR([The CLucene include file files were not found. +Please try to use configure with --with-clucene-dir=/path/to/clucene +]) +fi + +CLUCENE_INCLUDES="-I$ac_cv_clucene_incdir" +AC_SUBST(CLUCENE_INCLUDES) +all_includes="$all_includes -I$ac_cv_clucene_incdir -I$ac_cv_clucene_libdir -I$ac_cv_sword_incdir" #$ac_cv_clucene_libdir needed for Clucene/clucene-config.h + +AC_MSG_RESULT([$ac_cv_clucene_incdir]) + + + +dnl -- CLucene installed test -- + +AC_MSG_CHECKING([for CLucene version]) + +AC_CACHE_VAL(ac_cv_installed_clucene_version, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH +ac_LIBRARY_PATH="$LIBRARY_PATH" +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$" +LDFLAGS="$LDFLAGS -L$ac_cv_clucene_libdir -L$ac_cv_sword_libdir" +LIBS="$LIB_CLUCENE -lz -lsword" +LD_LIBRARY_PATH="$ac_cv_clucene_libdir" +export LD_LIBRARY_PATH +LIBRARY_PATH= +export LIBRARY_PATH + +cat > conftest.$ac_ext < +#include +#include + +int main(int argc, char* argv[[]]) { + if ( sword::SWVersion( _CL_VERSION ) >= sword::SWVersion( "0.9.16" ) ){ + std::cout << "ok"; + } + else{ + std::cout << "not-ok"; + } + return 0; +} +EOF + + +ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +if AC_TRY_EVAL(ac_link) && test -s conftest; then + if test -x conftest; then + eval ac_cv_installed_clucene_version=`./conftest 2>&5` + fi +else + echo "configure: failed program was:" >&AC_FD_CC + AC_MSG_ERROR([Failed to compile the test program to check the CLucene version! Please have a look at config.log! Report this to the BibleTime developers!]); + cat conftest.$ac_ext >&AC_FD_CC +fi + +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" +export LD_LIBRARY_PATH +LIBRARY_PATH="$ac_LIBRARY_PATH" +export LIBRARY_PATH +AC_LANG_RESTORE +]) + +if test "x$ac_cv_installed_clucene_version" = "xok"; then + AC_MSG_RESULT([ok, version is recent enough]); +elif test "x$ac_cv_installed_clucene_version" = "xnot-ok"; then + AC_MSG_RESULT([installed]); + AC_MSG_ERROR([Your CLucene version is not recent enough! Please upgrade to version >= 0.9.16!]); +fi; + +]) + diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..2f1ca33 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,910 @@ +# generated automatically by aclocal 1.10.1 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(AC_AUTOCONF_VERSION, [2.61],, +[m4_warning([this file was generated for autoconf 2.61. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically `autoreconf'.])]) + +# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.10' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.10.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.10.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 +# 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. + +# serial 8 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +# 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. + +# serial 9 + +# 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], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + 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=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --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])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# 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. + +#serial 3 + +# _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. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_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 (C) 1996, 1997, 2000, 2001, 2003, 2005 +# 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. + +# serial 8 + +# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. +AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 13 + +# 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. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.60])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# 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 +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [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 +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 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. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 +# 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. + +# serial 4 + +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 +] +) + +AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 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. + +# serial 3 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# 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 | grep -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 +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 +# 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. + +# serial 5 + +# 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 +AC_REQUIRE_AUX_FILE([missing])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 +]) + +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 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. + +# serial 3 + +# _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. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# 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. + +# serial 4 + +# 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)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 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. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([acinclude.m4]) diff --git a/admin/Makefile.common b/admin/Makefile.common new file mode 100644 index 0000000..46280ea --- /dev/null +++ b/admin/Makefile.common @@ -0,0 +1,35 @@ +### Makefile.common +### +### Copyright (C) 2002 by the KDE developers + +### All the real work is done by the shellscript cvs.sh + +SHELL=/bin/sh + +cvs dist cvs-clean configure configure.in configure.files subdirs package-messages package-merge Makefile.am acinclude.m4 extract-messages: + @admindir=$(admindir); \ + if test "x$$admindir" = x; then \ + admindir=.; until test -f $$admindir/admin/cvs.sh; do \ + admindir=$$admindir/..; \ + if test `cd $$admindir && pwd` = / ; then break; fi; \ + done; \ + admindir=$$admindir/admin; \ + if test -f $$admindir/cvs.sh; then :; else \ + echo "Can't find the admin/ directory in any parent of the"; \ + echo "current directory. Please set it with admindir=..."; \ + exit 1; \ + fi; \ + fi; \ + if test "$@" = "package-merge"; then \ + MAKE="$(MAKE)" POFILES="$(POFILES)" PACKAGE="$(PACKAGE)" \ + $(SHELL) $$admindir/cvs.sh package-merge ;\ + else \ + MAKE="$(MAKE)" $(SHELL) $$admindir/cvs.sh $@ ;\ + fi + +configure.in: configure.files subdirs +configure.files: subdirs + +.SILENT: + +.PHONY: cvs dist cvs-clean package-merge package-messages diff --git a/admin/acinclude.m4.in b/admin/acinclude.m4.in new file mode 100644 index 0000000..6675281 --- /dev/null +++ b/admin/acinclude.m4.in @@ -0,0 +1,5710 @@ +## -*- autoconf -*- + +dnl This file is part of the KDE libraries/packages +dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu) +dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org) + +dnl This file is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Library General Public +dnl License as published by the Free Software Foundation; either +dnl version 2 of the License, or (at your option) any later version. + +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Library General Public License for more details. + +dnl You should have received a copy of the GNU Library General Public License +dnl along with this library; see the file COPYING.LIB. If not, write to +dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +dnl Boston, MA 02111-1307, USA. + +dnl IMPORTANT NOTE: +dnl Please do not modify this file unless you expect your modifications to be +dnl carried into every other module in the repository. +dnl +dnl Single-module modifications are best placed in configure.in for kdelibs +dnl and kdebase or configure.in.in if present. + +# KDE_PATH_X_DIRECT +dnl Internal subroutine of AC_PATH_X. +dnl Set ac_x_includes and/or ac_x_libraries. +AC_DEFUN([KDE_PATH_X_DIRECT], +[ +AC_REQUIRE([KDE_CHECK_LIB64]) + +if test "$ac_x_includes" = NO; then + # Guess where to find include files, by looking for this one X11 .h file. + test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h + + # First, try using that file with no special directory specified. +AC_TRY_CPP([#include <$x_direct_test_include>], +[# We can compile using X headers with no special include directory. +ac_x_includes=], +[# Look for the header file in a standard set of common directories. +# Check X11 before X11Rn because it is often a symlink to the current release. + for ac_dir in \ + /usr/X11/include \ + /usr/X11R6/include \ + /usr/X11R5/include \ + /usr/X11R4/include \ + \ + /usr/include/X11 \ + /usr/include/X11R6 \ + /usr/include/X11R5 \ + /usr/include/X11R4 \ + \ + /usr/local/X11/include \ + /usr/local/X11R6/include \ + /usr/local/X11R5/include \ + /usr/local/X11R4/include \ + \ + /usr/local/include/X11 \ + /usr/local/include/X11R6 \ + /usr/local/include/X11R5 \ + /usr/local/include/X11R4 \ + \ + /usr/X386/include \ + /usr/x386/include \ + /usr/XFree86/include/X11 \ + \ + /usr/include \ + /usr/local/include \ + /usr/unsupported/include \ + /usr/athena/include \ + /usr/local/x11r5/include \ + /usr/lpp/Xamples/include \ + \ + /usr/openwin/include \ + /usr/openwin/share/include \ + ; \ + do + if test -r "$ac_dir/$x_direct_test_include"; then + ac_x_includes=$ac_dir + break + fi + done]) +fi # $ac_x_includes = NO + +if test "$ac_x_libraries" = NO; then + # Check for the libraries. + + test -z "$x_direct_test_library" && x_direct_test_library=Xt + test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc + + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS="$LIBS" + LIBS="-l$x_direct_test_library $LIBS" +AC_TRY_LINK([#include ], [${x_direct_test_function}(1)], +[LIBS="$ac_save_LIBS" +# We can link X programs with no special library path. +ac_x_libraries=], +[LIBS="$ac_save_LIBS" +# First see if replacing the include by lib works. +# Check X11 before X11Rn because it is often a symlink to the current release. +for ac_dir in `echo "$ac_x_includes" | sed s/include/lib${kdelibsuff}/` \ + /usr/X11/lib${kdelibsuff} \ + /usr/X11R6/lib${kdelibsuff} \ + /usr/X11R5/lib${kdelibsuff} \ + /usr/X11R4/lib${kdelibsuff} \ + \ + /usr/lib${kdelibsuff}/X11 \ + /usr/lib${kdelibsuff}/X11R6 \ + /usr/lib${kdelibsuff}/X11R5 \ + /usr/lib${kdelibsuff}/X11R4 \ + \ + /usr/local/X11/lib${kdelibsuff} \ + /usr/local/X11R6/lib${kdelibsuff} \ + /usr/local/X11R5/lib${kdelibsuff} \ + /usr/local/X11R4/lib${kdelibsuff} \ + \ + /usr/local/lib${kdelibsuff}/X11 \ + /usr/local/lib${kdelibsuff}/X11R6 \ + /usr/local/lib${kdelibsuff}/X11R5 \ + /usr/local/lib${kdelibsuff}/X11R4 \ + \ + /usr/X386/lib${kdelibsuff} \ + /usr/x386/lib${kdelibsuff} \ + /usr/XFree86/lib${kdelibsuff}/X11 \ + \ + /usr/lib${kdelibsuff} \ + /usr/local/lib${kdelibsuff} \ + /usr/unsupported/lib${kdelibsuff} \ + /usr/athena/lib${kdelibsuff} \ + /usr/local/x11r5/lib${kdelibsuff} \ + /usr/lpp/Xamples/lib${kdelibsuff} \ + /lib/usr/lib${kdelibsuff}/X11 \ + \ + /usr/openwin/lib${kdelibsuff} \ + /usr/openwin/share/lib${kdelibsuff} \ + ; \ +do +dnl Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl; do + if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done]) +fi # $ac_x_libraries = NO +]) + + +dnl ------------------------------------------------------------------------ +dnl Find a file (or one of more files in a list of dirs) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_FIND_FILE], +[ +$3=NO +for i in $2; +do + for j in $1; + do + echo "configure: __oline__: $i/$j" >&AC_FD_CC + if test -r "$i/$j"; then + echo "taking that" >&AC_FD_CC + $3=$i + break 2 + fi + done +done +]) + +dnl KDE_FIND_PATH(program-name, variable-name, list-of-dirs, +dnl if-not-found, test-parameter, prepend-path) +dnl +dnl Look for program-name in list-of-dirs+$PATH. +dnl If prepend-path is set, look in $PATH+list-of-dirs instead. +dnl If found, $variable-name is set. If not, if-not-found is evaluated. +dnl test-parameter: if set, the program is executed with this arg, +dnl and only a successful exit code is required. +AC_DEFUN([KDE_FIND_PATH], +[ + AC_MSG_CHECKING([for $1]) + if test -n "$$2"; then + kde_cv_path="$$2"; + else + kde_cache=`echo $1 | sed 'y%./+-%__p_%'` + + AC_CACHE_VAL(kde_cv_path_$kde_cache, + [ + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z "$6"; then dnl Append dirs in PATH (default) + dirs="$3 $dirs" + else dnl Prepend dirs in PATH (if 6th arg is set) + dirs="$dirs $3" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/$1"; then + if test -n "$5" + then + evalstr="$dir/$1 $5 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/$1" + break + fi + else + kde_cv_path="$dir/$1" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + ]) + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + AC_MSG_RESULT(not found) + $4 + else + AC_MSG_RESULT($kde_cv_path) + $2=$kde_cv_path + + fi +]) + +AC_DEFUN([KDE_MOC_ERROR_MESSAGE], +[ + AC_MSG_ERROR([No Qt meta object compiler (moc) found! +Please check whether you installed Qt correctly. +You need to have a running moc binary. +configure tried to run $ac_cv_path_moc and the test didn't +succeed. If configure shouldn't have tried this one, set +the environment variable MOC to the right one before running +configure. +]) +]) + +AC_DEFUN([KDE_UIC_ERROR_MESSAGE], +[ + AC_MSG_WARN([No Qt ui compiler (uic) found! +Please check whether you installed Qt correctly. +You need to have a running uic binary. +configure tried to run $ac_cv_path_uic and the test didn't +succeed. If configure shouldn't have tried this one, set +the environment variable UIC to the right one before running +configure. +]) +]) + + +AC_DEFUN([KDE_CHECK_UIC_FLAG], +[ + AC_MSG_CHECKING([whether uic supports -$1 ]) + kde_cache=`echo $1 | sed 'y% .=/+-%____p_%'` + AC_CACHE_VAL(kde_cv_prog_uic_$kde_cache, + [ + cat >conftest.ui < +EOT + ac_uic_testrun="$UIC_PATH -$1 $2 conftest.ui >/dev/null" + if AC_TRY_EVAL(ac_uic_testrun); then + eval "kde_cv_prog_uic_$kde_cache=yes" + else + eval "kde_cv_prog_uic_$kde_cache=no" + fi + rm -f conftest* + ]) + + if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then + AC_MSG_RESULT([yes]) + : + $3 + else + AC_MSG_RESULT([no]) + : + $4 + fi +]) + + +dnl ------------------------------------------------------------------------ +dnl Find the meta object compiler and the ui compiler in the PATH, +dnl in $QTDIR/bin, and some more usual places +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_PATH_QT_MOC_UIC], +[ + AC_REQUIRE([KDE_CHECK_PERL]) + qt_bindirs="" + for dir in $kde_qt_dirs; do + qt_bindirs="$qt_bindirs $dir/bin $dir/src/moc" + done + qt_bindirs="$qt_bindirs /usr/bin /usr/X11R6/bin /usr/local/qt/bin" + if test ! "$ac_qt_bindir" = "NO"; then + qt_bindirs="$ac_qt_bindir $qt_bindirs" + fi + + KDE_FIND_PATH(moc, MOC, [$qt_bindirs], [KDE_MOC_ERROR_MESSAGE]) + if test -z "$UIC_NOT_NEEDED"; then + KDE_FIND_PATH(uic, UIC_PATH, [$qt_bindirs], [UIC_PATH=""]) + if test -z "$UIC_PATH" ; then + KDE_UIC_ERROR_MESSAGE + exit 1 + else + UIC=$UIC_PATH + + if test $kde_qtver = 3; then + KDE_CHECK_UIC_FLAG(L,[/nonexistent],ac_uic_supports_libpath=yes,ac_uic_supports_libpath=no) + KDE_CHECK_UIC_FLAG(nounload,,ac_uic_supports_nounload=yes,ac_uic_supports_nounload=no) + + if test x$ac_uic_supports_libpath = xyes; then + UIC="$UIC -L \$(kde_widgetdir)" + fi + if test x$ac_uic_supports_nounload = xyes; then + UIC="$UIC -nounload" + fi + fi + fi + else + UIC="echo uic not available: " + fi + + AC_SUBST(MOC) + AC_SUBST(UIC) + + UIC_TR="i18n" + if test $kde_qtver = 3; then + UIC_TR="tr2i18n" + fi + + AC_SUBST(UIC_TR) +]) + +AC_DEFUN([KDE_1_CHECK_PATHS], +[ + KDE_1_CHECK_PATH_HEADERS + + KDE_TEST_RPATH= + + if test -n "$USE_RPATH"; then + + if test -n "$kde_libraries"; then + KDE_TEST_RPATH="-R $kde_libraries" + fi + + if test -n "$qt_libraries"; then + KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries" + fi + + if test -n "$x_libraries"; then + KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries" + fi + + KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH" + fi + +AC_MSG_CHECKING([for KDE libraries installed]) +ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -lkdecore $LIBQT $KDE_TEST_RPATH 1>&5' + +if AC_TRY_EVAL(ac_link) && test -s conftest; then + AC_MSG_RESULT(yes) +else + AC_MSG_ERROR([your system fails at linking a small KDE application! +Check, if your compiler is installed correctly and if you have used the +same compiler to compile Qt and kdelibs as you did use now. +For more details about this problem, look at the end of config.log.]) +fi + +if eval `KDEDIR= ./conftest 2>&5`; then + kde_result=done +else + kde_result=problems +fi + +KDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log +kde_have_all_paths=yes + +KDE_SET_PATHS($kde_result) + +]) + +AC_DEFUN([KDE_SET_PATHS], +[ + kde_cv_all_paths="kde_have_all_paths=\"yes\" \ + kde_htmldir=\"$kde_htmldir\" \ + kde_appsdir=\"$kde_appsdir\" \ + kde_icondir=\"$kde_icondir\" \ + kde_sounddir=\"$kde_sounddir\" \ + kde_datadir=\"$kde_datadir\" \ + kde_locale=\"$kde_locale\" \ + kde_cgidir=\"$kde_cgidir\" \ + kde_confdir=\"$kde_confdir\" \ + kde_kcfgdir=\"$kde_kcfgdir\" \ + kde_mimedir=\"$kde_mimedir\" \ + kde_toolbardir=\"$kde_toolbardir\" \ + kde_wallpaperdir=\"$kde_wallpaperdir\" \ + kde_templatesdir=\"$kde_templatesdir\" \ + kde_bindir=\"$kde_bindir\" \ + kde_servicesdir=\"$kde_servicesdir\" \ + kde_servicetypesdir=\"$kde_servicetypesdir\" \ + kde_moduledir=\"$kde_moduledir\" \ + kde_styledir=\"$kde_styledir\" \ + kde_widgetdir=\"$kde_widgetdir\" \ + xdg_appsdir=\"$xdg_appsdir\" \ + xdg_menudir=\"$xdg_menudir\" \ + xdg_directorydir=\"$xdg_directorydir\" \ + kde_result=$1" +]) + +AC_DEFUN([KDE_SET_DEFAULT_PATHS], +[ +if test "$1" = "default"; then + + if test -z "$kde_htmldir"; then + kde_htmldir='\${datadir}/doc/HTML' + fi + if test -z "$kde_appsdir"; then + kde_appsdir='\${datadir}/applnk' + fi + if test -z "$kde_icondir"; then + kde_icondir='\${datadir}/icons' + fi + if test -z "$kde_sounddir"; then + kde_sounddir='\${datadir}/sounds' + fi + if test -z "$kde_datadir"; then + kde_datadir='\${datadir}/apps' + fi + if test -z "$kde_locale"; then + kde_locale='\${datadir}/locale' + fi + if test -z "$kde_cgidir"; then + kde_cgidir='\${exec_prefix}/cgi-bin' + fi + if test -z "$kde_confdir"; then + kde_confdir='\${datadir}/config' + fi + if test -z "$kde_kcfgdir"; then + kde_kcfgdir='\${datadir}/config.kcfg' + fi + if test -z "$kde_mimedir"; then + kde_mimedir='\${datadir}/mimelnk' + fi + if test -z "$kde_toolbardir"; then + kde_toolbardir='\${datadir}/toolbar' + fi + if test -z "$kde_wallpaperdir"; then + kde_wallpaperdir='\${datadir}/wallpapers' + fi + if test -z "$kde_templatesdir"; then + kde_templatesdir='\${datadir}/templates' + fi + if test -z "$kde_bindir"; then + kde_bindir='\${exec_prefix}/bin' + fi + if test -z "$kde_servicesdir"; then + kde_servicesdir='\${datadir}/services' + fi + if test -z "$kde_servicetypesdir"; then + kde_servicetypesdir='\${datadir}/servicetypes' + fi + if test -z "$kde_moduledir"; then + if test "$kde_qtver" = "2"; then + kde_moduledir='\${libdir}/kde2' + else + kde_moduledir='\${libdir}/kde3' + fi + fi + if test -z "$kde_styledir"; then + kde_styledir='\${libdir}/kde3/plugins/styles' + fi + if test -z "$kde_widgetdir"; then + kde_widgetdir='\${libdir}/kde3/plugins/designer' + fi + if test -z "$xdg_appsdir"; then + xdg_appsdir='\${datadir}/applications/kde' + fi + if test -z "$xdg_menudir"; then + xdg_menudir='\${sysconfdir}/xdg/menus' + fi + if test -z "$xdg_directorydir"; then + xdg_directorydir='\${datadir}/desktop-directories' + fi + + KDE_SET_PATHS(defaults) + +else + + if test $kde_qtver = 1; then + AC_MSG_RESULT([compiling]) + KDE_1_CHECK_PATHS + else + AC_MSG_ERROR([path checking not yet supported for KDE 2]) + fi + +fi +]) + +AC_DEFUN([KDE_CHECK_PATHS_FOR_COMPLETENESS], +[ if test -z "$kde_htmldir" || test -z "$kde_appsdir" || + test -z "$kde_icondir" || test -z "$kde_sounddir" || + test -z "$kde_datadir" || test -z "$kde_locale" || + test -z "$kde_cgidir" || test -z "$kde_confdir" || + test -z "$kde_kcfgdir" || + test -z "$kde_mimedir" || test -z "$kde_toolbardir" || + test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" || + test -z "$kde_bindir" || test -z "$kde_servicesdir" || + test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" || + test -z "$kde_styledir" || test -z "kde_widgetdir" || + test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" || + test "x$kde_have_all_paths" != "xyes"; then + kde_have_all_paths=no + fi +]) + +AC_DEFUN([KDE_MISSING_PROG_ERROR], +[ + AC_MSG_ERROR([The important program $1 was not found! +Please check whether you installed KDE correctly. +]) +]) + +AC_DEFUN([KDE_MISSING_ARTS_ERROR], +[ + AC_MSG_ERROR([The important program $1 was not found! +Please check whether you installed aRts correctly or use +--without-arts to compile without aRts support (this will remove functionality). +]) +]) + +AC_DEFUN([KDE_SET_DEFAULT_BINDIRS], +[ + kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin" + test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs" + if test -n "$KDEDIRS"; then + kde_save_IFS=$IFS + IFS=: + for dir in $KDEDIRS; do + kde_default_bindirs="$dir/bin $kde_default_bindirs " + done + IFS=$kde_save_IFS + fi +]) + +AC_DEFUN([KDE_SUBST_PROGRAMS], +[ + AC_ARG_WITH(arts, + AC_HELP_STRING([--without-arts],[build without aRts [default=no]]), + [build_arts=$withval], + [build_arts=yes] + ) + AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no") + if test "$build_arts" = "no"; then + AC_DEFINE(WITHOUT_ARTS, 1, [Defined if compiling without arts]) + fi + + KDE_SET_DEFAULT_BINDIRS + kde_default_bindirs="$exec_prefix/bin $prefix/bin $kde_libs_prefix/bin $kde_default_bindirs" + KDE_FIND_PATH(dcopidl, DCOPIDL, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl)]) + KDE_FIND_PATH(dcopidl2cpp, DCOPIDL2CPP, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl2cpp)]) + if test "$build_arts" '!=' "no"; then + KDE_FIND_PATH(mcopidl, MCOPIDL, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(mcopidl)]) + KDE_FIND_PATH(artsc-config, ARTSCCONFIG, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(artsc-config)]) + fi + KDE_FIND_PATH(meinproc, MEINPROC, [$kde_default_bindirs]) + + kde32ornewer=1 + kde33ornewer=1 + if test -n "$kde_qtver" && test "$kde_qtver" -lt 3; then + kde32ornewer= + kde33ornewer= + else + if test "$kde_qtver" = "3"; then + if test "$kde_qtsubver" -le 1; then + kde32ornewer= + fi + if test "$kde_qtsubver" -le 2; then + kde33ornewer= + fi + fi + fi + + if test -n "$kde32ornewer"; then + KDE_FIND_PATH(kconfig_compiler, KCONFIG_COMPILER, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kconfig_compiler)]) + KDE_FIND_PATH(dcopidlng, DCOPIDLNG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidlng)]) + fi + if test -n "$kde33ornewer"; then + KDE_FIND_PATH(makekdewidgets, MAKEKDEWIDGETS, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(makekdewidgets)]) + AC_SUBST(MAKEKDEWIDGETS) + fi + KDE_FIND_PATH(xmllint, XMLLINT, [${prefix}/bin ${exec_prefix}/bin], [XMLLINT=""]) + + if test -n "$MEINPROC" && test ! "$MEINPROC" = "compiled"; then + kde_sharedirs="/usr/share/kde /usr/local/share /usr/share /opt/kde3/share /opt/kde/share $prefix/share" + test -n "$KDEDIR" && kde_sharedirs="$KDEDIR/share $kde_sharedirs" + AC_FIND_FILE(apps/ksgmltools2/customization/kde-chunk.xsl, $kde_sharedirs, KDE_XSL_STYLESHEET) + if test "$KDE_XSL_STYLESHEET" = "NO"; then + KDE_XSL_STYLESHEET="" + else + KDE_XSL_STYLESHEET="$KDE_XSL_STYLESHEET/apps/ksgmltools2/customization/kde-chunk.xsl" + fi + fi + + DCOP_DEPENDENCIES='$(DCOPIDL)' + if test -n "$kde32ornewer"; then + KCFG_DEPENDENCIES='$(KCONFIG_COMPILER)' + DCOP_DEPENDENCIES='$(DCOPIDL) $(DCOPIDLNG)' + AC_SUBST(KCONFIG_COMPILER) + AC_SUBST(KCFG_DEPENDENCIES) + AC_SUBST(DCOPIDLNG) + fi + AC_SUBST(DCOPIDL) + AC_SUBST(DCOPIDL2CPP) + AC_SUBST(DCOP_DEPENDENCIES) + AC_SUBST(MCOPIDL) + AC_SUBST(ARTSCCONFIG) + AC_SUBST(MEINPROC) + AC_SUBST(KDE_XSL_STYLESHEET) + AC_SUBST(XMLLINT) +])dnl + +AC_DEFUN([AC_CREATE_KFSSTND], +[ +AC_REQUIRE([AC_CHECK_RPATH]) + +AC_MSG_CHECKING([for KDE paths]) +kde_result="" +kde_cached_paths=yes +AC_CACHE_VAL(kde_cv_all_paths, +[ + KDE_SET_DEFAULT_PATHS($1) + kde_cached_paths=no +]) +eval "$kde_cv_all_paths" +KDE_CHECK_PATHS_FOR_COMPLETENESS +if test "$kde_have_all_paths" = "no" && test "$kde_cached_paths" = "yes"; then + # wrong values were cached, may be, we can set better ones + kde_result= + kde_htmldir= kde_appsdir= kde_icondir= kde_sounddir= + kde_datadir= kde_locale= kde_cgidir= kde_confdir= kde_kcfgdir= + kde_mimedir= kde_toolbardir= kde_wallpaperdir= kde_templatesdir= + kde_bindir= kde_servicesdir= kde_servicetypesdir= kde_moduledir= + kde_have_all_paths= + kde_styledir= + kde_widgetdir= + xdg_appsdir = xdg_menudir= xdg_directorydir= + KDE_SET_DEFAULT_PATHS($1) + eval "$kde_cv_all_paths" + KDE_CHECK_PATHS_FOR_COMPLETENESS + kde_result="$kde_result (cache overridden)" +fi +if test "$kde_have_all_paths" = "no"; then + AC_MSG_ERROR([configure could not run a little KDE program to test the environment. +Since it had compiled and linked before, it must be a strange problem on your system. +Look at config.log for details. If you are not able to fix this, look at +http://www.kde.org/faq/installation.html or any www.kde.org mirror. +(If you're using an egcs version on Linux, you may update binutils!) +]) +else + rm -f conftest* + AC_MSG_RESULT($kde_result) +fi + +bindir=$kde_bindir + +KDE_SUBST_PROGRAMS + +]) + +AC_DEFUN([AC_SUBST_KFSSTND], +[ +AC_SUBST(kde_htmldir) +AC_SUBST(kde_appsdir) +AC_SUBST(kde_icondir) +AC_SUBST(kde_sounddir) +AC_SUBST(kde_datadir) +AC_SUBST(kde_locale) +AC_SUBST(kde_confdir) +AC_SUBST(kde_kcfgdir) +AC_SUBST(kde_mimedir) +AC_SUBST(kde_wallpaperdir) +AC_SUBST(kde_bindir) +dnl X Desktop Group standards +AC_SUBST(xdg_appsdir) +AC_SUBST(xdg_menudir) +AC_SUBST(xdg_directorydir) +dnl for KDE 2 +AC_SUBST(kde_templatesdir) +AC_SUBST(kde_servicesdir) +AC_SUBST(kde_servicetypesdir) +AC_SUBST(kde_moduledir) +AC_SUBST(kdeinitdir, '$(kde_moduledir)') +AC_SUBST(kde_styledir) +AC_SUBST(kde_widgetdir) +if test "$kde_qtver" = 1; then + kde_minidir="$kde_icondir/mini" +else +# for KDE 1 - this breaks KDE2 apps using minidir, but +# that's the plan ;-/ + kde_minidir="/dev/null" +fi +dnl AC_SUBST(kde_minidir) +dnl AC_SUBST(kde_cgidir) +dnl AC_SUBST(kde_toolbardir) +]) + +AC_DEFUN([KDE_MISC_TESTS], +[ + dnl Checks for libraries. + AC_CHECK_LIB(util, main, [LIBUTIL="-lutil"]) dnl for *BSD + AC_SUBST(LIBUTIL) + AC_CHECK_LIB(compat, main, [LIBCOMPAT="-lcompat"]) dnl for *BSD + AC_SUBST(LIBCOMPAT) + kde_have_crypt= + AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"; kde_have_crypt=yes], + AC_CHECK_LIB(c, crypt, [kde_have_crypt=yes], [ + AC_MSG_WARN([you have no crypt in either libcrypt or libc. +You should install libcrypt from another source or configure with PAM +support]) + kde_have_crypt=no + ])) + AC_SUBST(LIBCRYPT) + if test $kde_have_crypt = yes; then + AC_DEFINE_UNQUOTED(HAVE_CRYPT, 1, [Defines if your system has the crypt function]) + fi + AC_CHECK_SOCKLEN_T + AC_CHECK_LIB(dnet, dnet_ntoa, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"]) + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + AC_CHECK_LIB(dnet_stub, dnet_ntoa, + [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"]) + fi + AC_CHECK_FUNC(inet_ntoa) + if test $ac_cv_func_inet_ntoa = no; then + AC_CHECK_LIB(nsl, inet_ntoa, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl") + fi + AC_CHECK_FUNC(connect) + if test $ac_cv_func_connect = no; then + AC_CHECK_LIB(socket, connect, X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS", , + $X_EXTRA_LIBS) + fi + + AC_CHECK_FUNC(remove) + if test $ac_cv_func_remove = no; then + AC_CHECK_LIB(posix, remove, X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix") + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + AC_CHECK_FUNC(shmat, , + AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc")) + + # more headers that need to be explicitly included on darwin + AC_CHECK_HEADERS(sys/types.h stdint.h) + + # sys/bitypes.h is needed for uint32_t and friends on Tru64 + AC_CHECK_HEADERS(sys/bitypes.h) + + # darwin requires a poll emulation library + AC_CHECK_LIB(poll, poll, LIB_POLL="-lpoll") + + # for some image handling on Mac OS X + AC_CHECK_HEADERS(Carbon/Carbon.h) + + # CoreAudio framework + AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [ + AC_DEFINE(HAVE_COREAUDIO, 1, [Define if you have the CoreAudio API]) + FRAMEWORK_COREAUDIO="-Xlinker -framework -Xlinker CoreAudio" + ]) + + AC_CHECK_RES_INIT + AC_SUBST(LIB_POLL) + AC_SUBST(FRAMEWORK_COREAUDIO) + LIBSOCKET="$X_EXTRA_LIBS" + AC_SUBST(LIBSOCKET) + AC_SUBST(X_EXTRA_LIBS) + AC_CHECK_LIB(ucb, killpg, [LIBUCB="-lucb"]) dnl for Solaris2.4 + AC_SUBST(LIBUCB) + + case $host in dnl this *is* LynxOS specific + *-*-lynxos* ) + AC_MSG_CHECKING([LynxOS header file wrappers]) + [CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__"] + AC_MSG_RESULT(disabled) + AC_CHECK_LIB(bsd, gethostbyname, [LIBSOCKET="-lbsd"]) dnl for LynxOS + ;; + esac + + KDE_CHECK_TYPES + KDE_CHECK_LIBDL + KDE_CHECK_STRLCPY + +# darwin needs this to initialize the environment +AC_CHECK_HEADERS(crt_externs.h) +AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])]) + +AH_VERBATIM(_DARWIN_ENVIRON, +[ +#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H) +# include +# include +# define environ (*_NSGetEnviron()) +#endif +]) + +AH_VERBATIM(_AIX_STRINGS_H_BZERO, +[ +/* + * AIX defines FD_SET in terms of bzero, but fails to include + * that defines bzero. + */ + +#if defined(_AIX) +#include +#endif +]) + +AC_CHECK_FUNCS([vsnprintf snprintf]) + +AH_VERBATIM(_TRU64,[ +/* + * On HP-UX, the declaration of vsnprintf() is needed every time ! + */ + +#if !defined(HAVE_VSNPRINTF) || defined(hpux) +#if __STDC__ +#include +#include +#else +#include +#endif +#ifdef __cplusplus +extern "C" +#endif +int vsnprintf(char *str, size_t n, char const *fmt, va_list ap); +#ifdef __cplusplus +extern "C" +#endif +int snprintf(char *str, size_t n, char const *fmt, ...); +#endif +]) + +]) + +dnl ------------------------------------------------------------------------ +dnl Find the header files and libraries for X-Windows. Extended the +dnl macro AC_PATH_X +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([K_PATH_X], +[ +AC_REQUIRE([KDE_MISC_TESTS])dnl +AC_REQUIRE([KDE_CHECK_LIB64]) + +AC_ARG_ENABLE( + embedded, + AC_HELP_STRING([--enable-embedded],[link to Qt-embedded, don't use X]), + kde_use_qt_emb=$enableval, + kde_use_qt_emb=no +) + +AC_ARG_ENABLE( + qtopia, + AC_HELP_STRING([--enable-qtopia],[link to Qt-embedded, link to the Qtopia Environment]), + kde_use_qt_emb_palm=$enableval, + kde_use_qt_emb_palm=no +) + +AC_ARG_ENABLE( + mac, + AC_HELP_STRING([--enable-mac],[link to Qt/Mac (don't use X)]), + kde_use_qt_mac=$enableval, + kde_use_qt_mac=no +) + +# used to disable x11-specific stuff on special platforms +AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no") + +if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then + +AC_MSG_CHECKING(for X) + +AC_CACHE_VAL(kde_cv_have_x, +[# One or both of the vars are not set, and there is no cached value. +if test "{$x_includes+set}" = set || test "$x_includes" = NONE; then + kde_x_includes=NO +else + kde_x_includes=$x_includes +fi +if test "{$x_libraries+set}" = set || test "$x_libraries" = NONE; then + kde_x_libraries=NO +else + kde_x_libraries=$x_libraries +fi + +# below we use the standard autoconf calls +ac_x_libraries=$kde_x_libraries +ac_x_includes=$kde_x_includes + +KDE_PATH_X_DIRECT +dnl AC_PATH_X_XMKMF picks /usr/lib as the path for the X libraries. +dnl Unfortunately, if compiling with the N32 ABI, this is not the correct +dnl location. The correct location is /usr/lib32 or an undefined value +dnl (the linker is smart enough to pick the correct default library). +dnl Things work just fine if you use just AC_PATH_X_DIRECT. +dnl Solaris has a similar problem. AC_PATH_X_XMKMF forces x_includes to +dnl /usr/openwin/include, which doesn't work. /usr/include does work, so +dnl x_includes should be left alone. +case "$host" in +mips-sgi-irix6*) + ;; +*-*-solaris*) + ;; +*) + _AC_PATH_X_XMKMF + if test -z "$ac_x_includes"; then + ac_x_includes="." + fi + if test -z "$ac_x_libraries"; then + ac_x_libraries="/usr/lib${kdelibsuff}" + fi +esac +#from now on we use our own again + +# when the user already gave --x-includes, we ignore +# what the standard autoconf macros told us. +if test "$kde_x_includes" = NO; then + kde_x_includes=$ac_x_includes +fi + +# for --x-libraries too +if test "$kde_x_libraries" = NO; then + kde_x_libraries=$ac_x_libraries +fi + +if test "$kde_x_includes" = NO; then + AC_MSG_ERROR([Can't find X includes. Please check your installation and add the correct paths!]) +fi + +if test "$kde_x_libraries" = NO; then + AC_MSG_ERROR([Can't find X libraries. Please check your installation and add the correct paths!]) +fi + +# Record where we found X for the cache. +kde_cv_have_x="have_x=yes \ + kde_x_includes=$kde_x_includes kde_x_libraries=$kde_x_libraries" +])dnl + +eval "$kde_cv_have_x" + +if test "$have_x" != yes; then + AC_MSG_RESULT($have_x) + no_x=yes +else + AC_MSG_RESULT([libraries $kde_x_libraries, headers $kde_x_includes]) +fi + +if test -z "$kde_x_includes" || test "x$kde_x_includes" = xNONE; then + X_INCLUDES="" + x_includes="."; dnl better than nothing :- + else + x_includes=$kde_x_includes + X_INCLUDES="-I$x_includes" +fi + +if test -z "$kde_x_libraries" || test "x$kde_x_libraries" = xNONE; then + X_LDFLAGS="" + x_libraries="/usr/lib"; dnl better than nothing :- + else + x_libraries=$kde_x_libraries + X_LDFLAGS="-L$x_libraries" +fi +all_includes="$X_INCLUDES" +all_libraries="$X_LDFLAGS $LDFLAGS_AS_NEEDED $LDFLAGS_NEW_DTAGS" + +# Check for libraries that X11R6 Xt/Xaw programs need. +ac_save_LDFLAGS="$LDFLAGS" +LDFLAGS="$LDFLAGS $X_LDFLAGS" +# SM needs ICE to (dynamically) link under SunOS 4.x (so we have to +# check for ICE first), but we must link in the order -lSM -lICE or +# we get undefined symbols. So assume we have SM if we have ICE. +# These have to be linked with before -lX11, unlike the other +# libraries we check for below, so use a different variable. +# --interran@uluru.Stanford.EDU, kb@cs.umb.edu. +AC_CHECK_LIB(ICE, IceConnectionNumber, + [LIBSM="-lSM -lICE"], , $X_EXTRA_LIBS) +LDFLAGS="$ac_save_LDFLAGS" + +LIB_X11='-lX11 $(LIBSOCKET)' + +AC_MSG_CHECKING(for libXext) +AC_CACHE_VAL(kde_cv_have_libXext, +[ +kde_ldflags_safe="$LDFLAGS" +kde_libs_safe="$LIBS" + +LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS" +LIBS="-lXext -lX11 $LIBSOCKET" + +AC_TRY_LINK([ +#include +#ifdef STDC_HEADERS +# include +#endif +], +[ +printf("hello Xext\n"); +], +kde_cv_have_libXext=yes, +kde_cv_have_libXext=no +) + +LDFLAGS=$kde_ldflags_safe +LIBS=$kde_libs_safe +]) + +AC_MSG_RESULT($kde_cv_have_libXext) + +if test "$kde_cv_have_libXext" = "no"; then + AC_MSG_ERROR([We need a working libXext to proceed. Since configure +can't find it itself, we stop here assuming that make wouldn't find +them either.]) +fi + +LIB_XEXT="-lXext" +QTE_NORTTI="" + +elif test "$kde_use_qt_emb" = "yes"; then + dnl We're using QT Embedded + CPPFLAGS=-DQWS + CXXFLAGS="$CXXFLAGS -fno-rtti" + QTE_NORTTI="-fno-rtti -DQWS" + X_PRE_LIBS="" + LIB_X11="" + LIB_XEXT="" + LIB_XRENDER="" + LIBSM="" + X_INCLUDES="" + X_LDFLAGS="" + x_includes="" + x_libraries="" +elif test "$kde_use_qt_mac" = "yes"; then + dnl We're using QT/Mac (I use QT_MAC so that qglobal.h doesn't *have* to + dnl be included to get the information) --Sam + CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp" + CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp" + X_PRE_LIBS="" + LIB_X11="" + LIB_XEXT="" + LIB_XRENDER="" + LIBSM="" + X_INCLUDES="" + X_LDFLAGS="" + x_includes="" + x_libraries="" +fi +AC_SUBST(X_PRE_LIBS) +AC_SUBST(LIB_X11) +AC_SUBST(LIB_XRENDER) +AC_SUBST(LIBSM) +AC_SUBST(X_INCLUDES) +AC_SUBST(X_LDFLAGS) +AC_SUBST(x_includes) +AC_SUBST(x_libraries) +AC_SUBST(QTE_NORTTI) +AC_SUBST(LIB_XEXT) + +]) + +AC_DEFUN([KDE_PRINT_QT_PROGRAM], +[ +AC_REQUIRE([KDE_USE_QT]) +cat > conftest.$ac_ext < +#include +EOF +if test "$kde_qtver" = "2"; then +cat >> conftest.$ac_ext < +#include +#include +EOF + +if test $kde_qtsubver -gt 0; then +cat >> conftest.$ac_ext <> conftest.$ac_ext < +#include +#include +EOF +fi + +echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext +cat >> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <&AC_FD_CC + cat conftest.$ac_ext >&AC_FD_CC +fi + +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" +export LD_LIBRARY_PATH +LIBRARY_PATH="$ac_LIBRARY_PATH" +export LIBRARY_PATH +AC_LANG_RESTORE +]) + +if test "$kde_cv_qt_direct" = "yes"; then + AC_MSG_RESULT(yes) + $1 +else + AC_MSG_RESULT(no) + $2 +fi +]) + +dnl ------------------------------------------------------------------------ +dnl Try to find the Qt headers and libraries. +dnl $(QT_LDFLAGS) will be -Lqtliblocation (if needed) +dnl and $(QT_INCLUDES) will be -Iqthdrlocation (if needed) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_PATH_QT_1_3], +[ +AC_REQUIRE([K_PATH_X]) +AC_REQUIRE([KDE_USE_QT]) +AC_REQUIRE([KDE_CHECK_LIB64]) + +dnl ------------------------------------------------------------------------ +dnl Add configure flag to enable linking to MT version of Qt library. +dnl ------------------------------------------------------------------------ + +AC_ARG_ENABLE( + mt, + AC_HELP_STRING([--disable-mt],[link to non-threaded Qt (deprecated)]), + kde_use_qt_mt=$enableval, + [ + if test $kde_qtver = 3; then + kde_use_qt_mt=yes + else + kde_use_qt_mt=no + fi + ] +) + +USING_QT_MT="" + +dnl ------------------------------------------------------------------------ +dnl If we not get --disable-qt-mt then adjust some vars for the host. +dnl ------------------------------------------------------------------------ + +KDE_MT_LDFLAGS= +KDE_MT_LIBS= +if test "x$kde_use_qt_mt" = "xyes"; then + KDE_CHECK_THREADING + if test "x$kde_use_threading" = "xyes"; then + CPPFLAGS="$USE_THREADS -DQT_THREAD_SUPPORT $CPPFLAGS" + KDE_MT_LDFLAGS="$USE_THREADS" + KDE_MT_LIBS="$LIBPTHREAD" + else + kde_use_qt_mt=no + fi +fi +AC_SUBST(KDE_MT_LDFLAGS) +AC_SUBST(KDE_MT_LIBS) + +kde_qt_was_given=yes + +dnl ------------------------------------------------------------------------ +dnl If we haven't been told how to link to Qt, we work it out for ourselves. +dnl ------------------------------------------------------------------------ +if test -z "$LIBQT_GLOB"; then + if test "x$kde_use_qt_emb" = "xyes"; then + LIBQT_GLOB="libqte.*" + else + LIBQT_GLOB="libqt.*" + fi +fi + +if test -z "$LIBQT"; then +dnl ------------------------------------------------------------ +dnl If we got --enable-embedded then adjust the Qt library name. +dnl ------------------------------------------------------------ + if test "x$kde_use_qt_emb" = "xyes"; then + qtlib="qte" + else + qtlib="qt" + fi + + kde_int_qt="-l$qtlib" +else + kde_int_qt="$LIBQT" + kde_lib_qt_set=yes +fi + +if test -z "$LIBQPE"; then +dnl ------------------------------------------------------------ +dnl If we got --enable-palmtop then add -lqpe to the link line +dnl ------------------------------------------------------------ + if test "x$kde_use_qt_emb" = "xyes"; then + if test "x$kde_use_qt_emb_palm" = "xyes"; then + LIB_QPE="-lqpe" + else + LIB_QPE="" + fi + else + LIB_QPE="" + fi +fi + +dnl ------------------------------------------------------------------------ +dnl If we got --enable-qt-mt then adjust the Qt library name for the host. +dnl ------------------------------------------------------------------------ + +if test "x$kde_use_qt_mt" = "xyes"; then + if test -z "$LIBQT"; then + LIBQT="-l$qtlib-mt" + kde_int_qt="-l$qtlib-mt" + else + LIBQT="$qtlib-mt" + kde_int_qt="$qtlib-mt" + fi + LIBQT_GLOB="lib$qtlib-mt.*" + USING_QT_MT="using -mt" +else + LIBQT="-l$qtlib" +fi + +if test $kde_qtver != 1; then + + AC_REQUIRE([AC_FIND_PNG]) + AC_REQUIRE([AC_FIND_JPEG]) + LIBQT="$LIBQT $LIBPNG $LIBJPEG" +fi + +if test $kde_qtver = 3; then + AC_REQUIRE([KDE_CHECK_LIBDL]) + LIBQT="$LIBQT $LIBDL" +fi + +AC_MSG_CHECKING([for Qt]) + +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET" +fi +ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO +qt_libraries="" +qt_includes="" +AC_ARG_WITH(qt-dir, + AC_HELP_STRING([--with-qt-dir=DIR],[where the root of Qt is installed ]), + [ ac_qt_includes="$withval"/include + ac_qt_libraries="$withval"/lib${kdelibsuff} + ac_qt_bindir="$withval"/bin + ]) + +AC_ARG_WITH(qt-includes, + AC_HELP_STRING([--with-qt-includes=DIR],[where the Qt includes are. ]), + [ + ac_qt_includes="$withval" + ]) + +kde_qt_libs_given=no + +AC_ARG_WITH(qt-libraries, + AC_HELP_STRING([--with-qt-libraries=DIR],[where the Qt library is installed.]), + [ ac_qt_libraries="$withval" + kde_qt_libs_given=yes + ]) + +AC_CACHE_VAL(ac_cv_have_qt, +[#try to guess Qt locations + +qt_incdirs="" +for dir in $kde_qt_dirs; do + qt_incdirs="$qt_incdirs $dir/include $dir" +done +qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/include/qt3 $x_includes" +if test ! "$ac_qt_includes" = "NO"; then + qt_incdirs="$ac_qt_includes $qt_incdirs" +fi + +if test "$kde_qtver" != "1"; then + kde_qt_header=qstyle.h +else + kde_qt_header=qglobal.h +fi + +AC_FIND_FILE($kde_qt_header, $qt_incdirs, qt_incdir) +ac_qt_includes="$qt_incdir" + +qt_libdirs="" +for dir in $kde_qt_dirs; do + qt_libdirs="$qt_libdirs $dir/lib${kdelibsuff} $dir" +done +qt_libdirs="$QTLIB $qt_libdirs /usr/X11R6/lib /usr/lib /usr/local/qt/lib $x_libraries" +if test ! "$ac_qt_libraries" = "NO"; then + qt_libdir=$ac_qt_libraries +else + qt_libdirs="$ac_qt_libraries $qt_libdirs" + # if the Qt was given, the chance is too big that libqt.* doesn't exist + qt_libdir=NONE + for dir in $qt_libdirs; do + try="ls -1 $dir/${LIBQT_GLOB}" + if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi + done +fi +for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do + if test -e "$a"; then + LIBQT="$LIBQT ${kde_int_qt}_incremental" + break + fi +done + +ac_qt_libraries="$qt_libdir" + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes" +LDFLAGS="$LDFLAGS -L$qt_libdir $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS" +LIBS="$LIBS $LIBQT $KDE_MT_LIBS" + +KDE_PRINT_QT_PROGRAM + +if AC_TRY_EVAL(ac_link) && test -s conftest; then + rm -f conftest* +else + echo "configure: failed program was:" >&AC_FD_CC + cat conftest.$ac_ext >&AC_FD_CC + ac_qt_libraries="NO" +fi +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +AC_LANG_RESTORE +if test "$ac_qt_includes" = NO || test "$ac_qt_libraries" = NO; then + ac_cv_have_qt="have_qt=no" + ac_qt_notfound="" + missing_qt_mt="" + if test "$ac_qt_includes" = NO; then + if test "$ac_qt_libraries" = NO; then + ac_qt_notfound="(headers and libraries)"; + else + ac_qt_notfound="(headers)"; + fi + else + if test "x$kde_use_qt_mt" = "xyes"; then + missing_qt_mt=" +Make sure that you have compiled Qt with thread support!" + ac_qt_notfound="(library $qtlib-mt)"; + else + ac_qt_notfound="(library $qtlib)"; + fi + fi + + AC_MSG_ERROR([Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation! +For more details about this problem, look at the end of config.log.$missing_qt_mt]) +else + have_qt="yes" +fi +]) + +eval "$ac_cv_have_qt" + +if test "$have_qt" != yes; then + AC_MSG_RESULT([$have_qt]); +else + ac_cv_have_qt="have_qt=yes \ + ac_qt_includes=$ac_qt_includes ac_qt_libraries=$ac_qt_libraries" + AC_MSG_RESULT([libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT]) + + qt_libraries="$ac_qt_libraries" + qt_includes="$ac_qt_includes" +fi + +if test ! "$kde_qt_libs_given" = "yes" && test ! "$kde_qtver" = 3; then + KDE_CHECK_QT_DIRECT(qt_libraries= ,[]) +fi + +AC_SUBST(qt_libraries) +AC_SUBST(qt_includes) + +if test "$qt_includes" = "$x_includes" || test -z "$qt_includes"; then + QT_INCLUDES="" +else + QT_INCLUDES="-I$qt_includes" + all_includes="$QT_INCLUDES $all_includes" +fi + +if test "$qt_libraries" = "$x_libraries" || test -z "$qt_libraries"; then + QT_LDFLAGS="" +else + QT_LDFLAGS="-L$qt_libraries" + all_libraries="$QT_LDFLAGS $all_libraries" +fi +test -z "$KDE_MT_LDFLAGS" || all_libraries="$all_libraries $KDE_MT_LDFLAGS" + +AC_SUBST(QT_INCLUDES) +AC_SUBST(QT_LDFLAGS) +AC_PATH_QT_MOC_UIC + +KDE_CHECK_QT_JPEG + +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM)' +else +LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG)' +fi +test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS" +for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do + if test -e "$a"; then + LIB_QT="$LIB_QT ${kde_int_qt}_incremental" + break + fi +done + +AC_SUBST(LIB_QT) +AC_SUBST(LIB_QPE) + +AC_SUBST(kde_qtver) +]) + +AC_DEFUN([AC_PATH_QT], +[ +AC_PATH_QT_1_3 +]) + +AC_DEFUN([KDE_CHECK_UIC_PLUGINS], +[ +AC_REQUIRE([AC_PATH_QT_MOC_UIC]) + +if test x$ac_uic_supports_libpath = xyes; then + +AC_MSG_CHECKING([if UIC has KDE plugins available]) +AC_CACHE_VAL(kde_cv_uic_plugins, +[ +cat > actest.ui << EOF + +NewConnectionDialog + + + + testInput + + + + +EOF + + + +kde_cv_uic_plugins=no +kde_line="$UIC_PATH -L $kde_widgetdir" +if test x$ac_uic_supports_nounload = xyes; then + kde_line="$kde_line -nounload" +fi +kde_line="$kde_line -impl actest.h actest.ui > actest.cpp" +if AC_TRY_EVAL(kde_line); then + # if you're trying to debug this check and think it's incorrect, + # better check your installation. The check _is_ correct - your + # installation is not. + if test -f actest.cpp && grep klineedit actest.cpp > /dev/null; then + kde_cv_uic_plugins=yes + fi +fi +rm -f actest.ui actest.cpp +]) + +AC_MSG_RESULT([$kde_cv_uic_plugins]) +if test "$kde_cv_uic_plugins" != yes; then + AC_MSG_ERROR([ +you need to install kdelibs first. + +If you did install kdelibs, then the Qt version that is picked up by +this configure is not the same version you used to compile kdelibs. +The Qt Plugin installed by kdelibs is *ONLY* loadable if its the +same Qt version, compiled with the same compiler and the same Qt +configuration settings. +]) +fi +fi +]) + +AC_DEFUN([KDE_CHECK_FINAL], +[ + AC_ARG_ENABLE(final, + AC_HELP_STRING([--enable-final], + [build size optimized apps (experimental - needs lots of memory)]), + kde_use_final=$enableval, kde_use_final=no) + + if test "x$kde_use_final" = "xyes"; then + KDE_USE_FINAL_TRUE="" + KDE_USE_FINAL_FALSE="#" + else + KDE_USE_FINAL_TRUE="#" + KDE_USE_FINAL_FALSE="" + fi + AC_SUBST(KDE_USE_FINAL_TRUE) + AC_SUBST(KDE_USE_FINAL_FALSE) +]) + +AC_DEFUN([KDE_CHECK_CLOSURE], +[ + AC_ARG_ENABLE(closure, + AC_HELP_STRING([--enable-closure],[delay template instantiation]), + kde_use_closure=$enableval, kde_use_closure=no) + + KDE_NO_UNDEFINED="" + if test "x$kde_use_closure" = "xyes"; then + KDE_USE_CLOSURE_TRUE="" + KDE_USE_CLOSURE_FALSE="#" +# CXXFLAGS="$CXXFLAGS $REPO" + else + KDE_USE_CLOSURE_TRUE="#" + KDE_USE_CLOSURE_FALSE="" + KDE_NO_UNDEFINED="" + case $host in + *-*-linux-gnu) + KDE_CHECK_COMPILER_FLAG([Wl,--no-undefined], + [KDE_CHECK_COMPILER_FLAG([Wl,--allow-shlib-undefined], + [KDE_NO_UNDEFINED="-Wl,--no-undefined -Wl,--allow-shlib-undefined"], + [KDE_NO_UNDEFINED=""])], + [KDE_NO_UNDEFINED=""]) + ;; + esac + fi + AC_SUBST(KDE_USE_CLOSURE_TRUE) + AC_SUBST(KDE_USE_CLOSURE_FALSE) + AC_SUBST(KDE_NO_UNDEFINED) +]) + +dnl Check if the linker supports --enable-new-dtags and --as-needed +AC_DEFUN([KDE_CHECK_NEW_LDFLAGS], +[ + AC_ARG_ENABLE(new_ldflags, + AC_HELP_STRING([--enable-new-ldflags], + [enable the new linker flags]), + kde_use_new_ldflags=$enableval, + kde_use_new_ldflags=no) + + LDFLAGS_AS_NEEDED="" + LDFLAGS_NEW_DTAGS="" + if test "x$kde_use_new_ldflags" = "xyes"; then + LDFLAGS_NEW_DTAGS="" + KDE_CHECK_COMPILER_FLAG([Wl,--enable-new-dtags], + [LDFLAGS_NEW_DTAGS="-Wl,--enable-new-dtags"],) + + KDE_CHECK_COMPILER_FLAG([Wl,--as-needed], + [LDFLAGS_AS_NEEDED="-Wl,--as-needed"],) + fi + AC_SUBST(LDFLAGS_AS_NEEDED) + AC_SUBST(LDFLAGS_NEW_DTAGS) +]) + +AC_DEFUN([KDE_CHECK_NMCHECK], +[ + AC_ARG_ENABLE(nmcheck,AC_HELP_STRING([--enable-nmcheck],[enable automatic namespace cleanness check]), + kde_use_nmcheck=$enableval, kde_use_nmcheck=no) + + if test "$kde_use_nmcheck" = "yes"; then + KDE_USE_NMCHECK_TRUE="" + KDE_USE_NMCHECK_FALSE="#" + else + KDE_USE_NMCHECK_TRUE="#" + KDE_USE_NMCHECK_FALSE="" + fi + AC_SUBST(KDE_USE_NMCHECK_TRUE) + AC_SUBST(KDE_USE_NMCHECK_FALSE) +]) + +AC_DEFUN([KDE_EXPAND_MAKEVAR], [ +savex=$exec_prefix +test "x$exec_prefix" = xNONE && exec_prefix=$prefix +tmp=$$2 +while $1=`eval echo "$tmp"`; test "x$$1" != "x$tmp"; do tmp=$$1; done +exec_prefix=$savex +]) + +dnl ------------------------------------------------------------------------ +dnl Now, the same with KDE +dnl $(KDE_LDFLAGS) will be the kdeliblocation (if needed) +dnl and $(kde_includes) will be the kdehdrlocation (if needed) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_BASE_PATH_KDE], +[ +AC_REQUIRE([KDE_CHECK_STL]) +AC_REQUIRE([AC_PATH_QT])dnl +AC_REQUIRE([KDE_CHECK_LIB64]) + +AC_CHECK_RPATH +AC_MSG_CHECKING([for KDE]) + +if test "${prefix}" != NONE; then + kde_includes=${includedir} + KDE_EXPAND_MAKEVAR(ac_kde_includes, includedir) + + kde_libraries=${libdir} + KDE_EXPAND_MAKEVAR(ac_kde_libraries, libdir) + +else + ac_kde_includes= + ac_kde_libraries= + kde_libraries="" + kde_includes="" +fi + +AC_CACHE_VAL(ac_cv_have_kde, +[#try to guess kde locations + +if test "$kde_qtver" = 1; then + kde_check_header="ksock.h" + kde_check_lib="libkdecore.la" +else + kde_check_header="ksharedptr.h" + kde_check_lib="libkio.la" +fi + +if test -z "$1"; then + +kde_incdirs="$kde_libs_prefix/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes $qt_includes" +test -n "$KDEDIR" && kde_incdirs="$KDEDIR/include $KDEDIR/include/kde $KDEDIR $kde_incdirs" +kde_incdirs="$ac_kde_includes $kde_incdirs" +AC_FIND_FILE($kde_check_header, $kde_incdirs, kde_incdir) +ac_kde_includes="$kde_incdir" + +if test -n "$ac_kde_includes" && test ! -r "$ac_kde_includes/$kde_check_header"; then + AC_MSG_ERROR([ +in the prefix, you've chosen, are no KDE headers installed. This will fail. +So, check this please and use another prefix!]) +fi + +kde_libdirs="$kde_libs_prefix/lib${kdelibsuff} /usr/lib/kde/lib${kdelibsuff} /usr/local/kde/lib${kdelibsuff} /usr/kde/lib${kdelibsuff} /usr/lib${kdelibsuff}/kde /usr/lib${kdelibsuff}/kde3 /usr/lib${kdelibsuff} /usr/X11R6/lib${kdelibsuff} /usr/local/lib${kdelibsuff} /opt/kde3/lib${kdelibsuff} /opt/kde/lib${kdelibsuff} /usr/X11R6/kde/lib${kdelibsuff}" +test -n "$KDEDIR" && kde_libdirs="$KDEDIR/lib${kdelibsuff} $KDEDIR $kde_libdirs" +kde_libdirs="$ac_kde_libraries $libdir $kde_libdirs" +AC_FIND_FILE($kde_check_lib, $kde_libdirs, kde_libdir) +ac_kde_libraries="$kde_libdir" + +kde_widgetdir=NO +dnl this might be somewhere else +AC_FIND_FILE("kde3/plugins/designer/kdewidgets.la", $kde_libdirs, kde_widgetdir) + +if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then +AC_MSG_ERROR([ +in the prefix, you've chosen, are no KDE libraries installed. This will fail. +So, check this please and use another prefix!]) +fi + +if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/kde3/plugins/designer/kdewidgets.la"; then +AC_MSG_ERROR([ +I can't find the designer plugins. These are required and should have been installed +by kdelibs]) +fi + +if test -n "$kde_widgetdir"; then + kde_widgetdir="$kde_widgetdir/kde3/plugins/designer" +fi + + +if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO || test "$kde_widgetdir" = NO; then + ac_cv_have_kde="have_kde=no" +else + ac_cv_have_kde="have_kde=yes \ + ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries" +fi + +else dnl test -z $1, e.g. from kdelibs + + ac_cv_have_kde="have_kde=no" + +fi +])dnl + +eval "$ac_cv_have_kde" + +if test "$have_kde" != "yes"; then + if test "${prefix}" = NONE; then + ac_kde_prefix="$ac_default_prefix" + else + ac_kde_prefix="$prefix" + fi + if test "$exec_prefix" = NONE; then + ac_kde_exec_prefix="$ac_kde_prefix" + AC_MSG_RESULT([will be installed in $ac_kde_prefix]) + else + ac_kde_exec_prefix="$exec_prefix" + AC_MSG_RESULT([will be installed in $ac_kde_prefix and $ac_kde_exec_prefix]) + fi + + kde_libraries="${libdir}" + kde_includes="${includedir}" + +else + ac_cv_have_kde="have_kde=yes \ + ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries" + AC_MSG_RESULT([libraries $ac_kde_libraries, headers $ac_kde_includes]) + + kde_libraries="$ac_kde_libraries" + kde_includes="$ac_kde_includes" +fi +AC_SUBST(kde_libraries) +AC_SUBST(kde_includes) + +if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then + KDE_INCLUDES="" +else + KDE_INCLUDES="-I$kde_includes" + all_includes="$KDE_INCLUDES $all_includes" +fi + +KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION" + +KDE_LDFLAGS="-L$kde_libraries" +if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then + all_libraries="$KDE_LDFLAGS $all_libraries" +fi + +AC_SUBST(KDE_LDFLAGS) +AC_SUBST(KDE_INCLUDES) + +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + +all_libraries="$all_libraries $USER_LDFLAGS" +all_includes="$all_includes $USER_INCLUDES" +AC_SUBST(all_includes) +AC_SUBST(all_libraries) + +if test -z "$1"; then +KDE_CHECK_UIC_PLUGINS +fi + +ac_kde_libraries="$kde_libdir" + +AC_SUBST(AUTODIRS) + + +]) + +AC_DEFUN([KDE_CHECK_EXTRA_LIBS], +[ +AC_MSG_CHECKING(for extra includes) +AC_ARG_WITH(extra-includes,AC_HELP_STRING([--with-extra-includes=DIR],[adds non standard include paths]), + kde_use_extra_includes="$withval", + kde_use_extra_includes=NONE +) +kde_extra_includes= +if test -n "$kde_use_extra_includes" && \ + test "$kde_use_extra_includes" != "NONE"; then + + ac_save_ifs=$IFS + IFS=':' + for dir in $kde_use_extra_includes; do + kde_extra_includes="$kde_extra_includes $dir" + USER_INCLUDES="$USER_INCLUDES -I$dir" + done + IFS=$ac_save_ifs + kde_use_extra_includes="added" +else + kde_use_extra_includes="no" +fi +AC_SUBST(USER_INCLUDES) + +AC_MSG_RESULT($kde_use_extra_includes) + +kde_extra_libs= +AC_MSG_CHECKING(for extra libs) +AC_ARG_WITH(extra-libs,AC_HELP_STRING([--with-extra-libs=DIR],[adds non standard library paths]), + kde_use_extra_libs=$withval, + kde_use_extra_libs=NONE +) +if test -n "$kde_use_extra_libs" && \ + test "$kde_use_extra_libs" != "NONE"; then + + ac_save_ifs=$IFS + IFS=':' + for dir in $kde_use_extra_libs; do + kde_extra_libs="$kde_extra_libs $dir" + KDE_EXTRA_RPATH="$KDE_EXTRA_RPATH -R $dir" + USER_LDFLAGS="$USER_LDFLAGS -L$dir" + done + IFS=$ac_save_ifs + kde_use_extra_libs="added" +else + kde_use_extra_libs="no" +fi + +AC_SUBST(USER_LDFLAGS) + +AC_MSG_RESULT($kde_use_extra_libs) + +]) + +AC_DEFUN([KDE_1_CHECK_PATH_HEADERS], +[ + AC_MSG_CHECKING([for KDE headers installed]) + AC_LANG_SAVE + AC_LANG_CPLUSPLUS +cat > conftest.$ac_ext < +#endif +#include +#include "confdefs.h" +#include + +int main() { + printf("kde_htmldir=\\"%s\\"\n", KApplication::kde_htmldir().data()); + printf("kde_appsdir=\\"%s\\"\n", KApplication::kde_appsdir().data()); + printf("kde_icondir=\\"%s\\"\n", KApplication::kde_icondir().data()); + printf("kde_sounddir=\\"%s\\"\n", KApplication::kde_sounddir().data()); + printf("kde_datadir=\\"%s\\"\n", KApplication::kde_datadir().data()); + printf("kde_locale=\\"%s\\"\n", KApplication::kde_localedir().data()); + printf("kde_cgidir=\\"%s\\"\n", KApplication::kde_cgidir().data()); + printf("kde_confdir=\\"%s\\"\n", KApplication::kde_configdir().data()); + printf("kde_mimedir=\\"%s\\"\n", KApplication::kde_mimedir().data()); + printf("kde_toolbardir=\\"%s\\"\n", KApplication::kde_toolbardir().data()); + printf("kde_wallpaperdir=\\"%s\\"\n", + KApplication::kde_wallpaperdir().data()); + printf("kde_bindir=\\"%s\\"\n", KApplication::kde_bindir().data()); + printf("kde_partsdir=\\"%s\\"\n", KApplication::kde_partsdir().data()); + printf("kde_servicesdir=\\"/tmp/dummy\\"\n"); + printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n"); + printf("kde_moduledir=\\"/tmp/dummy\\"\n"); + printf("kde_styledir=\\"/tmp/dummy\\"\n"); + printf("kde_widgetdir=\\"/tmp/dummy\\"\n"); + printf("xdg_appsdir=\\"/tmp/dummy\\"\n"); + printf("xdg_menudir=\\"/tmp/dummy\\"\n"); + printf("xdg_directorydir=\\"/tmp/dummy\\"\n"); + printf("kde_kcfgdir=\\"/tmp/dummy\\"\n"); + return 0; + } +EOF + + ac_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$all_includes $CPPFLAGS" + if AC_TRY_EVAL(ac_compile); then + AC_MSG_RESULT(yes) + else + AC_MSG_ERROR([your system is not able to compile a small KDE application! +Check, if you installed the KDE header files correctly. +For more details about this problem, look at the end of config.log.]) + fi + CPPFLAGS=$ac_save_CPPFLAGS + + AC_LANG_RESTORE +]) + +AC_DEFUN([KDE_CHECK_KDEQTADDON], +[ +AC_MSG_CHECKING(for kde-qt-addon) +AC_CACHE_VAL(kde_cv_have_kdeqtaddon, +[ + kde_ldflags_safe="$LDFLAGS" + kde_libs_safe="$LIBS" + kde_cxxflags_safe="$CXXFLAGS" + + LIBS="-lkde-qt-addon $LIBQT $LIBS" + CXXFLAGS="$CXXFLAGS -I$prefix/include -I$prefix/include/kde $all_includes" + LDFLAGS="$LDFLAGS $all_libraries $USER_LDFLAGS" + + AC_TRY_LINK([ + #include + ], + [ + QDomDocument doc; + ], + kde_cv_have_kdeqtaddon=yes, + kde_cv_have_kdeqtaddon=no + ) + + LDFLAGS=$kde_ldflags_safe + LIBS=$kde_libs_safe + CXXFLAGS=$kde_cxxflags_safe +]) + +AC_MSG_RESULT($kde_cv_have_kdeqtaddon) + +if test "$kde_cv_have_kdeqtaddon" = "no"; then + AC_MSG_ERROR([Can't find libkde-qt-addon. You need to install it first. +It is a separate package (and CVS module) named kde-qt-addon.]) +fi +]) + +AC_DEFUN([KDE_CREATE_LIBS_ALIASES], +[ + AC_REQUIRE([KDE_MISC_TESTS]) + AC_REQUIRE([KDE_CHECK_LIBDL]) + AC_REQUIRE([K_PATH_X]) + +if test $kde_qtver = 3; then + AC_SUBST(LIB_KDECORE, "-lkdecore") + AC_SUBST(LIB_KDEUI, "-lkdeui") + AC_SUBST(LIB_KIO, "-lkio") + AC_SUBST(LIB_KJS, "-lkjs") + AC_SUBST(LIB_SMB, "-lsmb") + AC_SUBST(LIB_KAB, "-lkab") + AC_SUBST(LIB_KABC, "-lkabc") + AC_SUBST(LIB_KHTML, "-lkhtml") + AC_SUBST(LIB_KSPELL, "-lkspell") + AC_SUBST(LIB_KPARTS, "-lkparts") + AC_SUBST(LIB_KDEPRINT, "-lkdeprint") + AC_SUBST(LIB_KUTILS, "-lkutils") + AC_SUBST(LIB_KDEPIM, "-lkdepim") + AC_SUBST(LIB_KIMPROXY, "-lkimproxy") + AC_SUBST(LIB_KNEWSTUFF, "-lknewstuff") + AC_SUBST(LIB_KDNSSD, "-lkdnssd") +# these are for backward compatibility + AC_SUBST(LIB_KSYCOCA, "-lkio") + AC_SUBST(LIB_KFILE, "-lkio") +elif test $kde_qtver = 2; then + AC_SUBST(LIB_KDECORE, "-lkdecore") + AC_SUBST(LIB_KDEUI, "-lkdeui") + AC_SUBST(LIB_KIO, "-lkio") + AC_SUBST(LIB_KSYCOCA, "-lksycoca") + AC_SUBST(LIB_SMB, "-lsmb") + AC_SUBST(LIB_KFILE, "-lkfile") + AC_SUBST(LIB_KAB, "-lkab") + AC_SUBST(LIB_KHTML, "-lkhtml") + AC_SUBST(LIB_KSPELL, "-lkspell") + AC_SUBST(LIB_KPARTS, "-lkparts") + AC_SUBST(LIB_KDEPRINT, "-lkdeprint") +else + AC_SUBST(LIB_KDECORE, "-lkdecore -lXext $(LIB_QT)") + AC_SUBST(LIB_KDEUI, "-lkdeui $(LIB_KDECORE)") + AC_SUBST(LIB_KFM, "-lkfm $(LIB_KDECORE)") + AC_SUBST(LIB_KFILE, "-lkfile $(LIB_KFM) $(LIB_KDEUI)") + AC_SUBST(LIB_KAB, "-lkab $(LIB_KIMGIO) $(LIB_KDECORE)") +fi +]) + +AC_DEFUN([AC_PATH_KDE], +[ + AC_BASE_PATH_KDE + AC_ARG_ENABLE(path-check,AC_HELP_STRING([--disable-path-check],[don't try to find out, where to install]), + [ + if test "$enableval" = "no"; + then ac_use_path_checking="default" + else ac_use_path_checking="" + fi + ], + [ + if test "$kde_qtver" = 1; + then ac_use_path_checking="" + else ac_use_path_checking="default" + fi + ] + ) + + AC_CREATE_KFSSTND($ac_use_path_checking) + + AC_SUBST_KFSSTND + KDE_CREATE_LIBS_ALIASES +]) + +dnl KDE_CHECK_FUNC_EXT(, [headers], [sample-use], [C prototype], [autoheader define], [call if found]) +AC_DEFUN([KDE_CHECK_FUNC_EXT], +[ +AC_MSG_CHECKING(for $1) +AC_CACHE_VAL(kde_cv_func_$1, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +save_CXXFLAGS="$CXXFLAGS" +kde_safe_LIBS="$LIBS" +LIBS="$LIBS $X_EXTRA_LIBS" +if test "$GXX" = "yes"; then +CXXFLAGS="$CXXFLAGS -pedantic-errors" +fi +AC_TRY_COMPILE([ +$2 +], +[ +$3 +], +kde_cv_func_$1=yes, +kde_cv_func_$1=no) +CXXFLAGS="$save_CXXFLAGS" +LIBS="$kde_safe_LIBS" +AC_LANG_RESTORE +]) + +AC_MSG_RESULT($kde_cv_func_$1) + +AC_MSG_CHECKING([if $1 needs custom prototype]) +AC_CACHE_VAL(kde_cv_proto_$1, +[ +if test "x$kde_cv_func_$1" = xyes; then + kde_cv_proto_$1=no +else + case "$1" in + setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat) + kde_cv_proto_$1="yes - in libkdefakes" + ;; + *) + kde_cv_proto_$1=unknown + ;; + esac +fi + +if test "x$kde_cv_proto_$1" = xunknown; then + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + kde_safe_libs=$LIBS + LIBS="$LIBS $X_EXTRA_LIBS" + AC_TRY_LINK([ +$2 + +extern "C" $4; +], +[ +$3 +], +[ kde_cv_func_$1=yes + kde_cv_proto_$1=yes ], + [kde_cv_proto_$1="$1 unavailable"] +) +LIBS=$kde_safe_libs +AC_LANG_RESTORE +fi +]) +AC_MSG_RESULT($kde_cv_proto_$1) + +if test "x$kde_cv_func_$1" = xyes; then + AC_DEFINE(HAVE_$5, 1, [Define if you have $1]) + $6 +fi +if test "x$kde_cv_proto_$1" = xno; then + AC_DEFINE(HAVE_$5_PROTO, 1, + [Define if you have the $1 prototype]) +fi + +AH_VERBATIM([_HAVE_$5_PROTO], +[ +#if !defined(HAVE_$5_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +$4; +#ifdef __cplusplus +} +#endif +#endif +]) +]) + +AC_DEFUN([AC_CHECK_SETENV], +[ + KDE_CHECK_FUNC_EXT(setenv, [ +#include +], + [setenv("VAR", "VALUE", 1);], + [int setenv (const char *, const char *, int)], + [SETENV]) +]) + +AC_DEFUN([AC_CHECK_UNSETENV], +[ + KDE_CHECK_FUNC_EXT(unsetenv, [ +#include +], + [unsetenv("VAR");], + [void unsetenv (const char *)], + [UNSETENV]) +]) + +AC_DEFUN([AC_CHECK_GETDOMAINNAME], +[ + KDE_CHECK_FUNC_EXT(getdomainname, [ +#include +#include +#include +], + [ +char buffer[200]; +getdomainname(buffer, 200); +], + [#include + int getdomainname (char *, size_t)], + [GETDOMAINNAME]) +]) + +AC_DEFUN([AC_CHECK_GETHOSTNAME], +[ + KDE_CHECK_FUNC_EXT(gethostname, [ +#include +#include +], + [ +char buffer[200]; +gethostname(buffer, 200); +], + [int gethostname (char *, unsigned int)], + [GETHOSTNAME]) +]) + +AC_DEFUN([AC_CHECK_USLEEP], +[ + KDE_CHECK_FUNC_EXT(usleep, [ +#include +], + [ +usleep(200); +], + [int usleep (unsigned int)], + [USLEEP]) +]) + + +AC_DEFUN([AC_CHECK_RANDOM], +[ + KDE_CHECK_FUNC_EXT(random, [ +#include +], + [ +random(); +], + [long int random(void)], + [RANDOM]) + + KDE_CHECK_FUNC_EXT(srandom, [ +#include +], + [ +srandom(27); +], + [void srandom(unsigned int)], + [SRANDOM]) + +]) + +AC_DEFUN([AC_CHECK_INITGROUPS], +[ + KDE_CHECK_FUNC_EXT(initgroups, [ +#include +#include +#include +], + [ +char buffer[200]; +initgroups(buffer, 27); +], + [int initgroups(const char *, gid_t)], + [INITGROUPS]) +]) + +AC_DEFUN([AC_CHECK_MKSTEMPS], +[ + KDE_CHECK_FUNC_EXT(mkstemps, [ +#include +#include +], + [ +mkstemps("/tmp/aaaXXXXXX", 6); +], + [int mkstemps(char *, int)], + [MKSTEMPS]) +]) + +AC_DEFUN([AC_CHECK_MKSTEMP], +[ + KDE_CHECK_FUNC_EXT(mkstemp, [ +#include +#include +], + [ +mkstemp("/tmp/aaaXXXXXX"); +], + [int mkstemp(char *)], + [MKSTEMP]) +]) + +AC_DEFUN([AC_CHECK_MKDTEMP], +[ + KDE_CHECK_FUNC_EXT(mkdtemp, [ +#include +#include +], + [ +mkdtemp("/tmp/aaaXXXXXX"); +], + [char *mkdtemp(char *)], + [MKDTEMP]) +]) + + +AC_DEFUN([AC_CHECK_RES_INIT], +[ + AC_MSG_CHECKING([if res_init needs -lresolv]) + kde_libs_safe="$LIBS" + LIBS="$LIBS $X_EXTRA_LIBS -lresolv" + AC_TRY_LINK( + [ +#include +#include +#include +#include + ], + [ + res_init(); + ], + [ + LIBRESOLV="-lresolv" + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function]) + ], + [ AC_MSG_RESULT(no) ] + ) + LIBS=$kde_libs_safe + AC_SUBST(LIBRESOLV) + + KDE_CHECK_FUNC_EXT(res_init, + [ +#include +#include +#include +#include + ], + [res_init()], + [int res_init(void)], + [RES_INIT]) +]) + +AC_DEFUN([AC_CHECK_STRLCPY], +[ + KDE_CHECK_FUNC_EXT(strlcpy, [ +#include +], +[ char buf[20]; + strlcpy(buf, "KDE function test", sizeof(buf)); +], + [unsigned long strlcpy(char*, const char*, unsigned long)], + [STRLCPY]) +]) + +AC_DEFUN([AC_CHECK_STRLCAT], +[ + KDE_CHECK_FUNC_EXT(strlcat, [ +#include +], +[ char buf[20]; + buf[0]='\0'; + strlcat(buf, "KDE function test", sizeof(buf)); +], + [unsigned long strlcat(char*, const char*, unsigned long)], + [STRLCAT]) +]) + +AC_DEFUN([AC_CHECK_RES_QUERY], +[ + KDE_CHECK_FUNC_EXT(res_query, [ +#include +#include +#include +#include +#include +], +[ +res_query(NULL, 0, 0, NULL, 0); +], + [int res_query(const char *, int, int, unsigned char *, int)], + [RES_QUERY]) +]) + +AC_DEFUN([AC_CHECK_DN_SKIPNAME], +[ + KDE_CHECK_FUNC_EXT(dn_skipname, [ +#include +#include +#include +#include +], +[ +dn_skipname (NULL, NULL); +], + [int dn_skipname (unsigned char *, unsigned char *)], + [DN_SKIPNAME]) +]) + + +AC_DEFUN([AC_FIND_GIF], + [AC_MSG_CHECKING([for giflib]) +AC_CACHE_VAL(ac_cv_lib_gif, +[ac_save_LIBS="$LIBS" +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBS="$all_libraries -lgif -lX11 $LIBSOCKET" +else +LIBS="$all_libraries -lgif" +fi +AC_TRY_LINK(dnl +[ +#ifdef __cplusplus +extern "C" { +#endif +int GifLastError(void); +#ifdef __cplusplus +} +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +], + [return GifLastError();], + eval "ac_cv_lib_gif=yes", + eval "ac_cv_lib_gif=no") +LIBS="$ac_save_LIBS" +])dnl +if eval "test \"`echo $ac_cv_lib_gif`\" = yes"; then + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED(HAVE_LIBGIF, 1, [Define if you have libgif]) +else + AC_MSG_ERROR(You need giflib30. Please install the kdesupport package) +fi +]) + +AC_DEFUN([KDE_FIND_JPEG_HELPER], +[ +AC_MSG_CHECKING([for libjpeg$2]) +AC_CACHE_VAL(ac_cv_lib_jpeg_$1, +[ +ac_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -ljpeg$2 -lm" +ac_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK( +[/* Override any gcc2 internal prototype to avoid an error. */ +struct jpeg_decompress_struct; +typedef struct jpeg_decompress_struct * j_decompress_ptr; +typedef int size_t; +#ifdef __cplusplus +extern "C" { +#endif + void jpeg_CreateDecompress(j_decompress_ptr cinfo, + int version, size_t structsize); +#ifdef __cplusplus +} +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +], + [jpeg_CreateDecompress(0L, 0, 0);], + eval "ac_cv_lib_jpeg_$1=-ljpeg$2", + eval "ac_cv_lib_jpeg_$1=no") +LIBS="$ac_save_LIBS" +CFLAGS="$ac_save_CFLAGS" +]) + +if eval "test ! \"`echo $ac_cv_lib_jpeg_$1`\" = no"; then + LIBJPEG="$ac_cv_lib_jpeg_$1" + AC_MSG_RESULT($ac_cv_lib_jpeg_$1) +else + AC_MSG_RESULT(no) + $3 +fi + +]) + +AC_DEFUN([AC_FIND_JPEG], +[ +dnl first look for libraries +KDE_FIND_JPEG_HELPER(6b, 6b, + KDE_FIND_JPEG_HELPER(normal, [], + [ + LIBJPEG= + ] + ) +) + +dnl then search the headers (can't use simply AC_TRY_xxx, as jpeglib.h +dnl requires system dependent includes loaded before it) +jpeg_incdirs="$includedir /usr/include /usr/local/include $kde_extra_includes" +AC_FIND_FILE(jpeglib.h, $jpeg_incdirs, jpeg_incdir) +test "x$jpeg_incdir" = xNO && jpeg_incdir= + +dnl if headers _and_ libraries are missing, this is no error, and we +dnl continue with a warning (the user will get no jpeg support in khtml) +dnl if only one is missing, it means a configuration error, but we still +dnl only warn +if test -n "$jpeg_incdir" && test -n "$LIBJPEG" ; then + AC_DEFINE_UNQUOTED(HAVE_LIBJPEG, 1, [Define if you have libjpeg]) +else + if test -n "$jpeg_incdir" || test -n "$LIBJPEG" ; then + AC_MSG_WARN([ +There is an installation error in jpeg support. You seem to have only one +of either the headers _or_ the libraries installed. You may need to either +provide correct --with-extra-... options, or the development package of +libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/ +Disabling JPEG support. +]) + else + AC_MSG_WARN([libjpeg not found. disable JPEG support.]) + fi + jpeg_incdir= + LIBJPEG= +fi + +AC_SUBST(LIBJPEG) +AH_VERBATIM(_AC_CHECK_JPEG, +[/* + * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system + * headers and I'm too lazy to write a configure test as long as only + * unixware is related + */ +#ifdef _UNIXWARE +#define HAVE_BOOLEAN +#endif +]) +]) + +AC_DEFUN([KDE_CHECK_QT_JPEG], +[ +if test -n "$LIBJPEG"; then +AC_MSG_CHECKING([if Qt needs $LIBJPEG]) +AC_CACHE_VAL(kde_cv_qt_jpeg, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS $LIBQT" +LIBS=`echo $LIBS | sed "s/$LIBJPEG//"` +ac_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK( +[#include ], + [ + int argc; + char** argv; + QApplication app(argc, argv);], + eval "kde_cv_qt_jpeg=no", + eval "kde_cv_qt_jpeg=yes") +LIBS="$ac_save_LIBS" +CXXFLAGS="$ac_save_CXXFLAGS" +AC_LANG_RESTORE +fi +]) + +if eval "test ! \"`echo $kde_cv_qt_jpeg`\" = no"; then + AC_MSG_RESULT(yes) + LIBJPEG_QT='$(LIBJPEG)' +else + AC_MSG_RESULT(no) + LIBJPEG_QT= +fi + +]) + +AC_DEFUN([AC_FIND_ZLIB], +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_MSG_CHECKING([for libz]) +AC_CACHE_VAL(ac_cv_lib_z, +[ +kde_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -lz $LIBSOCKET" +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK(dnl +[ +#include +], +[ + char buf[42]; + gzFile f = (gzFile) 0; + /* this would segfault.. but we only link, don't run */ + (void) gzgets(f, buf, sizeof(buf)); + + return (zlibVersion() == ZLIB_VERSION); +], + eval "ac_cv_lib_z='-lz'", + eval "ac_cv_lib_z=no") +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" +])dnl +if test ! "$ac_cv_lib_z" = no; then + AC_DEFINE_UNQUOTED(HAVE_LIBZ, 1, [Define if you have libz]) + LIBZ="$ac_cv_lib_z" + AC_MSG_RESULT($ac_cv_lib_z) +else + AC_MSG_ERROR(not found. + Possibly configure picks up an outdated version + installed by XFree86. Remove it from your system. + + Check your installation and look into config.log) + LIBZ="" +fi +AC_SUBST(LIBZ) +]) + +AC_DEFUN([KDE_TRY_TIFFLIB], +[ +AC_MSG_CHECKING([for libtiff $1]) + +AC_CACHE_VAL(kde_cv_libtiff_$1, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +kde_save_LIBS="$LIBS" +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lX11 $LIBSOCKET -lm" +else +LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lm" +fi +kde_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" + +AC_TRY_LINK(dnl +[ +#include +], + [return (TIFFOpen( "", "r") == 0); ], +[ + kde_cv_libtiff_$1="-l$1 $LIBJPEG $LIBZ" +], [ + kde_cv_libtiff_$1=no +]) + +LIBS="$kde_save_LIBS" +CXXFLAGS="$kde_save_CXXFLAGS" +AC_LANG_RESTORE +]) + +if test "$kde_cv_libtiff_$1" = "no"; then + AC_MSG_RESULT(no) + LIBTIFF="" + $3 +else + LIBTIFF="$kde_cv_libtiff_$1" + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED(HAVE_LIBTIFF, 1, [Define if you have libtiff]) + $2 +fi + +]) + +AC_DEFUN([AC_FIND_TIFF], +[ +AC_REQUIRE([K_PATH_X]) +AC_REQUIRE([AC_FIND_ZLIB]) +AC_REQUIRE([AC_FIND_JPEG]) +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + +KDE_TRY_TIFFLIB(tiff, [], + KDE_TRY_TIFFLIB(tiff34)) + +AC_SUBST(LIBTIFF) +]) + + +AC_DEFUN([AC_FIND_PNG], +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_REQUIRE([AC_FIND_ZLIB]) +AC_MSG_CHECKING([for libpng]) +AC_CACHE_VAL(ac_cv_lib_png, +[ +kde_save_LIBS="$LIBS" +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET" +else +LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm" +fi +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" + +AC_TRY_LINK(dnl + [ + #include + ], + [ + png_structp png_ptr = png_create_read_struct( /* image ptr */ + PNG_LIBPNG_VER_STRING, 0, 0, 0 ); + return( png_ptr != 0 ); + ], + eval "ac_cv_lib_png='-lpng $LIBZ -lm'", + eval "ac_cv_lib_png=no" +) +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" +])dnl +if eval "test ! \"`echo $ac_cv_lib_png`\" = no"; then + AC_DEFINE_UNQUOTED(HAVE_LIBPNG, 1, [Define if you have libpng]) + LIBPNG="$ac_cv_lib_png" + AC_SUBST(LIBPNG) + AC_MSG_RESULT($ac_cv_lib_png) +else + AC_MSG_RESULT(no) + LIBPNG="" + AC_SUBST(LIBPNG) +fi +]) + + +AC_DEFUN([AC_FIND_JASPER], +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_REQUIRE([AC_FIND_JPEG]) +AC_MSG_CHECKING([for jasper]) +AC_CACHE_VAL(ac_cv_jasper, +[ +kde_save_LIBS="$LIBS" +LIBS="$LIBS $all_libraries $USER_LDFLAGS -ljasper $LIBJPEG -lm" +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" + +AC_TRY_LINK(dnl + [ + #include + ], + [ + return( jas_init() ); + ], + eval "ac_cv_jasper='-ljasper $LIBJPEG -lm'", + eval "ac_cv_jasper=no" +) +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" +])dnl +if eval "test ! \"`echo $ac_cv_jasper`\" = no"; then + AC_DEFINE_UNQUOTED(HAVE_JASPER, 1, [Define if you have jasper]) + LIB_JASPER="$ac_cv_jasper" + AC_MSG_RESULT($ac_cv_jasper) +else + AC_MSG_RESULT(no) + LIB_JASPER="" +fi +AC_SUBST(LIB_JASPER) +]) + +AC_DEFUN([AC_CHECK_BOOL], +[ + AC_DEFINE_UNQUOTED(HAVE_BOOL, 1, [You _must_ have bool]) +]) + +AC_DEFUN([AC_CHECK_GNU_EXTENSIONS], +[ +AC_MSG_CHECKING(if you need GNU extensions) +AC_CACHE_VAL(ac_cv_gnu_extensions, +[ +cat > conftest.c << EOF +#include + +#ifdef __GNU_LIBRARY__ +yes +#endif +EOF + +if (eval "$ac_cpp conftest.c") 2>&5 | + egrep "yes" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_gnu_extensions=yes +else + ac_cv_gnu_extensions=no +fi +]) + +AC_MSG_RESULT($ac_cv_gnu_extensions) +if test "$ac_cv_gnu_extensions" = "yes"; then + AC_DEFINE_UNQUOTED(_GNU_SOURCE, 1, [Define if you need to use the GNU extensions]) +fi +]) + +AC_DEFUN([KDE_CHECK_COMPILER_FLAG], +[ +AC_MSG_CHECKING([whether $CXX supports -$1]) +kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'` +AC_CACHE_VAL(kde_cv_prog_cxx_$kde_cache, +[ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -$1" + AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cxx_$kde_cache=yes"], []) + CXXFLAGS="$save_CXXFLAGS" + AC_LANG_RESTORE +]) +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + AC_MSG_RESULT(yes) + : + $2 +else + AC_MSG_RESULT(no) + : + $3 +fi +]) + +AC_DEFUN([KDE_CHECK_C_COMPILER_FLAG], +[ +AC_MSG_CHECKING([whether $CC supports -$1]) +kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'` +AC_CACHE_VAL(kde_cv_prog_cc_$kde_cache, +[ + AC_LANG_SAVE + AC_LANG_C + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -$1" + AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cc_$kde_cache=yes"], []) + CFLAGS="$save_CFLAGS" + AC_LANG_RESTORE +]) +if eval "test \"`echo '$kde_cv_prog_cc_'$kde_cache`\" = yes"; then + AC_MSG_RESULT(yes) + : + $2 +else + AC_MSG_RESULT(no) + : + $3 +fi +]) + + +dnl AC_REMOVE_FORBIDDEN removes forbidden arguments from variables +dnl use: AC_REMOVE_FORBIDDEN(CC, [-forbid -bad-option whatever]) +dnl it's all white-space separated +AC_DEFUN([AC_REMOVE_FORBIDDEN], +[ __val=$$1 + __forbid=" $2 " + if test -n "$__val"; then + __new="" + ac_save_IFS=$IFS + IFS=" " + for i in $__val; do + case "$__forbid" in + *" $i "*) AC_MSG_WARN([found forbidden $i in $1, removing it]) ;; + *) # Careful to not add spaces, where there were none, because otherwise + # libtool gets confused, if we change e.g. CXX + if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;; + esac + done + IFS=$ac_save_IFS + $1=$__new + fi +]) + +dnl AC_VALIDIFY_CXXFLAGS checks for forbidden flags the user may have given +AC_DEFUN([AC_VALIDIFY_CXXFLAGS], +[dnl +if test "x$kde_use_qt_emb" != "xyes"; then + AC_REMOVE_FORBIDDEN(CXX, [-fno-rtti -rpath]) + AC_REMOVE_FORBIDDEN(CXXFLAGS, [-fno-rtti -rpath]) +else + AC_REMOVE_FORBIDDEN(CXX, [-rpath]) + AC_REMOVE_FORBIDDEN(CXXFLAGS, [-rpath]) +fi +]) + +AC_DEFUN([AC_CHECK_COMPILERS], +[ + AC_ARG_ENABLE(debug, + AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]), + [ + case $enableval in + yes) + kde_use_debug_code="yes" + kde_use_debug_define=no + ;; + full) + kde_use_debug_code="full" + kde_use_debug_define=no + ;; + *) + kde_use_debug_code="no" + kde_use_debug_define=yes + ;; + esac + ], + [kde_use_debug_code="no" + kde_use_debug_define=no + ]) + + dnl Just for configure --help + AC_ARG_ENABLE(dummyoption, + AC_HELP_STRING([--disable-debug], + [disables debug output and debug symbols [default=no]]), + [],[]) + + AC_ARG_ENABLE(strict, + AC_HELP_STRING([--enable-strict], + [compiles with strict compiler options (may not work!)]), + [ + if test $enableval = "no"; then + kde_use_strict_options="no" + else + kde_use_strict_options="yes" + fi + ], [kde_use_strict_options="no"]) + + AC_ARG_ENABLE(warnings,AC_HELP_STRING([--disable-warnings],[disables compilation with -Wall and similar]), + [ + if test $enableval = "no"; then + kde_use_warnings="no" + else + kde_use_warnings="yes" + fi + ], [kde_use_warnings="yes"]) + + dnl enable warnings for debug build + if test "$kde_use_debug_code" != "no"; then + kde_use_warnings=yes + fi + + AC_ARG_ENABLE(profile,AC_HELP_STRING([--enable-profile],[creates profiling infos [default=no]]), + [kde_use_profiling=$enableval], + [kde_use_profiling="no"] + ) + + dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS + CFLAGS=" $CFLAGS" + + AC_PROG_CC + + AC_PROG_CPP + + if test "$GCC" = "yes"; then + if test "$kde_use_debug_code" != "no"; then + if test $kde_use_debug_code = "full"; then + CFLAGS="-g3 -fno-inline $CFLAGS" + else + CFLAGS="-g -O2 $CFLAGS" + fi + else + CFLAGS="-O2 $CFLAGS" + fi + fi + + if test "$kde_use_debug_define" = "yes"; then + CFLAGS="-DNDEBUG $CFLAGS" + fi + + + case "$host" in + *-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";; + *-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";; + esac + + if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then + LDFLAGS="" + fi + + CXXFLAGS=" $CXXFLAGS" + + AC_PROG_CXX + + if test "$GXX" = "yes" || test "$CXX" = "KCC"; then + if test "$kde_use_debug_code" != "no"; then + if test "$CXX" = "KCC"; then + CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS" + else + if test "$kde_use_debug_code" = "full"; then + CXXFLAGS="-g3 -fno-inline $CXXFLAGS" + else + CXXFLAGS="-g -O2 $CXXFLAGS" + fi + fi + KDE_CHECK_COMPILER_FLAG(fno-builtin,[CXXFLAGS="-fno-builtin $CXXFLAGS"]) + + dnl convenience compiler flags + KDE_CHECK_COMPILER_FLAG(Woverloaded-virtual, [WOVERLOADED_VIRTUAL="-Woverloaded-virtual"], [WOVERLOADED_VRITUAL=""]) + AC_SUBST(WOVERLOADED_VIRTUAL) + else + if test "$CXX" = "KCC"; then + CXXFLAGS="+K3 $CXXFLAGS" + else + CXXFLAGS="-O2 $CXXFLAGS" + fi + fi + fi + + if test "$kde_use_debug_define" = "yes"; then + CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS" + fi + + if test "$kde_use_profiling" = "yes"; then + KDE_CHECK_COMPILER_FLAG(pg, + [ + CFLAGS="-pg $CFLAGS" + CXXFLAGS="-pg $CXXFLAGS" + ]) + fi + + if test "$kde_use_warnings" = "yes"; then + if test "$GCC" = "yes"; then + CXXFLAGS="-Wall -W -Wpointer-arith -Wwrite-strings $CXXFLAGS" + case $host in + *-*-linux-gnu) + CFLAGS="-std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS" + CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts $CXXFLAGS" + KDE_CHECK_COMPILER_FLAG(Wmissing-format-attribute, [CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"]) + KDE_CHECK_C_COMPILER_FLAG(Wmissing-format-attribute, [CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"]) + ;; + esac + KDE_CHECK_COMPILER_FLAG(Wundef,[CXXFLAGS="-Wundef $CXXFLAGS"]) + KDE_CHECK_COMPILER_FLAG(Wno-long-long,[CXXFLAGS="-Wno-long-long $CXXFLAGS"]) + KDE_CHECK_COMPILER_FLAG(Wnon-virtual-dtor,[CXXFLAGS="-Wnon-virtual-dtor $CXXFLAGS"]) + fi + fi + + if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then + CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS" + fi + + AC_ARG_ENABLE(pch, + AC_HELP_STRING([--enable-pch], + [enables precompiled header support (currently only KCC or gcc >=3.4+unsermake) [default=no]]), + [ kde_use_pch=$enableval ],[ kde_use_pch=no ]) + + HAVE_GCC_VISIBILITY=0 + AC_SUBST([HAVE_GCC_VISIBILITY]) + + if test "$GXX" = "yes"; then + KDE_CHECK_COMPILER_FLAG(fno-exceptions,[CXXFLAGS="$CXXFLAGS -fno-exceptions"]) + KDE_CHECK_COMPILER_FLAG(fno-check-new, [CXXFLAGS="$CXXFLAGS -fno-check-new"]) + KDE_CHECK_COMPILER_FLAG(fno-common, [CXXFLAGS="$CXXFLAGS -fno-common"]) + KDE_CHECK_COMPILER_FLAG(fexceptions, [USE_EXCEPTIONS="-fexceptions"], USE_EXCEPTIONS= ) + ENABLE_PERMISSIVE_FLAG="-fpermissive" + + if test "$kde_use_pch" = "yes"; then + AC_MSG_CHECKING(whether gcc supports precompiling c header files) + echo >conftest.h + if $CC -x c-header conftest.h >/dev/null 2>/dev/null; then + kde_gcc_supports_pch=yes + AC_MSG_RESULT(yes) + else + kde_gcc_supports_pch=no + AC_MSG_RESULT(no) + fi + if test "$kde_gcc_supports_pch" = "yes"; then + AC_MSG_CHECKING(whether gcc supports precompiling c++ header files) + if $CXX -x c++-header conftest.h >/dev/null 2>/dev/null; then + kde_gcc_supports_pch=yes + AC_MSG_RESULT(yes) + else + kde_gcc_supports_pch=no + AC_MSG_RESULT(no) + fi + fi + rm -f conftest.h conftest.h.gch + fi + fi + AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes") + if test "$CXX" = "KCC"; then + dnl unfortunately we currently cannot disable exception support in KCC + dnl because doing so is binary incompatible and Qt by default links with exceptions :-( + dnl KDE_CHECK_COMPILER_FLAG(-no_exceptions,[CXXFLAGS="$CXXFLAGS --no_exceptions"]) + dnl KDE_CHECK_COMPILER_FLAG(-exceptions, [USE_EXCEPTIONS="--exceptions"], USE_EXCEPTIONS= ) + + if test "$kde_use_pch" = "yes"; then + dnl TODO: support --pch-dir! + KDE_CHECK_COMPILER_FLAG(-pch,[CXXFLAGS="$CXXFLAGS --pch"]) + dnl the below works (but the dir must exist), but it's + dnl useless for a whole package. + dnl The are precompiled headers for each source file, so when compiling + dnl from scratch, it doesn't make a difference, and they take up + dnl around ~5Mb _per_ sourcefile. + dnl KDE_CHECK_COMPILER_FLAG(-pch_dir /tmp, + dnl [CXXFLAGS="$CXXFLAGS --pch_dir `pwd`/pcheaders"]) + fi + dnl this flag controls inlining. by default KCC inlines in optimisation mode + dnl all implementations that are defined inside the class {} declaration. + dnl because of templates-compatibility with broken gcc compilers, this + dnl can cause excessive inlining. This flag limits it to a sane level + KDE_CHECK_COMPILER_FLAG(-inline_keyword_space_time=6,[CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"]) + KDE_CHECK_COMPILER_FLAG(-inline_auto_space_time=2,[CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"]) + KDE_CHECK_COMPILER_FLAG(-inline_implicit_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"]) + KDE_CHECK_COMPILER_FLAG(-inline_generated_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"]) + dnl Some source files are shared between multiple executables + dnl (or libraries) and some of those need template instantiations. + dnl In that case KCC needs to compile those sources with + dnl --one_instantiation_per_object. To make it easy for us we compile + dnl _all_ objects with that flag (--one_per is a shorthand). + KDE_CHECK_COMPILER_FLAG(-one_per, [CXXFLAGS="$CXXFLAGS --one_per"]) + fi + AC_SUBST(USE_EXCEPTIONS) + dnl obsolete macro - provided to keep things going + USE_RTTI= + AC_SUBST(USE_RTTI) + + case "$host" in + *-*-irix*) test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;; + *-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";; + *-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";; + *-*-solaris*) + if test "$GXX" = yes; then + libstdcpp=`$CXX -print-file-name=libstdc++.so` + if test ! -f $libstdcpp; then + AC_MSG_ERROR([You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so]) + fi + fi + ;; + esac + + AC_VALIDIFY_CXXFLAGS + + AC_PROG_CXXCPP + + if test "$GCC" = yes; then + NOOPT_CFLAGS=-O0 + fi + KDE_CHECK_COMPILER_FLAG(O0,[NOOPT_CXXFLAGS=-O0]) + + AC_ARG_ENABLE(coverage, + AC_HELP_STRING([--enable-coverage],[use gcc coverage testing]), [ + if test "$am_cv_CC_dependencies_compiler_type" = "gcc3"; then + ac_coverage_compiler="-fprofile-arcs -ftest-coverage" + ac_coverage_linker="-lgcc" + elif test "$am_cv_CC_dependencies_compiler_type" = "gcc"; then + ac_coverage_compiler="-fprofile-arcs -ftest-coverage" + ac_coverage_linker="" + else + AC_MSG_ERROR([coverage with your compiler is not supported]) + fi + CFLAGS="$CFLAGS $ac_coverage_compiler" + CXXFLAGS="$CXXFLAGS $ac_coverage_compiler" + LDFLAGS="$LDFLAGS $ac_coverage_linker" + ]) + + AC_SUBST(NOOPT_CXXFLAGS) + AC_SUBST(NOOPT_CFLAGS) + AC_SUBST(ENABLE_PERMISSIVE_FLAG) + + KDE_CHECK_NEW_LDFLAGS + KDE_CHECK_FINAL + KDE_CHECK_CLOSURE + KDE_CHECK_NMCHECK + + ifdef([AM_DEPENDENCIES], AC_REQUIRE([KDE_ADD_DEPENDENCIES]), []) +]) + +AC_DEFUN([KDE_CHECK_VISIBILITY_GCC_BUG], + [ + AC_CACHE_CHECK([for gcc -fvisibility-inlines-hidden bug], kde_cv_val_gcc_visibility_bug, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + safe_CXXFLAGS=$CXXFLAGS + safe_LDFLAGS=$LDFLAGS + CXXFLAGS="$CXXFLAGS -fPIC -fvisibility-inlines-hidden -O0" + LDFLAGS="$LDFLAGS -shared -fPIC" + + AC_TRY_LINK( + [ + /* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */ + #include + int some_function( void ) __attribute__ ((visibility("default"))); + int some_function( void ) + { + std::string s("blafasel"); + return 0; + } + ], [/* elvis is alive */], + kde_cv_val_gcc_visibility_bug=no, kde_cv_val_gcc_visibility_bug=yes) + + CXXFLAGS=$safe_CXXFLAGS + LDFLAGS=$safe_LDFLAGS + AC_LANG_RESTORE + ] + ) + + if test x$kde_cv_val_gcc_visibility_bug = xno; then + CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden" + fi + ] +) + +AC_DEFUN([KDE_CHECK_AND_ADD_HIDDEN_VISIBILITY], +[ + if test "$GXX" = "yes"; then + KDE_CHECK_COMPILER_FLAG(fvisibility=hidden, + [ + CXXFLAGS="$CXXFLAGS -fvisibility=hidden" + KDE_CHECK_VISIBILITY_GCC_BUG + + HAVE_GCC_VISIBILITY=1 + AC_DEFINE_UNQUOTED(__KDE_HAVE_GCC_VISIBILITY, "$HAVE_GCC_VISIBILITY", [define to 1 if -fvisibility is supported]) + ]) + fi +]) + +AC_DEFUN([KDE_ENABLE_HIDDEN_VISIBILITY], +[ + AC_REQUIRE([KDE_CHECK_AND_ADD_HIDDEN_VISIBILITY]) +]) + +AC_DEFUN([KDE_ADD_DEPENDENCIES], +[ + [A]M_DEPENDENCIES(CC) + [A]M_DEPENDENCIES(CXX) +]) + +dnl just a wrapper to clean up configure.in +AC_DEFUN([KDE_PROG_LIBTOOL], +[ +AC_REQUIRE([AC_CHECK_COMPILERS]) +AC_REQUIRE([AC_ENABLE_SHARED]) +AC_REQUIRE([AC_ENABLE_STATIC]) + +AC_REQUIRE([AC_LIBTOOL_DLOPEN]) +AC_REQUIRE([KDE_CHECK_LIB64]) + +AC_OBJEXT +AC_EXEEXT + +AM_PROG_LIBTOOL +AC_LIBTOOL_CXX + +LIBTOOL_SHELL="/bin/sh ./libtool" +# LIBTOOL="$LIBTOOL --silent" +KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_NO_UNDEFINED) \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)" +AC_SUBST(KDE_PLUGIN) + +# we patch configure quite some so we better keep that consistent for incremental runs +AC_SUBST(AUTOCONF,'$(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure') +]) + +AC_DEFUN([KDE_CHECK_LIB64], +[ + kdelibsuff="$kde_libs_suffix" + if test -z "$kdelibsuff"; then + kdelibsuff=no + fi + AC_ARG_ENABLE(libsuffix, + AC_HELP_STRING([--enable-libsuffix], + [/lib directory suffix (64,32,none[=default])]), + kdelibsuff=$enableval) + # TODO: add an auto case that compiles a little C app to check + # where the glibc is + if test "$kdelibsuff" = "no"; then + kdelibsuff= + fi + if test -z "$kdelibsuff"; then + AC_MSG_RESULT([not using lib directory suffix]) + AC_DEFINE(KDELIBSUFF, [""], Suffix for lib directories) + else + if test "$libdir" = '${exec_prefix}/lib'; then + libdir="$libdir${kdelibsuff}" + AC_SUBST([libdir], ["$libdir"]) dnl ugly hack for lib64 platforms + fi + AC_DEFINE_UNQUOTED(KDELIBSUFF, ["${kdelibsuff}"], Suffix for lib directories) + AC_MSG_RESULT([using lib directory suffix $kdelibsuff]) + fi +]) + +AC_DEFUN([KDE_CHECK_TYPES], +[ AC_CHECK_SIZEOF(int, 4)dnl + AC_CHECK_SIZEOF(short)dnl + AC_CHECK_SIZEOF(long, 4)dnl + AC_CHECK_SIZEOF(char *, 4)dnl +])dnl + +dnl Not used - kept for compat only? +AC_DEFUN([KDE_DO_IT_ALL], +[ +AC_CANONICAL_SYSTEM +AC_ARG_PROGRAM +AM_INIT_AUTOMAKE($1, $2) +AM_DISABLE_LIBRARIES +AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde}) +AC_CHECK_COMPILERS +KDE_PROG_LIBTOOL +AM_KDE_WITH_NLS +AC_PATH_KDE +]) + +AC_DEFUN([AC_CHECK_RPATH], +[ +AC_MSG_CHECKING(for rpath) +AC_ARG_ENABLE(rpath, + AC_HELP_STRING([--disable-rpath],[do not use the rpath feature of ld]), + USE_RPATH=$enableval, USE_RPATH=yes) + +if test -z "$KDE_RPATH" && test "$USE_RPATH" = "yes"; then + + KDE_RPATH="-R \$(libdir)" + + if test "$kde_libraries" != "$libdir"; then + KDE_RPATH="$KDE_RPATH -R \$(kde_libraries)" + fi + + if test -n "$qt_libraries"; then + KDE_RPATH="$KDE_RPATH -R \$(qt_libraries)" + fi + dnl $x_libraries is set to /usr/lib in case + if test -n "$X_LDFLAGS"; then + X_RPATH="-R \$(x_libraries)" + KDE_RPATH="$KDE_RPATH $X_RPATH" + fi + if test -n "$KDE_EXTRA_RPATH"; then + KDE_RPATH="$KDE_RPATH \$(KDE_EXTRA_RPATH)" + fi +fi +AC_SUBST(KDE_EXTRA_RPATH) +AC_SUBST(KDE_RPATH) +AC_SUBST(X_RPATH) +AC_MSG_RESULT($USE_RPATH) +]) + +dnl Check for the type of the third argument of getsockname +AC_DEFUN([AC_CHECK_SOCKLEN_T], +[ + AC_MSG_CHECKING(for socklen_t) + AC_CACHE_VAL(kde_cv_socklen_t, + [ + AC_LANG_PUSH(C++) + kde_cv_socklen_t=no + AC_TRY_COMPILE([ + #include + #include + ], + [ + socklen_t len; + getpeername(0,0,&len); + ], + [ + kde_cv_socklen_t=yes + kde_cv_socklen_t_equiv=socklen_t + ]) + AC_LANG_POP(C++) + ]) + AC_MSG_RESULT($kde_cv_socklen_t) + if test $kde_cv_socklen_t = no; then + AC_MSG_CHECKING([for socklen_t equivalent for socket functions]) + AC_CACHE_VAL(kde_cv_socklen_t_equiv, + [ + kde_cv_socklen_t_equiv=int + AC_LANG_PUSH(C++) + for t in int size_t unsigned long "unsigned long"; do + AC_TRY_COMPILE([ + #include + #include + ], + [ + $t len; + getpeername(0,0,&len); + ], + [ + kde_cv_socklen_t_equiv="$t" + break + ]) + done + AC_LANG_POP(C++) + ]) + AC_MSG_RESULT($kde_cv_socklen_t_equiv) + fi + AC_DEFINE_UNQUOTED(kde_socklen_t, $kde_cv_socklen_t_equiv, + [type to use in place of socklen_t if not defined]) + AC_DEFINE_UNQUOTED(ksize_t, $kde_cv_socklen_t_equiv, + [type to use in place of socklen_t if not defined (deprecated, use kde_socklen_t)]) +]) + +dnl This is a merge of some macros out of the gettext aclocal.m4 +dnl since we don't need anything, I took the things we need +dnl the copyright for them is: +dnl > +dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +dnl This Makefile.in is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. +dnl > +dnl for this file it is relicensed under LGPL + +AC_DEFUN([AM_KDE_WITH_NLS], + [ + dnl If we use NLS figure out what method + + AM_PATH_PROG_WITH_TEST_KDE(MSGFMT, msgfmt, + [test -n "`$ac_dir/$ac_word --version 2>&1 | grep 'GNU gettext'`"], msgfmt) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + + if test -z "`$GMSGFMT --version 2>&1 | grep 'GNU gettext'`"; then + AC_MSG_RESULT([found msgfmt program is not GNU msgfmt; ignore it]) + GMSGFMT=":" + fi + MSGFMT=$GMSGFMT + AC_SUBST(GMSGFMT) + AC_SUBST(MSGFMT) + + AM_PATH_PROG_WITH_TEST_KDE(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is no 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 programs is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + AC_SUBST(XGETTEXT) + + ]) + +# Search path for a program which passes the given test. +# Ulrich Drepper , 1996. + +# serial 1 +# Stephan Kulow: I appended a _KDE against name conflicts + +dnl AM_PATH_PROG_WITH_TEST_KDE(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST_KDE], +[# 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 -n "[$]$1"; then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) + + +# Check whether LC_MESSAGES is available in . +# Ulrich Drepper , 1995. + +# serial 1 + +AC_DEFUN([AM_LC_MESSAGES], + [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 locale.h file contains LC_MESSAGES]) + fi + fi]) + +dnl From Jim Meyering. +dnl FIXME: migrate into libit. + +AC_DEFUN([AM_FUNC_OBSTACK], +[AC_CACHE_CHECK([for obstacks], am_cv_func_obstack, + [AC_TRY_LINK([#include "obstack.h"], + [struct obstack *mem;obstack_free(mem,(char *) 0)], + am_cv_func_obstack=yes, + am_cv_func_obstack=no)]) + if test $am_cv_func_obstack = yes; then + AC_DEFINE(HAVE_OBSTACK) + else + LIBOBJS="$LIBOBJS obstack.o" + fi +]) + +dnl From Jim Meyering. Use this if you use the GNU error.[ch]. +dnl FIXME: Migrate into libit + +AC_DEFUN([AM_FUNC_ERROR_AT_LINE], +[AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line, + [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");], + am_cv_lib_error_at_line=yes, + am_cv_lib_error_at_line=no)]) + if test $am_cv_lib_error_at_line = no; then + LIBOBJS="$LIBOBJS error.o" + fi + AC_SUBST(LIBOBJS)dnl +]) + +# Macro to add for using GNU gettext. +# Ulrich Drepper , 1995. + +# serial 1 +# Stephan Kulow: I put a KDE in it to avoid name conflicts + +AC_DEFUN([AM_KDE_GNU_GETTEXT], + [AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + AC_REQUIRE([AC_TYPE_OFF_T])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + AC_REQUIRE([AM_KDE_WITH_NLS])dnl + AC_CHECK_HEADERS([limits.h locale.h nl_types.h string.h values.h alloca.h]) + AC_CHECK_FUNCS([getcwd munmap putenv setlocale strchr strcasecmp \ +__argz_count __argz_stringify __argz_next]) + + AC_MSG_CHECKING(for stpcpy) + AC_CACHE_VAL(kde_cv_func_stpcpy, + [ + kde_safe_cxxflags=$CXXFLAGS + CXXFLAGS="-Werror" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([ + #include + ], + [ + char buffer[200]; + stpcpy(buffer, buffer); + ], + kde_cv_func_stpcpy=yes, + kde_cv_func_stpcpy=no) + AC_LANG_RESTORE + CXXFLAGS=$kde_safe_cxxflags + ]) + AC_MSG_RESULT($kde_cv_func_stpcpy) + if eval "test \"`echo $kde_cv_func_stpcpy`\" = yes"; then + AC_DEFINE(HAVE_STPCPY, 1, [Define if you have stpcpy]) + fi + + AM_LC_MESSAGES + + if test "x$CATOBJEXT" != "x"; 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 + + ]) + +AC_DEFUN([AC_HAVE_XPM], + [AC_REQUIRE_CPP()dnl + AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + + test -z "$XPM_LDFLAGS" && XPM_LDFLAGS= + test -z "$XPM_INCLUDE" && XPM_INCLUDE= + + AC_ARG_WITH(xpm,AC_HELP_STRING([--without-xpm],[disable color pixmap XPM tests]), + xpm_test=$withval, xpm_test="yes") + if test "x$xpm_test" = xno; then + ac_cv_have_xpm=no + else + AC_MSG_CHECKING(for XPM) + AC_CACHE_VAL(ac_cv_have_xpm, + [ + ac_save_ldflags="$LDFLAGS" + ac_save_cflags="$CFLAGS" + if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then + LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm -lX11 -lXext $LIBZ $LIBSOCKET" + else + LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm $LIBZ $LIBSOCKET" + fi + CFLAGS="$CFLAGS $X_INCLUDES $USER_INCLUDES" + test -n "$XPM_INCLUDE" && CFLAGS="-I$XPM_INCLUDE $CFLAGS" + AC_TRY_LINK([#include ],[], + ac_cv_have_xpm="yes",ac_cv_have_xpm="no") + LDFLAGS="$ac_save_ldflags" + CFLAGS="$ac_save_cflags" + ])dnl + + if test "$ac_cv_have_xpm" = no; then + AC_MSG_RESULT(no) + XPM_LDFLAGS="" + XPMINC="" + $2 + else + AC_DEFINE(HAVE_XPM, 1, [Define if you have XPM support]) + if test "$XPM_LDFLAGS" = ""; then + XPMLIB='-lXpm $(LIB_X11)' + else + XPMLIB="-L$XPM_LDFLAGS -lXpm "'$(LIB_X11)' + fi + if test "$XPM_INCLUDE" = ""; then + XPMINC="" + else + XPMINC="-I$XPM_INCLUDE" + fi + AC_MSG_RESULT(yes) + $1 + fi + fi + AC_SUBST(XPMINC) + AC_SUBST(XPMLIB) +]) + +AC_DEFUN([AC_HAVE_DPMS], + [AC_REQUIRE_CPP()dnl + AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + + test -z "$DPMS_LDFLAGS" && DPMS_LDFLAGS= + test -z "$DPMS_INCLUDE" && DPMS_INCLUDE= + DPMS_LIB= + + AC_ARG_WITH(dpms,AC_HELP_STRING([--without-dpms],[disable DPMS power saving]), + dpms_test=$withval, dpms_test="yes") + if test "x$dpms_test" = xno; then + ac_cv_have_dpms=no + else + AC_MSG_CHECKING(for DPMS) + dnl Note: ac_cv_have_dpms can be no, yes, or -lXdpms. + dnl 'yes' means DPMS_LIB="", '-lXdpms' means DPMS_LIB="-lXdpms". + AC_CACHE_VAL(ac_cv_have_dpms, + [ + if test "x$kde_use_qt_emb" = "xyes" || test "x$kde_use_qt_mac" = "xyes"; then + AC_MSG_RESULT(no) + ac_cv_have_dpms="no" + else + ac_save_ldflags="$LDFLAGS" + ac_save_cflags="$CFLAGS" + ac_save_libs="$LIBS" + LDFLAGS="$LDFLAGS $DPMS_LDFLAGS $all_libraries -lX11 -lXext $LIBSOCKET" + CFLAGS="$CFLAGS $X_INCLUDES" + test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS" + AC_TRY_LINK([ + #include + #include + #include + #include + int foo_test_dpms() + { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[], + ac_cv_have_dpms="yes", [ + LDFLAGS="$ac_save_ldflags" + CFLAGS="$ac_save_cflags" + LDFLAGS="$LDFLAGS $DPMS_LDFLAGS $all_libraries -lX11 -lXext $LIBSOCKET" + LIBS="$LIBS -lXdpms" + CFLAGS="$CFLAGS $X_INCLUDES" + test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS" + AC_TRY_LINK([ + #include + #include + #include + #include + int foo_test_dpms() + { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[], + [ + ac_cv_have_dpms="-lXdpms" + ],ac_cv_have_dpms="no") + ]) + LDFLAGS="$ac_save_ldflags" + CFLAGS="$ac_save_cflags" + LIBS="$ac_save_libs" + fi + ])dnl + + if test "$ac_cv_have_dpms" = no; then + AC_MSG_RESULT(no) + DPMS_LDFLAGS="" + DPMSINC="" + $2 + else + AC_DEFINE(HAVE_DPMS, 1, [Define if you have DPMS support]) + if test "$ac_cv_have_dpms" = "-lXdpms"; then + DPMS_LIB="-lXdpms" + fi + if test "$DPMS_LDFLAGS" = ""; then + DPMSLIB="$DPMS_LIB "'$(LIB_X11)' + else + DPMSLIB="$DPMS_LDFLAGS $DPMS_LIB "'$(LIB_X11)' + fi + if test "$DPMS_INCLUDE" = ""; then + DPMSINC="" + else + DPMSINC="-I$DPMS_INCLUDE" + fi + AC_MSG_RESULT(yes) + $1 + fi + fi + ac_save_cflags="$CFLAGS" + CFLAGS="$CFLAGS $X_INCLUDES" + test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS" + AH_TEMPLATE(HAVE_DPMSCAPABLE_PROTO, + [Define if you have the DPMSCapable prototype in ]) + AC_CHECK_DECL(DPMSCapable, + AC_DEFINE(HAVE_DPMSCAPABLE_PROTO),, + [#include ]) + AH_TEMPLATE(HAVE_DPMSINFO_PROTO, + [Define if you have the DPMSInfo prototype in ]) + AC_CHECK_DECL(DPMSInfo, + AC_DEFINE(HAVE_DPMSINFO_PROTO),, + [#include ]) + CFLAGS="$ac_save_cflags" + AC_SUBST(DPMSINC) + AC_SUBST(DPMSLIB) +]) + +AC_DEFUN([AC_HAVE_GL], + [AC_REQUIRE_CPP()dnl + AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + + test -z "$GL_LDFLAGS" && GL_LDFLAGS= + test -z "$GL_INCLUDE" && GL_INCLUDE= + + AC_ARG_WITH(gl,AC_HELP_STRING([--without-gl],[disable 3D GL modes]), + gl_test=$withval, gl_test="yes") + if test "x$kde_use_qt_emb" = "xyes"; then + # GL and Qt Embedded is a no-go for now. + ac_cv_have_gl=no + elif test "x$gl_test" = xno; then + ac_cv_have_gl=no + else + AC_MSG_CHECKING(for GL) + AC_CACHE_VAL(ac_cv_have_gl, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_ldflags=$LDFLAGS + ac_save_cxxflags=$CXXFLAGS + ac_save_libs=$LIBS + LDFLAGS="$LDFLAGS $GL_LDFLAGS $X_LDFLAGS $all_libraries" + LIBS="$LIBS -lGL -lGLU" + test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && LIBS="$LIBS -lX11" + LIBS="$LIBS $LIB_XEXT -lm $LIBSOCKET" + CXXFLAGS="$CFLAGS $X_INCLUDES" + test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS" + AC_TRY_LINK([#include +#include +], [], + ac_cv_have_gl="yes", ac_cv_have_gl="no") + AC_LANG_RESTORE + LDFLAGS=$ac_save_ldflags + CXXFLAGS=$ac_save_cxxflags + LIBS=$ac_save_libs + ])dnl + + if test "$ac_cv_have_gl" = "no"; then + AC_MSG_RESULT(no) + GL_LDFLAGS="" + GLINC="" + $2 + else + AC_DEFINE(HAVE_GL, 1, [Defines if you have GL (Mesa, OpenGL, ...)]) + if test "$GL_LDFLAGS" = ""; then + GLLIB='-lGLU -lGL $(LIB_X11)' + else + GLLIB="$GL_LDFLAGS -lGLU -lGL "'$(LIB_X11)' + fi + if test "$GL_INCLUDE" = ""; then + GLINC="" + else + GLINC="-I$GL_INCLUDE" + fi + AC_MSG_RESULT($ac_cv_have_gl) + $1 + fi + fi + AC_SUBST(GLINC) + AC_SUBST(GLLIB) +]) + + + dnl shadow password and PAM magic - maintained by ossi@kde.org + +AC_DEFUN([KDE_PAM], [ + AC_REQUIRE([KDE_CHECK_LIBDL]) + + want_pam= + AC_ARG_WITH(pam, + AC_HELP_STRING([--with-pam[=ARG]],[enable support for PAM: ARG=[yes|no|service name]]), + [ if test "x$withval" = "xyes"; then + want_pam=yes + pam_service=kde + elif test "x$withval" = "xno"; then + want_pam=no + else + want_pam=yes + pam_service=$withval + fi + ], [ pam_service=kde ]) + + use_pam= + PAMLIBS= + if test "x$want_pam" != xno; then + AC_CHECK_LIB(pam, pam_start, [ + AC_CHECK_HEADER(security/pam_appl.h, + [ pam_header=security/pam_appl.h ], + [ AC_CHECK_HEADER(pam/pam_appl.h, + [ pam_header=pam/pam_appl.h ], + [ + AC_MSG_WARN([PAM detected, but no headers found! +Make sure you have the necessary development packages installed.]) + ] + ) + ] + ) + ], , $LIBDL) + if test -z "$pam_header"; then + if test "x$want_pam" = xyes; then + AC_MSG_ERROR([--with-pam was specified, but cannot compile with PAM!]) + fi + else + AC_DEFINE(HAVE_PAM, 1, [Defines if you have PAM (Pluggable Authentication Modules)]) + PAMLIBS="$PAM_MISC_LIB -lpam $LIBDL" + use_pam=yes + + dnl darwin claims to be something special + if test "$pam_header" = "pam/pam_appl.h"; then + AC_DEFINE(HAVE_PAM_PAM_APPL_H, 1, [Define if your PAM headers are in pam/ instead of security/]) + fi + + dnl test whether struct pam_message is const (Linux) or not (Sun) + AC_MSG_CHECKING(for const pam_message) + AC_EGREP_HEADER([struct pam_message], $pam_header, + [ AC_EGREP_HEADER([const struct pam_message], $pam_header, + [AC_MSG_RESULT([const: Linux-type PAM])], + [AC_MSG_RESULT([nonconst: Sun-type PAM]) + AC_DEFINE(PAM_MESSAGE_NONCONST, 1, [Define if your PAM support takes non-const arguments (Solaris)])] + )], + [AC_MSG_RESULT([not found - assume const, Linux-type PAM])]) + fi + fi + + AC_SUBST(PAMLIBS) +]) + +dnl DEF_PAM_SERVICE(arg name, full name, define name) +AC_DEFUN([DEF_PAM_SERVICE], [ + AC_ARG_WITH($1-pam, + AC_HELP_STRING([--with-$1-pam=[val]],[override PAM service from --with-pam for $2]), + [ if test "x$use_pam" = xyes; then + $3_PAM_SERVICE=$withval + else + AC_MSG_ERROR([Cannot use use --with-$1-pam, as no PAM was detected. +You may want to enforce it by using --with-pam.]) + fi + ], + [ if test "x$use_pam" = xyes; then + $3_PAM_SERVICE="$pam_service" + fi + ]) + if test -n "$$3_PAM_SERVICE"; then + AC_MSG_RESULT([The PAM service used by $2 will be $$3_PAM_SERVICE]) + AC_DEFINE_UNQUOTED($3_PAM_SERVICE, "$$3_PAM_SERVICE", [The PAM service to be used by $2]) + fi + AC_SUBST($3_PAM_SERVICE) +]) + +AC_DEFUN([KDE_SHADOWPASSWD], [ + AC_REQUIRE([KDE_PAM]) + + AC_CHECK_LIB(shadow, getspent, + [ LIBSHADOW="-lshadow" + ac_use_shadow=yes + ], + [ dnl for UnixWare + AC_CHECK_LIB(gen, getspent, + [ LIBGEN="-lgen" + ac_use_shadow=yes + ], + [ AC_CHECK_FUNC(getspent, + [ ac_use_shadow=yes ], + [ ac_use_shadow=no ]) + ]) + ]) + AC_SUBST(LIBSHADOW) + AC_SUBST(LIBGEN) + + AC_MSG_CHECKING([for shadow passwords]) + + AC_ARG_WITH(shadow, + AC_HELP_STRING([--with-shadow],[If you want shadow password support]), + [ if test "x$withval" != "xno"; then + use_shadow=yes + else + use_shadow=no + fi + ], [ + use_shadow="$ac_use_shadow" + ]) + + if test "x$use_shadow" = xyes; then + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SHADOW, 1, [Define if you use shadow passwords]) + else + AC_MSG_RESULT(no) + LIBSHADOW= + LIBGEN= + fi + + dnl finally make the relevant binaries setuid root, if we have shadow passwds. + dnl this still applies, if we could use it indirectly through pam. + if test "x$use_shadow" = xyes || + ( test "x$use_pam" = xyes && test "x$ac_use_shadow" = xyes ); then + case $host in + *-*-freebsd* | *-*-netbsd* | *-*-openbsd*) + SETUIDFLAGS="-m 4755 -o root";; + *) + SETUIDFLAGS="-m 4755";; + esac + fi + AC_SUBST(SETUIDFLAGS) + +]) + +AC_DEFUN([KDE_PASSWDLIBS], [ + AC_REQUIRE([KDE_MISC_TESTS]) dnl for LIBCRYPT + AC_REQUIRE([KDE_PAM]) + AC_REQUIRE([KDE_SHADOWPASSWD]) + + if test "x$use_pam" = "xyes"; then + PASSWDLIBS="$PAMLIBS" + else + PASSWDLIBS="$LIBCRYPT $LIBSHADOW $LIBGEN" + fi + + dnl FreeBSD uses a shadow-like setup, where /etc/passwd holds the users, but + dnl /etc/master.passwd holds the actual passwords. /etc/master.passwd requires + dnl root to read, so kcheckpass needs to be root (even when using pam, since pam + dnl may need to read /etc/master.passwd). + case $host in + *-*-freebsd*) + SETUIDFLAGS="-m 4755 -o root" + ;; + *) + ;; + esac + + AC_SUBST(PASSWDLIBS) +]) + +AC_DEFUN([KDE_CHECK_LIBDL], +[ +AC_CHECK_LIB(dl, dlopen, [ +LIBDL="-ldl" +ac_cv_have_dlfcn=yes +]) + +AC_CHECK_LIB(dld, shl_unload, [ +LIBDL="-ldld" +ac_cv_have_shload=yes +]) + +AC_SUBST(LIBDL) +]) + +AC_DEFUN([KDE_CHECK_DLOPEN], +[ +KDE_CHECK_LIBDL +AC_CHECK_HEADERS(dlfcn.h dl.h) +if test "$ac_cv_header_dlfcn_h" = "no"; then + ac_cv_have_dlfcn=no +fi + +if test "$ac_cv_header_dl_h" = "no"; then + ac_cv_have_shload=no +fi + +dnl XXX why change enable_dlopen? its already set by autoconf's AC_ARG_ENABLE +dnl (MM) +AC_ARG_ENABLE(dlopen, +AC_HELP_STRING([--disable-dlopen],[link statically [default=no]]), +enable_dlopen=$enableval, +enable_dlopen=yes) + +# override the user's opinion, if we know it better ;) +if test "$ac_cv_have_dlfcn" = "no" && test "$ac_cv_have_shload" = "no"; then + enable_dlopen=no +fi + +if test "$ac_cv_have_dlfcn" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_DLFCN, 1, [Define if you have dlfcn]) +fi + +if test "$ac_cv_have_shload" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_SHLOAD, 1, [Define if you have shload]) +fi + +if test "$enable_dlopen" = no ; then + test -n "$1" && eval $1 +else + test -n "$2" && eval $2 +fi + +]) + +AC_DEFUN([KDE_CHECK_DYNAMIC_LOADING], +[ +KDE_CHECK_DLOPEN(libtool_enable_shared=yes, libtool_enable_static=no) +KDE_PROG_LIBTOOL +AC_MSG_CHECKING([dynamic loading]) +eval "`egrep '^build_libtool_libs=' libtool`" +if test "$build_libtool_libs" = "yes" && test "$enable_dlopen" = "yes"; then + dynamic_loading=yes + AC_DEFINE_UNQUOTED(HAVE_DYNAMIC_LOADING) +else + dynamic_loading=no +fi +AC_MSG_RESULT($dynamic_loading) +if test "$dynamic_loading" = "yes"; then + $1 +else + $2 +fi +]) + +AC_DEFUN([KDE_ADD_INCLUDES], +[ +if test -z "$1"; then + test_include="Pix.h" +else + test_include="$1" +fi + +AC_MSG_CHECKING([for libg++ ($test_include)]) + +AC_CACHE_VAL(kde_cv_libgpp_includes, +[ +kde_cv_libgpp_includes=no + + for ac_dir in \ + \ + /usr/include/g++ \ + /usr/include \ + /usr/unsupported/include \ + /opt/include \ + $extra_include \ + ; \ + do + if test -r "$ac_dir/$test_include"; then + kde_cv_libgpp_includes=$ac_dir + break + fi + done +]) + +AC_MSG_RESULT($kde_cv_libgpp_includes) +if test "$kde_cv_libgpp_includes" != "no"; then + all_includes="-I$kde_cv_libgpp_includes $all_includes $USER_INCLUDES" +fi +]) +]) + +AC_DEFUN([KDE_CHECK_LIBPTHREAD], +[ + dnl This code is here specifically to handle the + dnl various flavors of threading library on FreeBSD + dnl 4-, 5-, and 6-, and the (weird) rules around it. + dnl There may be an environment PTHREAD_LIBS that + dnl specifies what to use; otherwise, search for it. + dnl -pthread is special cased and unsets LIBPTHREAD + dnl below if found. + LIBPTHREAD="" + + if test -n "$PTHREAD_LIBS"; then + if test "x$PTHREAD_LIBS" = "x-pthread" ; then + LIBPTHREAD="PTHREAD" + else + PTHREAD_LIBS_save="$PTHREAD_LIBS" + PTHREAD_LIBS=`echo "$PTHREAD_LIBS_save" | sed -e 's,^-l,,g'` + AC_MSG_CHECKING([for pthread_create in $PTHREAD_LIBS]) + KDE_CHECK_LIB($PTHREAD_LIBS, pthread_create, [ + LIBPTHREAD="$PTHREAD_LIBS_save"]) + PTHREAD_LIBS="$PTHREAD_LIBS_save" + fi + fi + + dnl Is this test really needed, in the face of the Tru64 test below? + if test -z "$LIBPTHREAD"; then + AC_CHECK_LIB(pthread, pthread_create, [LIBPTHREAD="-lpthread"]) + fi + + dnl This is a special Tru64 check, see BR 76171 issue #18. + if test -z "$LIBPTHREAD" ; then + AC_MSG_CHECKING([for pthread_create in -lpthread]) + kde_safe_libs=$LIBS + LIBS="$LIBS -lpthread" + AC_TRY_LINK([#include ],[(void)pthread_create(0,0,0,0);],[ + AC_MSG_RESULT(yes) + LIBPTHREAD="-lpthread"],[ + AC_MSG_RESULT(no)]) + LIBS=$kde_safe_libs + fi + + dnl Un-special-case for FreeBSD. + if test "x$LIBPTHREAD" = "xPTHREAD" ; then + LIBPTHREAD="" + fi + + AC_SUBST(LIBPTHREAD) +]) + +AC_DEFUN([KDE_CHECK_PTHREAD_OPTION], +[ + USE_THREADS="" + if test -z "$LIBPTHREAD"; then + KDE_CHECK_COMPILER_FLAG(pthread, [USE_THREADS="-D_THREAD_SAFE -pthread"]) + fi + + AH_VERBATIM(__svr_define, [ +#if defined(__SVR4) && !defined(__svr4__) +#define __svr4__ 1 +#endif +]) + case $host_os in + solaris*) + KDE_CHECK_COMPILER_FLAG(mt, [USE_THREADS="-mt"]) + CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4" + ;; + freebsd*) + CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE $PTHREAD_CFLAGS" + ;; + aix*) + CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" + LIBPTHREAD="$LIBPTHREAD -lc_r" + ;; + linux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" + if test "$CXX" = "KCC"; then + CXXFLAGS="$CXXFLAGS --thread_safe" + NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS --thread_safe" + fi + ;; + *) + ;; + esac + AC_SUBST(USE_THREADS) + AC_SUBST(LIBPTHREAD) +]) + +AC_DEFUN([KDE_CHECK_THREADING], +[ + AC_REQUIRE([KDE_CHECK_LIBPTHREAD]) + AC_REQUIRE([KDE_CHECK_PTHREAD_OPTION]) + dnl default is yes if libpthread is found and no if no libpthread is available + if test -z "$LIBPTHREAD"; then + if test -z "$USE_THREADS"; then + kde_check_threading_default=no + else + kde_check_threading_default=yes + fi + else + kde_check_threading_default=yes + fi + AC_ARG_ENABLE(threading,AC_HELP_STRING([--disable-threading],[disables threading even if libpthread found]), + kde_use_threading=$enableval, kde_use_threading=$kde_check_threading_default) + if test "x$kde_use_threading" = "xyes"; then + AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have a working libpthread (will enable threaded code)]) + fi +]) + +AC_DEFUN([KDE_TRY_LINK_PYTHON], +[ +if test "$kde_python_link_found" = no; then + +if test "$1" = normal; then + AC_MSG_CHECKING(if a Python application links) +else + AC_MSG_CHECKING(if Python depends on $2) +fi + +AC_CACHE_VAL(kde_cv_try_link_python_$1, +[ +kde_save_cflags="$CFLAGS" +CFLAGS="$CFLAGS $PYTHONINC" +kde_save_libs="$LIBS" +LIBS="$LIBS $LIBPYTHON $2 $LIBDL $LIBSOCKET" +kde_save_ldflags="$LDFLAGS" +LDFLAGS="$LDFLAGS $PYTHONLIB" + +AC_TRY_LINK( +[ +#include +],[ + PySys_SetArgv(1, 0); +], + [kde_cv_try_link_python_$1=yes], + [kde_cv_try_link_python_$1=no] +) +CFLAGS="$kde_save_cflags" +LIBS="$kde_save_libs" +LDFLAGS="$kde_save_ldflags" +]) + +if test "$kde_cv_try_link_python_$1" = "yes"; then + AC_MSG_RESULT(yes) + kde_python_link_found=yes + if test ! "$1" = normal; then + LIBPYTHON="$LIBPYTHON $2" + fi + $3 +else + AC_MSG_RESULT(no) + $4 +fi + +fi + +]) + +AC_DEFUN([KDE_CHECK_PYTHON_DIR], +[ +AC_MSG_CHECKING([for Python directory]) + +AC_CACHE_VAL(kde_cv_pythondir, +[ + if test -z "$PYTHONDIR"; then + kde_cv_pythondir=/usr/local + else + kde_cv_pythondir="$PYTHONDIR" + fi +]) + +AC_ARG_WITH(pythondir, +AC_HELP_STRING([--with-pythondir=pythondir],[use python installed in pythondir]), +[ + ac_python_dir=$withval +], ac_python_dir=$kde_cv_pythondir +) + +AC_MSG_RESULT($ac_python_dir) +]) + +AC_DEFUN([KDE_CHECK_PYTHON_INTERN], +[ +AC_REQUIRE([KDE_CHECK_LIBDL]) +AC_REQUIRE([KDE_CHECK_LIBPTHREAD]) +AC_REQUIRE([KDE_CHECK_PYTHON_DIR]) + +if test -z "$1"; then + version="1.5" +else + version="$1" +fi + +AC_MSG_CHECKING([for Python$version]) + +python_incdirs="$ac_python_dir/include /usr/include /usr/local/include/ $kde_extra_includes" +AC_FIND_FILE(Python.h, $python_incdirs, python_incdir) +if test ! -r $python_incdir/Python.h; then + AC_FIND_FILE(python$version/Python.h, $python_incdirs, python_incdir) + python_incdir=$python_incdir/python$version + if test ! -r $python_incdir/Python.h; then + python_incdir=no + fi +fi + +PYTHONINC=-I$python_incdir + +python_libdirs="$ac_python_dir/lib$kdelibsuff /usr/lib$kdelibsuff /usr/local /usr/lib$kdelibsuff $kde_extra_libs" +AC_FIND_FILE(libpython$version.so, $python_libdirs, python_libdir) +if test ! -r $python_libdir/libpython$version.so; then + AC_FIND_FILE(libpython$version.a, $python_libdirs, python_libdir) + if test ! -r $python_libdir/libpython$version.a; then + AC_FIND_FILE(python$version/config/libpython$version.a, $python_libdirs, python_libdir) + python_libdir=$python_libdir/python$version/config + if test ! -r $python_libdir/libpython$version.a; then + python_libdir=no + fi + fi +fi + +PYTHONLIB=-L$python_libdir +kde_orig_LIBPYTHON=$LIBPYTHON +if test -z "$LIBPYTHON"; then + LIBPYTHON=-lpython$version +fi + +AC_FIND_FILE(python$version/copy.py, $python_libdirs, python_moddir) +python_moddir=$python_moddir/python$version +if test ! -r $python_moddir/copy.py; then + python_moddir=no +fi + +PYTHONMODDIR=$python_moddir + +AC_MSG_RESULT(header $python_incdir library $python_libdir modules $python_moddir) + +if test x$python_incdir = xno || test x$python_libdir = xno || test x$python_moddir = xno; then + LIBPYTHON=$kde_orig_LIBPYTHON + test "x$PYTHONLIB" = "x-Lno" && PYTHONLIB="" + test "x$PYTHONINC" = "x-Ino" && PYTHONINC="" + $2 +else + dnl Note: this test is very weak + kde_python_link_found=no + KDE_TRY_LINK_PYTHON(normal) + KDE_TRY_LINK_PYTHON(m, -lm) + KDE_TRY_LINK_PYTHON(pthread, $LIBPTHREAD) + KDE_TRY_LINK_PYTHON(tcl, -ltcl) + KDE_TRY_LINK_PYTHON(db2, -ldb2) + KDE_TRY_LINK_PYTHON(m_and_thread, [$LIBPTHREAD -lm]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_util, [$LIBPTHREAD -lm -lutil]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_db3, [$LIBPTHREAD -lm -ldb-3 -lutil]) + KDE_TRY_LINK_PYTHON(pthread_and_db3, [$LIBPTHREAD -ldb-3]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_db, [$LIBPTHREAD -lm -ldb -ltermcap -lutil]) + KDE_TRY_LINK_PYTHON(pthread_and_dl, [$LIBPTHREAD $LIBDL -lutil -lreadline -lncurses -lm]) + KDE_TRY_LINK_PYTHON(pthread_and_panel_curses, [$LIBPTHREAD $LIBDL -lm -lpanel -lcurses]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_db_special, [$LIBPTHREAD -lm -ldb -lutil], [], + [AC_MSG_WARN([it seems, Python depends on another library. + Please set LIBPYTHON to '-lpython$version -lotherlib' before calling configure to fix this + and contact the authors to let them know about this problem]) + ]) + + LIBPYTHON="$LIBPYTHON $LIBDL $LIBSOCKET" + AC_SUBST(PYTHONINC) + AC_SUBST(PYTHONLIB) + AC_SUBST(LIBPYTHON) + AC_SUBST(PYTHONMODDIR) + AC_DEFINE(HAVE_PYTHON, 1, [Define if you have the development files for python]) +fi + +]) + + +AC_DEFUN([KDE_CHECK_PYTHON], +[ + KDE_CHECK_PYTHON_INTERN("2.4", + [KDE_CHECK_PYTHON_INTERN("2.3", + [KDE_CHECK_PYTHON_INTERN("2.2", + [KDE_CHECK_PYTHON_INTERN("2.1", + [KDE_CHECK_PYTHON_INTERN("2.0", + [KDE_CHECK_PYTHON_INTERN($1, $2) ]) + ]) + ]) + ]) + ]) +]) + +AC_DEFUN([KDE_CHECK_STL], +[ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="`echo $CXXFLAGS | sed s/-fno-exceptions//`" + + AC_MSG_CHECKING([if C++ programs can be compiled]) + AC_CACHE_VAL(kde_cv_stl_works, + [ + AC_TRY_COMPILE([ +#include +using namespace std; +],[ + string astring="Hallo Welt."; + astring.erase(0, 6); // now astring is "Welt" + return 0; +], kde_cv_stl_works=yes, + kde_cv_stl_works=no) +]) + + AC_MSG_RESULT($kde_cv_stl_works) + + if test "$kde_cv_stl_works" = "yes"; then + # back compatible + AC_DEFINE_UNQUOTED(HAVE_SGI_STL, 1, [Define if you have a STL implementation by SGI]) + else + AC_MSG_ERROR([Your Installation isn't able to compile simple C++ programs. +Check config.log for details - if you're using a Linux distribution you might miss +a package named similar to libstdc++-dev.]) + fi + + CXXFLAGS="$ac_save_CXXFLAGS" + AC_LANG_RESTORE +]) + +AC_DEFUN([AC_FIND_QIMGIO], + [AC_REQUIRE([AC_FIND_JPEG]) +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_MSG_CHECKING([for qimgio]) +AC_CACHE_VAL(ac_cv_lib_qimgio, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_save_LIBS="$LIBS" +ac_save_CXXFLAGS="$CXXFLAGS" +LIBS="$all_libraries -lqimgio -lpng -lz $LIBJPEG $LIBQT" +CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes" +AC_TRY_RUN(dnl +[ +#include +#include +int main() { + QString t = "hallo"; + t.fill('t'); + qInitImageIO(); +} +], + ac_cv_lib_qimgio=yes, + ac_cv_lib_qimgio=no, + ac_cv_lib_qimgio=no) +LIBS="$ac_save_LIBS" +CXXFLAGS="$ac_save_CXXFLAGS" +AC_LANG_RESTORE +])dnl +if eval "test \"`echo $ac_cv_lib_qimgio`\" = yes"; then + LIBQIMGIO="-lqimgio -lpng -lz $LIBJPEG" + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED(HAVE_QIMGIO, 1, [Define if you have the Qt extension qimgio available]) + AC_SUBST(LIBQIMGIO) +else + AC_MSG_RESULT(not found) +fi +]) + +AC_DEFUN([AM_DISABLE_LIBRARIES], +[ + AC_PROVIDE([AM_ENABLE_STATIC]) + AC_PROVIDE([AM_ENABLE_SHARED]) + enable_static=no + enable_shared=yes +]) + + +AC_DEFUN([AC_CHECK_UTMP_FILE], +[ + AC_MSG_CHECKING([for utmp file]) + + AC_CACHE_VAL(kde_cv_utmp_file, + [ + kde_cv_utmp_file=no + + for ac_file in \ + \ + /var/run/utmp \ + /var/adm/utmp \ + /etc/utmp \ + ; \ + do + if test -r "$ac_file"; then + kde_cv_utmp_file=$ac_file + break + fi + done + ]) + + if test "$kde_cv_utmp_file" != "no"; then + AC_DEFINE_UNQUOTED(UTMP, "$kde_cv_utmp_file", [Define the file for utmp entries]) + $1 + AC_MSG_RESULT($kde_cv_utmp_file) + else + $2 + AC_MSG_RESULT([non found]) + fi +]) + + +AC_DEFUN([KDE_CREATE_SUBDIRSLIST], +[ + +DO_NOT_COMPILE="$DO_NOT_COMPILE CVS debian bsd-port admin" +TOPSUBDIRS="" + +if test ! -s $srcdir/subdirs; then + dnl Note: Makefile.common creates subdirs, so this is just a fallback + files=`cd $srcdir && ls -1` + dirs=`for i in $files; do if test -d $i; then echo $i; fi; done` + for i in $dirs; do + echo $i >> $srcdir/subdirs + done +fi + +ac_topsubdirs= +if test -s $srcdir/inst-apps; then + ac_topsubdirs="`cat $srcdir/inst-apps`" +elif test -s $srcdir/subdirs; then + ac_topsubdirs="`cat $srcdir/subdirs`" +fi + +for i in $ac_topsubdirs; do + AC_MSG_CHECKING([if $i should be compiled]) + if test -d $srcdir/$i; then + install_it="yes" + for j in $DO_NOT_COMPILE; do + if test $i = $j; then + install_it="no" + fi + done + else + install_it="no" + fi + AC_MSG_RESULT($install_it) + vari=`echo $i | sed -e 's,[[-+.@]],_,g'` + if test $install_it = "yes"; then + TOPSUBDIRS="$TOPSUBDIRS $i" + eval "$vari""_SUBDIR_included=yes" + else + eval "$vari""_SUBDIR_included=no" + fi +done + +AC_SUBST(TOPSUBDIRS) +]) + +AC_DEFUN([KDE_CHECK_NAMESPACES], +[ +AC_MSG_CHECKING(whether C++ compiler supports namespaces) +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +AC_TRY_COMPILE([ +], +[ +namespace Foo { + extern int i; + namespace Bar { + extern int i; + } +} + +int Foo::i = 0; +int Foo::Bar::i = 1; +],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_NAMESPACES) +], [ +AC_MSG_RESULT(no) +]) +AC_LANG_RESTORE +]) + +dnl ------------------------------------------------------------------------ +dnl Check for S_ISSOCK macro. Doesn't exist on Unix SCO. faure@kde.org +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_CHECK_S_ISSOCK], +[ +AC_MSG_CHECKING(for S_ISSOCK) +AC_CACHE_VAL(ac_cv_have_s_issock, +[ +AC_TRY_LINK( +[ +#include +], +[ +struct stat buff; +int b = S_ISSOCK( buff.st_mode ); +], +ac_cv_have_s_issock=yes, +ac_cv_have_s_issock=no) +]) +AC_MSG_RESULT($ac_cv_have_s_issock) +if test "$ac_cv_have_s_issock" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_S_ISSOCK, 1, [Define if sys/stat.h declares S_ISSOCK.]) +fi + +AH_VERBATIM(_ISSOCK, +[ +#ifndef HAVE_S_ISSOCK +#define HAVE_S_ISSOCK +#define S_ISSOCK(mode) (1==0) +#endif +]) + +]) + +dnl ------------------------------------------------------------------------ +dnl Check for MAXPATHLEN macro, defines KDEMAXPATHLEN. faure@kde.org +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_CHECK_KDEMAXPATHLEN], +[ +AC_MSG_CHECKING(for MAXPATHLEN) +AC_CACHE_VAL(ac_cv_maxpathlen, +[ +cat > conftest.$ac_ext < +#endif +#include +#include +#ifndef MAXPATHLEN +#define MAXPATHLEN 1024 +#endif + +KDE_HELLO MAXPATHLEN + +EOF + +ac_try="$ac_cpp conftest.$ac_ext 2>/dev/null | grep '^KDE_HELLO' >conftest.out" + +if AC_TRY_EVAL(ac_try) && test -s conftest.out; then + ac_cv_maxpathlen=`sed 's#KDE_HELLO ##' conftest.out` +else + ac_cv_maxpathlen=1024 +fi + +rm conftest.* + +]) +AC_MSG_RESULT($ac_cv_maxpathlen) +AC_DEFINE_UNQUOTED(KDEMAXPATHLEN,$ac_cv_maxpathlen, [Define a safe value for MAXPATHLEN] ) +]) + +AC_DEFUN([KDE_CHECK_HEADER], +[ + kde_safe_cppflags=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $all_includes" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_CHECK_HEADER([$1], [$2], [$3], [$4]) + AC_LANG_RESTORE + CPPFLAGS=$kde_safe_cppflags +]) + +AC_DEFUN([KDE_CHECK_HEADERS], +[ + AH_CHECK_HEADERS([$1]) + AC_LANG_SAVE + kde_safe_cppflags=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $all_includes" + AC_LANG_CPLUSPLUS + AC_CHECK_HEADERS([$1], [$2], [$3], [$4]) + CPPFLAGS=$kde_safe_cppflags + AC_LANG_RESTORE +]) + +AC_DEFUN([KDE_FAST_CONFIGURE], +[ + dnl makes configure fast (needs perl) + AC_ARG_ENABLE(fast-perl, AC_HELP_STRING([--disable-fast-perl],[disable fast Makefile generation (needs perl)]), + with_fast_perl=$enableval, with_fast_perl=yes) +]) + +AC_DEFUN([KDE_CONF_FILES], +[ + val= + if test -f $srcdir/configure.files ; then + val=`sed -e 's%^%\$(top_srcdir)/%' $srcdir/configure.files` + fi + CONF_FILES= + if test -n "$val" ; then + for i in $val ; do + CONF_FILES="$CONF_FILES $i" + done + fi + AC_SUBST(CONF_FILES) +])dnl + +dnl This sets the prefix, for arts and kdelibs +dnl Do NOT use in any other module. +dnl It only looks at --prefix, KDEDIR and falls back to /usr/local/kde +AC_DEFUN([KDE_SET_PREFIX_CORE], +[ + unset CDPATH + dnl make $KDEDIR the default for the installation + AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde}) + + if test "x$prefix" = "xNONE"; then + prefix=$ac_default_prefix + ac_configure_args="$ac_configure_args --prefix=$prefix" + fi + # And delete superfluous '/' to make compares easier + prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + + kde_libs_prefix='$(prefix)' + kde_libs_htmldir='$(kde_htmldir)' + AC_SUBST(kde_libs_prefix) + AC_SUBST(kde_libs_htmldir) + KDE_FAST_CONFIGURE + KDE_CONF_FILES +]) + + +AC_DEFUN([KDE_SET_PREFIX], +[ + unset CDPATH + dnl We can't give real code to that macro, only a value. + dnl It only matters for --help, since we set the prefix in this function anyway. + AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix}) + + KDE_SET_DEFAULT_BINDIRS + if test "x$prefix" = "xNONE"; then + dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it + KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) + else + dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH + kde_save_PATH="$PATH" + PATH="$exec_prefix/bin:$prefix/bin:$PATH" + KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) + PATH="$kde_save_PATH" + fi + + kde_libs_prefix=`$KDECONFIG --prefix` + if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then + AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs. + This means it has been moved since you installed it. + This won't work. Please recompile kdelibs for the new prefix. + ]) + fi + kde_libs_htmldir=`$KDECONFIG --install html --expandvars` + kde_libs_suffix=`$KDECONFIG --libsuffix` + + AC_MSG_CHECKING([where to install]) + if test "x$prefix" = "xNONE"; then + prefix=$kde_libs_prefix + AC_MSG_RESULT([$prefix (as returned by kde-config)]) + else + dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different + given_prefix=$prefix + AC_MSG_RESULT([$prefix (as requested)]) + fi + + # And delete superfluous '/' to make compares easier + prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + + AC_SUBST(KDECONFIG) + AC_SUBST(kde_libs_prefix) + AC_SUBST(kde_libs_htmldir) + + KDE_FAST_CONFIGURE + KDE_CONF_FILES +]) + +pushdef([AC_PROG_INSTALL], +[ + dnl our own version, testing for a -p flag + popdef([AC_PROG_INSTALL]) + dnl as AC_PROG_INSTALL works as it works we first have + dnl to save if the user didn't specify INSTALL, as the + dnl autoconf one overwrites INSTALL and we have no chance to find + dnl out afterwards + test -n "$INSTALL" && kde_save_INSTALL_given=$INSTALL + test -n "$INSTALL_PROGRAM" && kde_save_INSTALL_PROGRAM_given=$INSTALL_PROGRAM + test -n "$INSTALL_SCRIPT" && kde_save_INSTALL_SCRIPT_given=$INSTALL_SCRIPT + AC_PROG_INSTALL + + if test -z "$kde_save_INSTALL_given" ; then + # OK, user hasn't given any INSTALL, autoconf found one for us + # now we test, if it supports the -p flag + AC_MSG_CHECKING(for -p flag to install) + rm -f confinst.$$.* > /dev/null 2>&1 + echo "Testtest" > confinst.$$.orig + ac_res=no + if ${INSTALL} -p confinst.$$.orig confinst.$$.new > /dev/null 2>&1 ; then + if test -f confinst.$$.new ; then + # OK, -p seems to do no harm to install + INSTALL="${INSTALL} -p" + ac_res=yes + fi + fi + rm -f confinst.$$.* + AC_MSG_RESULT($ac_res) + fi + dnl the following tries to resolve some signs and wonders coming up + dnl with different autoconf/automake versions + dnl e.g.: + dnl *automake 1.4 install-strip sets A_M_INSTALL_PROGRAM_FLAGS to -s + dnl and has INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(A_M_INSTALL_PROGRAM_FLAGS) + dnl it header-vars.am, so there the actual INSTALL_PROGRAM gets the -s + dnl *automake 1.4a (and above) use INSTALL_STRIP_FLAG and only has + dnl INSTALL_PROGRAM = @INSTALL_PROGRAM@ there, but changes the + dnl install-@DIR@PROGRAMS targets to explicitly use that flag + dnl *autoconf 2.13 is dumb, and thinks it can use INSTALL_PROGRAM as + dnl INSTALL_SCRIPT, which breaks with automake <= 1.4 + dnl *autoconf >2.13 (since 10.Apr 1999) has not that failure + dnl *sometimes KDE does not use the install-@DIR@PROGRAM targets from + dnl automake (due to broken Makefile.am or whatever) to install programs, + dnl and so does not see the -s flag in automake > 1.4 + dnl to clean up that mess we: + dnl +set INSTALL_PROGRAM to use INSTALL_STRIP_FLAG + dnl which cleans KDE's program with automake > 1.4; + dnl +set INSTALL_SCRIPT to only use INSTALL, to clean up autoconf's problems + dnl with automake<=1.4 + dnl note that dues to this sometimes two '-s' flags are used (if KDE + dnl properly uses install-@DIR@PROGRAMS, but I don't care + dnl + dnl And to all this comes, that I even can't write in comments variable + dnl names used by automake, because it is so stupid to think I wanted to + dnl _use_ them, therefor I have written A_M_... instead of AM_ + dnl hmm, I wanted to say something ... ahh yes: Arghhh. + + if test -z "$kde_save_INSTALL_PROGRAM_given" ; then + INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)' + fi + if test -z "$kde_save_INSTALL_SCRIPT_given" ; then + INSTALL_SCRIPT='${INSTALL}' + fi +])dnl + +AC_DEFUN([KDE_LANG_CPLUSPLUS], +[AC_LANG_CPLUSPLUS +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC' +pushdef([AC_LANG_CPLUSPLUS], [popdef([AC_LANG_CPLUSPLUS]) KDE_LANG_CPLUSPLUS]) +]) + +pushdef([AC_LANG_CPLUSPLUS], +[popdef([AC_LANG_CPLUSPLUS]) +KDE_LANG_CPLUSPLUS +]) + +AC_DEFUN([KDE_CHECK_LONG_LONG], +[ +AC_MSG_CHECKING(for long long) +AC_CACHE_VAL(kde_cv_c_long_long, +[ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_LINK([], [ + long long foo = 0; + foo = foo+1; + ], + kde_cv_c_long_long=yes, kde_cv_c_long_long=no) + AC_LANG_RESTORE +]) +AC_MSG_RESULT($kde_cv_c_long_long) +if test "$kde_cv_c_long_long" = yes; then + AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have long long as datatype]) +fi +]) + +AC_DEFUN([KDE_CHECK_LIB], +[ + kde_save_LDFLAGS="$LDFLAGS" + dnl AC_CHECK_LIB modifies LIBS, so save it here + kde_save_LIBS="$LIBS" + LDFLAGS="$LDFLAGS $all_libraries" + case $host_os in + aix*) LDFLAGS="-brtl $LDFLAGS" + test "$GCC" = yes && LDFLAGS="-Wl,$LDFLAGS" + ;; + esac + AC_CHECK_LIB($1, $2, $3, $4, $5) + LDFLAGS="$kde_save_LDFLAGS" + LIBS="$kde_save_LIBS" +]) + +AC_DEFUN([KDE_JAVA_PREFIX], +[ + dir=`dirname "$1"` + base=`basename "$1"` + list=`ls -1 $dir 2> /dev/null` + for entry in $list; do + if test -d $dir/$entry/bin; then + case $entry in + $base) + javadirs="$javadirs $dir/$entry/bin" + ;; + esac + elif test -d $dir/$entry/jre/bin; then + case $entry in + $base) + javadirs="$javadirs $dir/$entry/jre/bin" + ;; + esac + fi + done +]) + +dnl KDE_CHEC_JAVA_DIR(onlyjre) +AC_DEFUN([KDE_CHECK_JAVA_DIR], +[ + +AC_ARG_WITH(java, +AC_HELP_STRING([--with-java=javadir],[use java installed in javadir, --without-java disables]), +[ ac_java_dir=$withval +], ac_java_dir="" +) + +AC_MSG_CHECKING([for Java]) + +dnl at this point ac_java_dir is either a dir, 'no' to disable, or '' to say look in $PATH +if test "x$ac_java_dir" = "xno"; then + kde_java_bindir=no + kde_java_includedir=no + kde_java_libjvmdir=no + kde_java_libgcjdir=no + kde_java_libhpidir=no +else + if test "x$ac_java_dir" = "x"; then + + + dnl No option set -> collect list of candidate paths + if test -n "$JAVA_HOME"; then + KDE_JAVA_PREFIX($JAVA_HOME) + fi + KDE_JAVA_PREFIX(/usr/j2se) + KDE_JAVA_PREFIX(/usr/lib/j2se) + KDE_JAVA_PREFIX(/usr/j*dk*) + KDE_JAVA_PREFIX(/usr/lib/j*dk*) + KDE_JAVA_PREFIX(/opt/j*sdk*) + KDE_JAVA_PREFIX(/usr/lib/java*) + KDE_JAVA_PREFIX(/usr/java*) + KDE_JAVA_PREFIX(/usr/java/j*dk*) + KDE_JAVA_PREFIX(/usr/java/j*re*) + KDE_JAVA_PREFIX(/usr/lib/SunJava2*) + KDE_JAVA_PREFIX(/usr/lib/SunJava*) + KDE_JAVA_PREFIX(/usr/lib/IBMJava2*) + KDE_JAVA_PREFIX(/usr/lib/IBMJava*) + KDE_JAVA_PREFIX(/opt/java*) + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + for dir in $PATH; do + if test -d "$dir"; then + javadirs="$javadirs $dir" + fi + done + IFS=$kde_save_IFS + jredirs= + + dnl Now javadirs contains a list of paths that exist, all ending with bin/ + for dir in $javadirs; do + dnl Check for the java executable + if test -x "$dir/java"; then + dnl And also check for a libjvm.so somewhere under there + dnl Since we have to go to the parent dir, /usr/bin is excluded, /usr is too big. + if test "$dir" != "/usr/bin"; then + libjvmdir=`find $dir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1` + if test ! -f $libjvmdir/libjvm.so; then continue; fi + jredirs="$jredirs $dir" + fi + fi + done + + dnl Now jredirs contains a reduced list, of paths where both java and ../**/libjvm.so was found + JAVAC= + JAVA= + kde_java_bindir=no + for dir in $jredirs; do + JAVA="$dir/java" + kde_java_bindir=$dir + if test -x "$dir/javac"; then + JAVAC="$dir/javac" + break + fi + done + + if test -n "$JAVAC"; then + dnl this substitution might not work - well, we test for jni.h below + kde_java_includedir=`echo $JAVAC | sed -e 's,bin/javac$,include/,'` + else + kde_java_includedir=no + fi + else + dnl config option set + kde_java_bindir=$ac_java_dir/bin + if test -x $ac_java_dir/bin/java && test ! -x $ac_java_dir/bin/javac; then + kde_java_includedir=no + else + kde_java_includedir=$ac_java_dir/include + fi + fi +fi + +dnl At this point kde_java_bindir and kde_java_includedir are either set or "no" +if test "x$kde_java_bindir" != "xno"; then + + dnl Look for libjvm.so + kde_java_libjvmdir=`find $kde_java_bindir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1` + dnl Look for libgcj.so + kde_java_libgcjdir=`find $kde_java_bindir/.. -name libgcj.so | sed 's,libgcj.so,,'|head -n 1` + dnl Look for libhpi.so and avoid green threads + kde_java_libhpidir=`find $kde_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,' | head -n 1` + + dnl Now check everything's fine under there + dnl the include dir is our flag for having the JDK + if test -d "$kde_java_includedir"; then + if test ! -x "$kde_java_bindir/javac"; then + AC_MSG_ERROR([javac not found under $kde_java_bindir - it seems you passed a wrong --with-java.]) + fi + if test ! -x "$kde_java_bindir/javah"; then + AC_MSG_ERROR([javah not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) + fi + if test ! -x "$kde_java_bindir/jar"; then + AC_MSG_ERROR([jar not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) + fi + if test ! -r "$kde_java_includedir/jni.h"; then + AC_MSG_ERROR([jni.h not found under $kde_java_includedir. Use --with-java or --without-java.]) + fi + + jni_includes="-I$kde_java_includedir" + dnl Strange thing, jni.h requires jni_md.h which is under genunix here.. + dnl and under linux here.. + + dnl not needed for gcj + + if test "x$kde_java_libgcjdir" = "x"; then + test -d "$kde_java_includedir/linux" && jni_includes="$jni_includes -I$kde_java_includedir/linux" + test -d "$kde_java_includedir/solaris" && jni_includes="$jni_includes -I$kde_java_includedir/solaris" + test -d "$kde_java_includedir/genunix" && jni_includes="$jni_includes -I$kde_java_includedir/genunix" + fi + + else + JAVAC= + jni_includes= + fi + + if test "x$kde_java_libgcjdir" = "x"; then + if test ! -r "$kde_java_libjvmdir/libjvm.so"; then + AC_MSG_ERROR([libjvm.so not found under $kde_java_libjvmdir. Use --without-java.]) + fi + else + if test ! -r "$kde_java_libgcjdir/libgcj.so"; then + AC_MSG_ERROR([libgcj.so not found under $kde_java_libgcjdir. Use --without-java.]) + fi + fi + + if test ! -x "$kde_java_bindir/java"; then + AC_MSG_ERROR([java not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) + fi + + dnl not needed for gcj compile + + if test "x$kde_java_libgcjdir" = "x"; then + if test ! -r "$kde_java_libhpidir/libhpi.so"; then + AC_MSG_ERROR([libhpi.so not found under $kde_java_libhpidir. Use --without-java.]) + fi + fi + + if test -n "$jni_includes"; then + dnl Check for JNI version + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_cxxflags_safe="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $all_includes $jni_includes" + + AC_TRY_COMPILE([ + #include + ], + [ + #ifndef JNI_VERSION_1_2 + Syntax Error + #endif + ],[ kde_jni_works=yes ], + [ kde_jni_works=no ]) + + if test $kde_jni_works = no; then + AC_MSG_ERROR([Incorrect version of $kde_java_includedir/jni.h. + You need to have Java Development Kit (JDK) version 1.2. + + Use --with-java to specify another location. + Use --without-java to configure without java support. + Or download a newer JDK and try again. + See e.g. http://java.sun.com/products/jdk/1.2 ]) + fi + + CXXFLAGS="$ac_cxxflags_safe" + AC_LANG_RESTORE + + dnl All tests ok, inform and subst the variables + + JAVAC=$kde_java_bindir/javac + JAVAH=$kde_java_bindir/javah + JAR=$kde_java_bindir/jar + AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) + if test "x$kde_java_libgcjdir" = "x"; then + JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_java_libhpidir -lhpi" + else + JVMLIBS="-L$kde_java_libgcjdir -lgcj" + fi + AC_MSG_RESULT([java JDK in $kde_java_bindir]) + + else + AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) + AC_MSG_RESULT([java JRE in $kde_java_bindir]) + fi +elif test -d "/Library/Java/Home"; then + kde_java_bindir="/Library/Java/Home/bin" + jni_includes="-I/Library/Java/Home/include" + + JAVAC=$kde_java_bindir/javac + JAVAH=$kde_java_bindir/javah + JAR=$kde_java_bindir/jar + JVMLIBS="-Xlinker -framework -Xlinker JavaVM" + + AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) + AC_MSG_RESULT([Apple Java Framework]) +else + AC_MSG_RESULT([none found]) +fi + +AC_SUBST(JAVAC) +AC_SUBST(JAVAH) +AC_SUBST(JAR) +AC_SUBST(JVMLIBS) +AC_SUBST(jni_includes) + +# for backward compat +kde_cv_java_includedir=$kde_java_includedir +kde_cv_java_bindir=$kde_java_bindir +]) + +dnl this is a redefinition of autoconf 2.5x's AC_FOREACH. +dnl When the argument list becomes big, as in KDE for AC_OUTPUT in +dnl big packages, m4_foreach is dog-slow. So use our own version of +dnl it. (matz@kde.org) +m4_define([mm_foreach], +[m4_pushdef([$1])_mm_foreach($@)m4_popdef([$1])]) +m4_define([mm_car], [[$1]]) +m4_define([mm_car2], [[$@]]) +m4_define([_mm_foreach], +[m4_if(m4_quote($2), [], [], + [m4_define([$1], mm_car($2))$3[]_mm_foreach([$1], + mm_car2(m4_shift($2)), + [$3])])]) +m4_define([AC_FOREACH], +[mm_foreach([$1], m4_split(m4_normalize([$2])), [$3])]) + +AC_DEFUN([KDE_NEED_FLEX], +[ +kde_libs_safe=$LIBS +LIBS="$LIBS $USER_LDFLAGS" +AM_PROG_LEX +LIBS=$kde_libs_safe +if test -z "$LEXLIB"; then + AC_MSG_ERROR([You need to have flex installed.]) +fi +AC_SUBST(LEXLIB) +]) + +AC_DEFUN([AC_PATH_QTOPIA], +[ + dnl TODO: use AC_CACHE_VAL + + if test -z "$1"; then + qtopia_minver_maj=1 + qtopia_minver_min=5 + qtopia_minver_pat=0 + else + qtopia_minver_maj=`echo "$1" | sed -e "s/^\(.*\)\..*\..*$/\1/"` + qtopia_minver_min=`echo "$1" | sed -e "s/^.*\.\(.*\)\..*$/\1/"` + qtopia_minver_pat=`echo "$1" | sed -e "s/^.*\..*\.\(.*\)$/\1/"` + fi + + qtopia_minver="$qtopia_minver_maj$qtopia_minver_min$qtopia_minver_pat" + qtopia_minverstr="$qtopia_minver_maj.$qtopia_minver_min.$qtopia_minver_pat" + + AC_REQUIRE([AC_PATH_QT]) + + AC_MSG_CHECKING([for Qtopia]) + + LIB_QTOPIA="-lqpe" + AC_SUBST(LIB_QTOPIA) + + kde_qtopia_dirs="$QPEDIR /opt/Qtopia" + + ac_qtopia_incdir=NO + + AC_ARG_WITH(qtopia-dir, + AC_HELP_STRING([--with-qtopia-dir=DIR],[where the root of Qtopia is installed]), + [ ac_qtopia_incdir="$withval"/include] ) + + qtopia_incdirs="" + for dir in $kde_qtopia_dirs; do + qtopia_incdirs="$qtopia_incdirs $dir/include" + done + + if test ! "$ac_qtopia_incdir" = "NO"; then + qtopia_incdirs="$ac_qtopia_incdir $qtopia_incdirs" + fi + + qtopia_incdir="" + AC_FIND_FILE(qpe/qpeapplication.h, $qtopia_incdirs, qtopia_incdir) + ac_qtopia_incdir="$qtopia_incdir" + + if test -z "$qtopia_incdir"; then + AC_MSG_ERROR([Cannot find Qtopia headers. Please check your installation.]) + fi + + qtopia_ver_maj=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION "\(.*\)\..*\..*".*,\1,p'`; + qtopia_ver_min=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\.\(.*\)\..*".*,\1,p'`; + qtopia_ver_pat=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\..*\.\(.*\)".*,\1,p'`; + + qtopia_ver="$qtopia_ver_maj$qtopia_ver_min$qtopia_ver_pat" + qtopia_verstr="$qtopia_ver_maj.$qtopia_ver_min.$qtopia_ver_pat" + if test "$qtopia_ver" -lt "$qtopia_minver"; then + AC_MSG_ERROR([found Qtopia version $qtopia_verstr but version $qtopia_minverstr +is required.]) + fi + + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + ac_cxxflags_safe="$CXXFLAGS" + ac_ldflags_safe="$LDFLAGS" + ac_libs_safe="$LIBS" + + CXXFLAGS="$CXXFLAGS -I$qtopia_incdir $all_includes" + LDFLAGS="$LDFLAGS $QT_LDFLAGS $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS" + LIBS="$LIBS $LIB_QTOPIA $LIBQT" + + cat > conftest.$ac_ext < +#include + +int main( int argc, char **argv ) +{ + QPEApplication app( argc, argv ); + return 0; +} +EOF + + if AC_TRY_EVAL(ac_link) && test -s conftest; then + rm -f conftest* + else + rm -f conftest* + AC_MSG_ERROR([Cannot link small Qtopia Application. For more details look at +the end of config.log]) + fi + + CXXFLAGS="$ac_cxxflags_safe" + LDFLAGS="$ac_ldflags_safe" + LIBS="$ac_libs_safe" + + AC_LANG_RESTORE + + QTOPIA_INCLUDES="-I$qtopia_incdir" + AC_SUBST(QTOPIA_INCLUDES) + + AC_MSG_RESULT([found version $qtopia_verstr with headers at $qtopia_incdir]) +]) + + +AC_DEFUN([KDE_INIT_DOXYGEN], +[ +AC_MSG_CHECKING([for Qt docs]) +kde_qtdir= +if test "${with_qt_dir+set}" = set; then + kde_qtdir="$with_qt_dir" +fi + +AC_FIND_FILE(qsql.html, [ $kde_qtdir/doc/html $QTDIR/doc/html /usr/share/doc/packages/qt3/html /usr/lib/qt/doc /usr/lib/qt3/doc /usr/lib/qt3/doc/html /usr/doc/qt3/html /usr/doc/qt3 /usr/share/doc/qt3-doc /usr/share/qt3/doc/html /usr/X11R6/share/doc/qt/html ], QTDOCDIR) +AC_MSG_RESULT($QTDOCDIR) + +AC_SUBST(QTDOCDIR) + +KDE_FIND_PATH(dot, DOT, [], []) +if test -n "$DOT"; then + KDE_HAVE_DOT="YES" +else + KDE_HAVE_DOT="NO" +fi +AC_SUBST(KDE_HAVE_DOT) +KDE_FIND_PATH(doxygen, DOXYGEN, [], []) +AC_SUBST(DOXYGEN) + +DOXYGEN_PROJECT_NAME="$1" +DOXYGEN_PROJECT_NUMBER="$2" +AC_SUBST(DOXYGEN_PROJECT_NAME) +AC_SUBST(DOXYGEN_PROJECT_NUMBER) + +KDE_HAS_DOXYGEN=no +if test -n "$DOXYGEN" && test -x "$DOXYGEN" && test -f $QTDOCDIR/qsql.html; then + KDE_HAS_DOXYGEN=yes +fi +AC_SUBST(KDE_HAS_DOXYGEN) + +]) + + +AC_DEFUN([AC_FIND_BZIP2], +[ +AC_MSG_CHECKING([for bzDecompress in libbz2]) +AC_CACHE_VAL(ac_cv_lib_bzip2, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +kde_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -lbz2 $LIBSOCKET" +kde_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK(dnl +[ +#define BZ_NO_STDIO +#include +], + [ bz_stream s; (void) bzDecompress(&s); ], + eval "ac_cv_lib_bzip2='-lbz2'", + eval "ac_cv_lib_bzip2=no") +LIBS="$kde_save_LIBS" +CXXFLAGS="$kde_save_CXXFLAGS" +AC_LANG_RESTORE +])dnl +AC_MSG_RESULT($ac_cv_lib_bzip2) + +if test ! "$ac_cv_lib_bzip2" = no; then + BZIP2DIR=bzip2 + + LIBBZ2="$ac_cv_lib_bzip2" + AC_SUBST(LIBBZ2) + +else + + cxx_shared_flag= + ld_shared_flag= + KDE_CHECK_COMPILER_FLAG(shared, [ + ld_shared_flag="-shared" + ]) + KDE_CHECK_COMPILER_FLAG(fPIC, [ + cxx_shared_flag="-fPIC" + ]) + + AC_MSG_CHECKING([for BZ2_bzDecompress in (shared) libbz2]) + AC_CACHE_VAL(ac_cv_lib_bzip2_prefix, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + kde_save_LIBS="$LIBS" + LIBS="$all_libraries $USER_LDFLAGS $ld_shared_flag -lbz2 $LIBSOCKET" + kde_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CFLAGS $cxx_shared_flag $all_includes $USER_INCLUDES" + + AC_TRY_LINK(dnl + [ + #define BZ_NO_STDIO + #include + ], + [ bz_stream s; (void) BZ2_bzDecompress(&s); ], + eval "ac_cv_lib_bzip2_prefix='-lbz2'", + eval "ac_cv_lib_bzip2_prefix=no") + LIBS="$kde_save_LIBS" + CXXFLAGS="$kde_save_CXXFLAGS" + AC_LANG_RESTORE + ])dnl + + AC_MSG_RESULT($ac_cv_lib_bzip2_prefix) + + if test ! "$ac_cv_lib_bzip2_prefix" = no; then + BZIP2DIR=bzip2 + + LIBBZ2="$ac_cv_lib_bzip2_prefix" + AC_SUBST(LIBBZ2) + + AC_DEFINE(NEED_BZ2_PREFIX, 1, [Define if the libbz2 functions need the BZ2_ prefix]) + dnl else, we just ignore this + fi + +fi +AM_CONDITIONAL(include_BZIP2, test -n "$BZIP2DIR") +]) + +dnl ------------------------------------------------------------------------ +dnl Try to find the SSL headers and libraries. +dnl $(SSL_LDFLAGS) will be -Lsslliblocation (if needed) +dnl and $(SSL_INCLUDES) will be -Isslhdrlocation (if needed) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([KDE_CHECK_SSL], +[ +LIBSSL="-lssl -lcrypto" +AC_REQUIRE([KDE_CHECK_LIB64]) + +ac_ssl_includes=NO ac_ssl_libraries=NO +ssl_libraries="" +ssl_includes="" +AC_ARG_WITH(ssl-dir, + AC_HELP_STRING([--with-ssl-dir=DIR],[where the root of OpenSSL is installed]), + [ ac_ssl_includes="$withval"/include + ac_ssl_libraries="$withval"/lib$kdelibsuff + ]) + +want_ssl=yes +AC_ARG_WITH(ssl, + AC_HELP_STRING([--without-ssl],[disable SSL checks]), + [want_ssl=$withval]) + +if test $want_ssl = yes; then + +AC_MSG_CHECKING(for OpenSSL) + +AC_CACHE_VAL(ac_cv_have_ssl, +[#try to guess OpenSSL locations + + ssl_incdirs="/usr/include /usr/local/include /usr/ssl/include /usr/local/ssl/include $prefix/include $kde_extra_includes" + ssl_incdirs="$ac_ssl_includes $ssl_incdirs" + AC_FIND_FILE(openssl/ssl.h, $ssl_incdirs, ssl_incdir) + ac_ssl_includes="$ssl_incdir" + + ssl_libdirs="/usr/lib$kdelibsuff /usr/local/lib$kdelibsuff /usr/ssl/lib$kdelibsuff /usr/local/ssl/lib$kdelibsuff $libdir $prefix/lib$kdelibsuff $exec_prefix/lib$kdelibsuff $kde_extra_libs" + if test ! "$ac_ssl_libraries" = "NO"; then + ssl_libdirs="$ac_ssl_libraries $ssl_libdirs" + fi + + test=NONE + ssl_libdir=NONE + for dir in $ssl_libdirs; do + try="ls -1 $dir/libssl*" + if test=`eval $try 2> /dev/null`; then ssl_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi + done + + ac_ssl_libraries="$ssl_libdir" + + ac_ldflags_safe="$LDFLAGS" + ac_libs_safe="$LIBS" + + LDFLAGS="$LDFLAGS -L$ssl_libdir $all_libraries" + LIBS="$LIBS $LIBSSL -lRSAglue -lrsaref" + + AC_TRY_LINK(,void RSAPrivateEncrypt(void);RSAPrivateEncrypt();, + ac_ssl_rsaref="yes" + , + ac_ssl_rsaref="no" + ) + + LDFLAGS="$ac_ldflags_safe" + LIBS="$ac_libs_safe" + + if test "$ac_ssl_includes" = NO || test "$ac_ssl_libraries" = NO; then + have_ssl=no + else + have_ssl=yes; + fi + + ]) + + eval "$ac_cv_have_ssl" + + AC_MSG_RESULT([libraries $ac_ssl_libraries, headers $ac_ssl_includes]) + + AC_MSG_CHECKING([whether OpenSSL uses rsaref]) + AC_MSG_RESULT($ac_ssl_rsaref) + + AC_MSG_CHECKING([for easter eggs]) + AC_MSG_RESULT([none found]) + +else + have_ssl=no +fi + +if test "$have_ssl" = yes; then + AC_MSG_CHECKING(for OpenSSL version) + dnl Check for SSL version + AC_CACHE_VAL(ac_cv_ssl_version, + [ + + cat >conftest.$ac_ext < +#include + int main() { + +#ifndef OPENSSL_VERSION_NUMBER + printf("ssl_version=\\"error\\"\n"); +#else + if (OPENSSL_VERSION_NUMBER < 0x00906000) + printf("ssl_version=\\"old\\"\n"); + else + printf("ssl_version=\\"ok\\"\n"); +#endif + return (0); + } +EOF + + ac_save_CPPFLAGS=$CPPFLAGS + if test "$ac_ssl_includes" != "/usr/include"; then + CPPFLAGS="$CPPFLAGS -I$ac_ssl_includes" + fi + + if AC_TRY_EVAL(ac_link); then + + if eval `./conftest 2>&5`; then + if test $ssl_version = error; then + AC_MSG_ERROR([$ssl_incdir/openssl/opensslv.h doesn't define OPENSSL_VERSION_NUMBER !]) + else + if test $ssl_version = old; then + AC_MSG_WARN([OpenSSL version too old. Upgrade to 0.9.6 at least, see http://www.openssl.org. SSL support disabled.]) + have_ssl=no + fi + fi + ac_cv_ssl_version="ssl_version=$ssl_version" + else + AC_MSG_ERROR([Your system couldn't run a small SSL test program. + Check config.log, and if you can't figure it out, send a mail to + David Faure , attaching your config.log]) + fi + + else + AC_MSG_ERROR([Your system couldn't link a small SSL test program. + Check config.log, and if you can't figure it out, send a mail to + David Faure , attaching your config.log]) + fi + CPPFLAGS=$ac_save_CPPFLAGS + + ]) + + eval "$ac_cv_ssl_version" + AC_MSG_RESULT($ssl_version) +fi + +if test "$have_ssl" != yes; then + LIBSSL=""; +else + AC_DEFINE(HAVE_SSL, 1, [If we are going to use OpenSSL]) + ac_cv_have_ssl="have_ssl=yes \ + ac_ssl_includes=$ac_ssl_includes ac_ssl_libraries=$ac_ssl_libraries ac_ssl_rsaref=$ac_ssl_rsaref" + + + ssl_libraries="$ac_ssl_libraries" + ssl_includes="$ac_ssl_includes" + + if test "$ac_ssl_rsaref" = yes; then + LIBSSL="-lssl -lcrypto -lRSAglue -lrsaref" + fi + + if test $ssl_version = "old"; then + AC_DEFINE(HAVE_OLD_SSL_API, 1, [Define if you have OpenSSL < 0.9.6]) + fi +fi + +SSL_INCLUDES= + +if test "$ssl_includes" = "/usr/include"; then + if test -f /usr/kerberos/include/krb5.h; then + SSL_INCLUDES="-I/usr/kerberos/include" + fi +elif test "$ssl_includes" != "/usr/local/include" && test -n "$ssl_includes"; then + SSL_INCLUDES="-I$ssl_includes" +fi + +if test "$ssl_libraries" = "/usr/lib" || test "$ssl_libraries" = "/usr/local/lib" || test -z "$ssl_libraries" || test "$ssl_libraries" = "NONE"; then + SSL_LDFLAGS="" +else + SSL_LDFLAGS="-L$ssl_libraries -R$ssl_libraries" +fi + +AC_SUBST(SSL_INCLUDES) +AC_SUBST(SSL_LDFLAGS) +AC_SUBST(LIBSSL) +]) + +AC_DEFUN([KDE_CHECK_STRLCPY], +[ + AC_REQUIRE([AC_CHECK_STRLCAT]) + AC_REQUIRE([AC_CHECK_STRLCPY]) + AC_CHECK_SIZEOF(size_t) + AC_CHECK_SIZEOF(unsigned long) + + AC_MSG_CHECKING([sizeof size_t == sizeof unsigned long]) + AC_TRY_COMPILE(,[ + #if SIZEOF_SIZE_T != SIZEOF_UNSIGNED_LONG + choke me + #endif + ],AC_MSG_RESULT([yes]),[ + AC_MSG_RESULT(no) + AC_MSG_ERROR([ + Apparently on your system our assumption sizeof size_t == sizeof unsigned long + does not apply. Please mail kde-devel@kde.org with a description of your system! + ]) + ]) +]) + +AC_DEFUN([KDE_CHECK_BINUTILS], +[ + AC_MSG_CHECKING([if ld supports unversioned version maps]) + + kde_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" + echo "{ local: extern \"C++\" { foo }; };" > conftest.map + AC_TRY_LINK([int foo;], +[ +#ifdef __INTEL_COMPILER +icc apparently does not support libtools version-info and version-script +at the same time. Dunno where the bug is, but until somebody figured out, +better disable the optional version scripts. +#endif + + foo = 42; +], kde_supports_versionmaps=yes, kde_supports_versionmaps=no) + LDFLAGS="$kde_save_LDFLAGS" + rm -f conftest.map + AM_CONDITIONAL(include_VERSION_SCRIPT, + [test "$kde_supports_versionmaps" = "yes" && test "$kde_use_debug_code" = "no"]) + + AC_MSG_RESULT($kde_supports_versionmaps) +]) + +AC_DEFUN([AM_PROG_OBJC],[ +AC_CHECK_PROGS(OBJC, gcc, gcc) +test -z "$OBJC" && AC_MSG_ERROR([no acceptable objective-c gcc found in \$PATH]) +if test "x${OBJCFLAGS-unset}" = xunset; then + OBJCFLAGS="-g -O2" +fi +AC_SUBST(OBJCFLAGS) +_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES(OBJC)]) +]) + +AC_DEFUN([KDE_CHECK_PERL], +[ + KDE_FIND_PATH(perl, PERL, [$bindir $exec_prefix/bin $prefix/bin], [ + AC_MSG_ERROR([No Perl found in your $PATH. +We need perl to generate some code.]) + ]) + AC_SUBST(PERL) +]) + +AC_DEFUN([KDE_CHECK_LARGEFILE], +[ +AC_SYS_LARGEFILE +if test "$ac_cv_sys_file_offset_bits" != no; then + CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits" +fi + +if test "x$ac_cv_sys_large_files" != "xno"; then + CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=1" +fi + +]) + +dnl A small extension to PKG_CHECK_MODULES (defined in pkg.m4.in) +dnl which allows to search for libs that get installed into the KDE prefix. +dnl +dnl Syntax: KDE_PKG_CHECK_MODULES(KSTUFF, libkexif >= 0.2 glib = 1.3.4, action-if, action-not) +dnl defines KSTUFF_LIBS, KSTUFF_CFLAGS, see pkg-config man page +dnl also defines KSTUFF_PKG_ERRORS on error +AC_DEFUN([KDE_PKG_CHECK_MODULES], [ + + PKG_CONFIG_PATH="$prefix/lib/pkgconfig:$PKG_CONFIG_PATH" + if test "$prefix" != "$kde_libs_prefix"; then + PKG_CONFIG_PATH="$kde_libs_prefix/lib/pkgconfig:$PKG_CONFIG_PATH" + fi + export PKG_CONFIG_PATH + PKG_CHECK_MODULES($1,$2,$3,$4) +]) + diff --git a/admin/am_edit b/admin/am_edit new file mode 100644 index 0000000..8b081a0 --- /dev/null +++ b/admin/am_edit @@ -0,0 +1,2448 @@ +#!/usr/bin/perl -w + +# Expands the specialised KDE tags in Makefile.in to (hopefully) valid +# make syntax. +# When called without file parameters, we work recursively on all Makefile.in +# in and below the current subdirectory. When called with file parameters, +# only those Makefile.in are changed. +# The currently supported tags are +# +# {program}_METASOURCES +# where you have a choice of two styles +# {program}_METASOURCES = name1.moc name2.moc ... [\] +# {program}_METASOURCES = AUTO +# The second style requires other tags as well. +# +# To install icons : +# KDE_ICON = iconname iconname2 ... +# KDE_ICON = AUTO +# +# For documentation : +# http://developer.kde.org/documentation/other/developer-faq.html +# +# and more new tags TBD! +# +# The concept (and base code) for this program came from automoc, +# supplied by the following +# +# Matthias Ettrich (The originator) +# Kalle Dalheimer (The original implementator) +# Harri Porten +# Alex Zepeda +# David Faure +# Stephan Kulow +# Dirk Mueller + +use Cwd; +use File::Find; +use File::Basename; + +# Prototype the functions +sub initialise (); +sub processMakefile ($); +sub updateMakefile (); +sub restoreMakefile (); + +sub removeLine ($$); +sub appendLines ($); +sub substituteLine ($$); + +sub findMocCandidates (); +sub pruneMocCandidates ($); +sub checkMocCandidates (); +sub addMocRules (); +sub findKcfgFile($); + +sub tag_AUTOMAKE (); +sub tag_META_INCLUDES (); +sub tag_METASOURCES (); +sub tag_POFILES (); +sub tag_DOCFILES (); +sub tag_LOCALINSTALL(); +sub tag_IDLFILES(); +sub tag_UIFILES(); +sub tag_KCFGFILES(); +sub tag_SUBDIRS(); +sub tag_ICON(); +sub tag_CLOSURE(); +sub tag_NO_UNDEFINED(); +sub tag_NMCHECK(); +sub tag_DIST(); +sub tag_KDEINIT(); + +# Some global globals... +$verbose = 0; # a debug flag +$thisProg = "$0"; # This programs name +$topdir = cwd(); # The current directory +@makefiles = (); # Contains all the files we'll process +@foreignfiles = (); +$start = (times)[0]; # some stats for testing - comment out for release +$version = "v0.2"; +$errorflag = 0; +$cppExt = "(cpp|cc|cxx|C|c\\+\\+)"; +$hExt = "(h|H|hh|hxx|hpp|h\\+\\+)"; +$progId = "KDE tags expanded automatically by " . basename($thisProg); +$automkCall = "\n"; +$printname = ""; # used to display the directory the Makefile is in +$use_final = 1; # create code for --enable-final +$cleantarget = "clean"; +$dryrun = 0; +$pathoption = 0; +$foreign_libtool = 0; + +while (defined ($ARGV[0])) +{ + $_ = shift; + if (/^--version$/) + { + print STDOUT "\n"; + print STDOUT basename($thisProg), " $version\n", + "This is really free software, unencumbered by the GPL.\n", + "You can do anything you like with it except sueing me.\n", + "Copyright 1998 Kalle Dalheimer \n", + "Concept, design and unnecessary questions about perl\n", + " by Matthias Ettrich \n\n", + "Making it useful by Stephan Kulow and\n", + "Harri Porten \n", + "Updated (Feb-1999), John Birch \n", + "Fixes and Improvements by Dirk Mueller \n", + "Current Maintainer Stephan Kulow\n\n"; + exit 0; + } + elsif (/^--verbose$|^-v$/) + { + $verbose = 1; # Oh is there a problem...? + } + elsif (/^(?:-p|--path=)(.+)$/) + { + my $p = $1; + $thisProg = $p . "/". basename($thisProg); + warn ("$thisProg doesn't exist\n") if (!(-f $thisProg)); + $thisProg .= " -p".$p; + $pathoption=1; + } + elsif (/^--help$|^-h$/) + { + print STDOUT "Usage $thisProg [OPTION] ... [dir/Makefile.in]...\n", + "\n", + "Patches dir/Makefile.in generated by automake\n", + "(where dir can be an absolute or relative directory name)\n", + "\n", + " -v, --verbose verbosely list files processed\n", + " -h, --help print this help, then exit\n", + " --version print version number, then exit\n", + " -p, --path= use the path to am_edit if the path\n", + " called from is not the one to be used\n", + " --no-final don't patch for --enable-final\n"; + + exit 0; + } + elsif (/^--no-final$/) + { + $use_final = 0; + $thisProg .= " --no-final"; + } + elsif (/^--foreign-libtool$/) + { + $foreign_libtool = 1; + $thisProg .= " --foreign-libtool"; + } + elsif (/^-n$/) + { + $dryrun = 1; + } + else + { + # user selects what input files to check + # add full path if relative path is given + $_ = cwd()."/".$_ if (! /^\//); + print "User wants $_\n" if ($verbose); + push (@makefiles, $_); + } +} + +if ($thisProg =~ /^\// && !$pathoption ) +{ + print STDERR "Illegal full pathname call performed...\n", + "The call to \"$thisProg\"\nwould be inserted in some Makefile.in.\n", + "Please use option --path.\n"; + exit 1; +} + +# Only scan for files when the user hasn't entered data +if (!@makefiles) +{ + print STDOUT "Scanning for Makefile.in\n" if ($verbose); + find (\&add_makefile, cwd()); + #chdir('$topdir'); +} else { + print STDOUT "Using input files specified by user\n" if ($verbose); +} + +foreach $makefile (sort(@makefiles)) +{ + processMakefile ($makefile); + last if ($errorflag); +} + +# Just some debug statistics - comment out for release as it uses printf. +printf STDOUT "Time %.2f CPU sec\n", (times)[0] - $start if ($verbose); + +exit $errorflag; # causes make to fail if erroflag is set + +#----------------------------------------------------------------------------- + +# In conjunction with the "find" call, this builds the list of input files +sub add_makefile () +{ + push (@makefiles, $File::Find::name) if (/Makefile.in$/); +} + +#----------------------------------------------------------------------------- + +# Processes a single make file +# The parameter contains the full path name of the Makefile.in to use +sub processMakefile ($) +{ + # some useful globals for the subroutines called here + local ($makefile) = @_; + local @headerdirs = ('.'); + local $haveAutomocTag = 0; + local $MakefileData = ""; + + local $cxxsuffix = "KKK"; + + local @programs = (); # lists the names of programs and libraries + local $program = ""; + + local @kdeinits = (); # lists the kdeinit targets + + local %realObjs = (); # lists the objects compiled into $program + local %sources = (); # lists the sources used for $program + local %finalObjs = (); # lists the objects compiled when final + local %realname = (); # the binary name of program variable + local %idlfiles = (); # lists the idl files used for $program + local %globalmocs = ();# list of all mocfiles (in %mocFiles format) + local %important = (); # list of files to be generated asap + local %uiFiles = (); + local %kcfgFiles = (); + + local $allidls = ""; + local $idl_output = "";# lists all idl generated files for cleantarget + local $ui_output = "";# lists all uic generated files for cleantarget + local $kcfg_output = "";# lists all kcfg generated files for cleantarget + + local %dependmocs = (); + + local $metasourceTags = 0; + local $dep_files = ""; + local $dep_finals = ""; + local %target_adds = (); # the targets to add + local %rule_adds = (); + local $kdelang = ""; + local @cleanfiles = (); + local $cleanMoc = ""; + local $closure_output = ""; + + local %varcontent = (); + + $makefileDir = dirname($makefile); + chdir ($makefileDir); + $printname = $makefile; + $printname =~ s/^\Q$topdir\E\///; + $makefile = basename($makefile); + + print STDOUT "Processing makefile $printname\n" if ($verbose); + + # Setup and see if we need to do this. + return if (!initialise()); + + tag_AUTOMAKE (); # Allows a "make" to redo the Makefile.in + tag_META_INCLUDES (); # Supplies directories for src locations + + foreach $program (@programs) { + $sources_changed{$program} = 0; + $dependmocs{$program} = ""; + $important{$program} = ""; + tag_IDLFILES(); # Sorts out idl rules + tag_NO_UNDEFINED(); + tag_CLOSURE(); + tag_NMCHECK(); + tag_UIFILES(); # Sorts out ui rules + tag_KCFGFILES(); # Sorts out kcfg rules + tag_METASOURCES (); # Sorts out the moc rules + if ($sources_changed{$program}) { + my $lookup = $program . '_SOURCES\s*=[ \t]*(.*)'; + + if($program =~ /libkdeinit_(.*)/) { + my $prog = $1; + substituteLine($prog . '_SOURCES\s*=[ \t]*(.*)', + "${prog}_SOURCES = ${prog}_dummy.$cxxsuffix\n" . + "libkdeinit_${prog}_SOURCES = " . $sources{$program}); + $sources{$prog} = "${prog}_dummy.$cxxsuffix"; + } + else { + substituteLine($lookup, "$program\_SOURCES=" . $sources{$program}); + } + } + if ($important{$program}) { + local %source_dict = (); + for $source (split(/[\034\s]+/, $sources{$program})) { + $source_dict{$source} = 1; + } + for $source (@cleanfiles) { + $source_dict{$source} = 0; + } + for $source (keys %source_dict) { + next if (!$source); + if ($source_dict{$source}) { + # sanity check + if (! -f $source) { + print STDERR "Error: $source is listed in a _SOURCE line in $printname, but doesn't exist yet. Put it in DISTCLEANFILES!\n"; + } else { + $target_adds{"\$(srcdir)/$source"} .= $important{$program}; + } + } + } + } + } + if ($cleanMoc) { + # Always add dist clean tag + # Add extra *.moc.cpp files created for USE_AUTOMOC because they + # aren't included in the normal *.moc clean rules. + appendLines ("$cleantarget-metasources:\n\t-rm -f $cleanMoc\n"); + $target_adds{"$cleantarget-am"} .= "$cleantarget-metasources "; + } + + tag_DIST() unless ($kdeopts{"noautodist"}); + + if ($idl_output) { + appendLines ("$cleantarget-idl:\n\t-rm -f $idl_output\n"); + $target_adds{"$cleantarget-am"} .= "$cleantarget-idl "; + } + + if ($ui_output) { + appendLines ("$cleantarget-ui:\n\t-rm -f $ui_output\n"); + $target_adds{"$cleantarget-am"} .= "$cleantarget-ui "; + } + + if ($kcfg_output) { + appendLines ("$cleantarget-kcfg:\n\t-rm -f $kcfg_output\n"); + $target_adds{"$cleantarget-am"} .= "$cleantarget-kcfg "; + } + + if ($closure_output) { + appendLines ("$cleantarget-closures:\n\t-rm -f $closure_output\n"); + $target_adds{"$cleantarget-am"} .= "$cleantarget-closures "; + } + + if ($MakefileData =~ /\nKDE_LANG\s*=\s*(\S*)\s*\n/) { + $kdelang = '$(KDE_LANG)' + } else { + $kdelang = ''; + } + + tag_POFILES (); # language rules for po directory + tag_DOCFILES (); # language rules for doc directories + tag_LOCALINSTALL(); # add $(DESTDIR) before all kde_ dirs + tag_ICON(); + tag_SUBDIRS(); + + my $tmp = "force-reedit:\n"; + $tmp .= "\t$automkCall\n\tcd \$(top_srcdir) && perl $thisProg $printname\n\n"; + appendLines($tmp); + + make_bcheck_target(); + make_meta_classes(); + tag_COMPILE_FIRST(); + tag_FINAL() if (!$kdeopts{"nofinal"}); + + my $final_lines = "final:\n\t\$(MAKE) "; + my $final_install_lines = "final-install:\n\t\$(MAKE) "; + my $nofinal_lines = "no-final:\n\t\$(MAKE) "; + my $nofinal_install_lines = "no-final-install:\n\t\$(MAKE) "; + + foreach $program (@programs) { + my $lookup = $program . '_OBJECTS\s*=[ \t]*.*'; + my $new = ""; + my @list = split(/[\034\s]+/, $realObjs{$program}); + if (!$kdeopts{"nofinal"} && @list > 1 && $finalObjs{$program}) { + $new .= "$program\_final\_OBJECTS = " . $finalObjs{$program}; + $new .= "\n$program\_nofinal\_OBJECTS = " . $realObjs{$program}; + $new .= "\n\@KDE_USE_FINAL_FALSE\@$program\_OBJECTS = \$($program\_nofinal\_OBJECTS)"; + $new .= "\n\@KDE_USE_FINAL_TRUE\@$program\_OBJECTS = \$($program\_final\_OBJECTS)"; + + $final_lines .= "$program\_OBJECTS=\"\$($program\_final_OBJECTS)\" "; + $final_install_lines .= "$program\_OBJECTS=\"\$($program\_final_OBJECTS)\" "; + $nofinal_lines .= "$program\_OBJECTS=\"\$($program\_nofinal\_OBJECTS)\" "; + $nofinal_install_lines .= "$program\_OBJECTS=\"\$($program\_nofinal_OBJECTS)\" "; + } else { + $new = "$program\_OBJECTS = " . $realObjs{$program}; + } + if($MakefileData =~ m/\n$lookup/) { + substituteLine ($lookup, $new); + } + else { + appendLines("$new\n"); + } + } + appendLines($final_lines . "all-am\n"); + appendLines($final_install_lines . "install-am\n"); + appendLines($nofinal_lines . "all-am\n"); + appendLines($nofinal_install_lines . "install-am\n"); + + my $lookup = '(\@\S+\@)?DEP_FILES\s*=[ \t]*(.*)'; + if ($MakefileData =~ /\n$lookup/) { + my $condition = $1; + my $depfiles = $2; + my $workfiles; + + if ($dep_finals) { + # Add the conditions on every line, since + # there may be line continuations in the list. + $workfiles = "$dep_files $dep_finals $depfiles"; + $workfiles =~ s/\034/\034$condition\@KDE_USE_FINAL_TRUE\@\t/g; + $lines = "$condition\@KDE_USE_FINAL_TRUE\@DEP_FILES = $workfiles\n"; + $workfiles = "$dep_files $depfiles"; + $workfiles =~ s/\034/\034$condition\@KDE_USE_FINAL_FALSE\@\t/g; + $lines .= "$condition\@KDE_USE_FINAL_FALSE\@DEP_FILES = $workfiles"; + } else { + $workfiles = "$dep_files $depfiles"; + $workfiles =~ s/\034/\034$condition\t/g; + $lines = $condition . "DEP_FILES = $workfiles"; + } + substituteLine($lookup, $lines); + } + + # new recursive targets + $target_adds{ "nmcheck" } .= ""; # always create nmcheck target + $target_adds{ "nmcheck-am" } .= "nmcheck"; + $lookup = 'RECURSIVE_TARGETS\s*=[ \t]*(.*)'; + if ($MakefileData =~ /\n$lookup/) { + substituteLine($lookup, "RECURSIVE_TARGETS = $1 nmcheck-recursive bcheck-recursive"); + } + + my $cvs_lines = "cvs-clean:\n"; + $cvs_lines .= "\t\$(MAKE) admindir=\$(top_srcdir)/admin -f \$(top_srcdir)/admin/Makefile.common cvs-clean\n"; + appendLines($cvs_lines); + + $cvs_lines = "kde-rpo-clean:\n"; + $cvs_lines .= "\t-rm -f *.rpo\n"; + appendLines($cvs_lines); + $target_adds{"clean"} .= "kde-rpo-clean "; + + my %target_dels = ("install-data-am" => ""); + + # some strange people like to do a install-exec, and expect that also + # all modules are installed. automake doesn't know this, so we need to move + # this here from install-data to install-exec. + if ($MakefileData =~ m/\nkde_module_LTLIBRARIES\s*=/) { +# $target_adds{"install-exec-am"} .= "install-kde_moduleLTLIBRARIES "; +# don't use $target_adds here because we need to append the dependency, not +# prepend it. Fixes #44342 , when a module depends on a lib in the same dir +# and libtool needs it during relinking upon install (Simon) + my $lookup = "install-exec-am:([^\n]*)"; + if($MakefileData =~ /\n$lookup\n/) { + substituteLine("$lookup", "install-exec-am: $1 install-kde_moduleLTLIBRARIES"); + } + $target_dels{"install-data-am"} .= "install-kde_moduleLTLIBRARIES "; + $target_adds{"install-data-am"} .= " "; + } + + my $lines = ""; + + foreach $add (keys %target_adds) { + my $lookup = quotemeta($add) . ':([^\n]*)'; + if ($MakefileData =~ /\n$lookup\n/) { + my $newlines = $1; + my $oldlines = $lookup; + if (defined $target_dels{$add}) { + foreach $del (split(' ', $target_dels{$add})) { + $newlines =~ s/\s*$del\s*/ /g; + } + } + substituteLine($oldlines, "$add: " . $target_adds{$add} . $newlines); + } else { + $lines .= "$add: " . $target_adds{$add} . "\n"; + } + } + + appendLines($lines) if ($lines); + + $lines = join("\n", values %rule_adds); + appendLines($lines) if ($lines); + + my $found = 1; + + while ($found) { + if ($MakefileData =~ m/\n(.*)\$\(CXXFLAGS\)(.*)\n/) { + my $stuff_before = $1; + my $stuff_after = $2; + my $lookup = quotemeta("$1\$(CXXFLAGS)$2"); + my $replacement = "$1\$(KCXXFLAGS)$2"; + $MakefileData =~ s/$lookup/$replacement/; + $lookup =~ s/\\\$\\\(CXXFLAGS\\\)/\\\$\\\(KCXXFLAGS\\\)/; + $replacement = "$stuff_before\$(KCXXFLAGS) \$(KDE_CXXFLAGS)$stuff_after"; + next if ($stuff_before =~ /\$\(KDE_CXXFLAGS\)/ or $stuff_after =~ /\$\(KDE_CXXFLAGS\)/); + substituteLine($lookup, $replacement); + } else { + $found = 0; + } + } + + if($foreign_libtool == 0) { + $lookup = '(\n[^#].*\$\(LIBTOOL\) --mode=link) (\$\(CXXLD\).*\$\(KCXXFLAGS\))'; + + if ($MakefileData =~ m/$lookup/ ) { + $MakefileData =~ s/$lookup/$1 --tag=CXX $2/; + } + + $lookup = '(\n[^#].*\$\(LIBTOOL\) --mode=compile)\s+(\$\(CXX\)\s+)'; + if ($MakefileData =~ m/$lookup/ ) { + $MakefileData =~ s/$lookup/$1 --tag=CXX $2/; + } + } + + $MakefileData =~ s/\$\(KCXXFLAGS\)/\$\(CXXFLAGS\)/g; + + $lookup = '(.*)cp -pr \$\$/\$\$file \$\(distdir\)/\$\$file(.*)'; + if ($MakefileData =~ m/\n$lookup\n/) { + substituteLine($lookup, "$1cp -pr \$\$d/\$\$file \$(distdir)/\$\$file$2"); + } + + # Always update the Makefile.in + updateMakefile (); + return; +} + +#----------------------------------------------------------------------------- + +# Beware: This procedure is not complete. E.g. it also parses lines +# containing a '=' in rules (for instance setting shell vars). For our +# usage this us enough, though. +sub read_variables () +{ + while ($MakefileData =~ /\n\s*(\S+)\s*=([^\n]*)/g) { + $varcontent{$1} = $2; + } +} + +# Check to see whether we should process this make file. +# This is where we look for tags that we need to process. +# A small amount of initialising on the tags is also done here. +# And of course we open and/or create the needed make files. +sub initialise () +{ + if (! -r "Makefile.am") { + print STDOUT "found Makefile.in without Makefile.am\n" if ($verbose); + return 0; + } + + # Checking for files to process... + + open (FILEIN, $makefile) || die "Can't open $makefileDir/$makefile: $!\n"; + # perl bug in 5.8.0: in utf8 mode it badly screws up + binmode(FILEIN, ":bytes") if ($] >= 5.008); + # Read the file + # stat(FILEIN)[7] might look more elegant, but is slower as it + # requires stat'ing the file + seek(FILEIN, 0, 2); + my $fsize = tell(FILEIN); + seek(FILEIN, 0, 0); + read FILEIN, $MakefileData, $fsize; + close FILEIN; + print "DOS CRLF within $makefileDir/$makefile!\n" if($MakefileData =~ y/\r//d); + + # Remove the line continuations, but keep them marked + # Note: we lose the trailing spaces but that's ok. + # Don't mangle line-leading spaces (usually tabs) + # since they're important. + $MakefileData =~ s/\\\s*\n/\034/g; + + # If we've processed the file before... + restoreMakefile () if ($MakefileData =~ /$progId/); + + foreach $dir (@foreignfiles) { + if (substr($makefileDir,0,length($dir)) eq $dir) { + return 0; + } + } + + %kdeopts = (); + $kdeopts{"foreign"} = 0; + $kdeopts{"qtonly"} = 0; + $kdeopts{"noautodist"} = 0; + $kdeopts{"foreign-libtool"} = $foreign_libtool; + $kdeopts{"nofinal"} = !$use_final; # default + + read_variables(); + + if ($MakefileData =~ /\nKDE_OPTIONS\s*=[ \t]*([^\n]*)\n/) { + my $kde_options_str = $1; + local @kde_options = split(/[\034\s]+/, $kde_options_str); + if (grep(/^foreign$/, @kde_options)) { + push(@foreignfiles, $makefileDir . "/"); + return 0; # don't touch me + } + for $opt (@kde_options) { + if (!defined $kdeopts{$opt}) { + print STDERR "Warning: unknown option $opt in $printname\n"; + } else { + $kdeopts{$opt} = 1; + } + } + } + + # Look for the tags that mean we should process this file. + $metasourceTags = 0; + $metasourceTags++ while ($MakefileData =~ /\n[^=\#]*METASOURCES\s*=/g); + + my $pofileTag = 0; + $pofileTag++ while ($MakefileData =~ /\nPOFILES\s*=/g); + if ($pofileTag > 1) + { + print STDERR "Error: Only one POFILES tag allowed\n"; + $errorflag = 1; + } + + while ($MakefileData =~ /\n\.SUFFIXES:([^\n]+)\n/g) { + my $suffixes_str = $1; + my @list=split(' ', $suffixes_str); + foreach $ext (@list) { + if ($ext =~ /^\.$cppExt$/) { + $cxxsuffix = $ext; + $cxxsuffix =~ s/\.//g; + print STDOUT "will use suffix $cxxsuffix\n" if ($verbose); + last; + } + } + } + + tag_KDEINIT(); + + while ($MakefileData =~ /\n(\S*)_OBJECTS\s*=[\034 \t]*([^\n]*)\n/g) { + + my $program = $1; + my $objs = $2; # safe them + + my $ocv = 0; + + my @objlist = split(/[\034\s]+/, $objs); + foreach $obj (@objlist) { + if ($obj =~ /(\S*)\$\((\S+)\)/ ) { + my $pre = $1; + my $variable = $2; + if ($pre eq '' && exists($varcontent{$variable})) { + my @addlist = split(/[\034\s]+/, $varcontent{$variable}); + push(@objlist, @addlist); + } elsif ($variable !~ 'OBJEXT' && $variable !~ /am__objects_\d+/ ) { + $ocv = 1; + } + } + } + + next if ($ocv); + next if ($program =~ /^am_libkdeinit_/); + + $program =~ s/^am_// if ($program =~ /^am_/); + + my $sourceprogram = $program; + $sourceprogram =~ s/\@am_/\@/ if($sourceprogram =~ /^.*\@am_.+/); + + print STDOUT "found program $program\n" if ($verbose); + push(@programs, $program); + + $realObjs{$program} = $objs; + + if ($MakefileData =~ /\n$sourceprogram\_SOURCES\s*=[ \t]*(.*)\n/) { + $sources{$program} = $1; + } + else { + $sources{$program} = ""; + print STDERR "found program with no _SOURCES: $program\n"; + } + + my $realprogram = $program; + $realprogram =~ s/_/./g; # unmask to regexp + if ($MakefileData =~ /\n($realprogram)(\$\(EXEEXT\)?)?:.*\$\($program\_OBJECTS\)/) { + $realname{$program} = $1; + } else { + # not standard Makefile - nothing to worry about + $realname{$program} = ""; + } + } + + my $lookup = 'DEPDIR\s*=.*'; + if ($MakefileData !~ /\n$lookup/) { + $lookup = 'bindir\s*=[ \t]*.*'; + substituteLine($lookup, "DEPDIR = .deps\n$1") if ($MakefileData =~ /\n($lookup)/); + } + + my @marks = ('MAINTAINERCLEANFILES', 'CLEANFILES', 'DISTCLEANFILES'); + foreach $mark (@marks) { + while ($MakefileData =~ /\n($mark)\s*=[ \t]*([^\n]*)/g) { + my $clean_str = $2; + foreach $file (split('[\034\s]+', $clean_str)) { + $file =~ s/\.\///; + push(@cleanfiles, $file); + } + } + } + + my $localTag = 0; + $localTag++ if ($MakefileData =~ /\ninstall-\S+-local:/); + + return (!$errorflag); +} + +#----------------------------------------------------------------------------- + +# Gets the list of user defined directories - relative to $srcdir - where +# header files could be located. +sub tag_META_INCLUDES () +{ + my $lookup = '[^=\n]*META_INCLUDES\s*=[ \t]*(.*)'; + return 1 if ($MakefileData !~ /($lookup)\n/); + print STDOUT "META_INCLUDE processing <$1>\n" if ($verbose); + + my $headerStr = $2; + removeLine ($lookup, $1); + + my @headerlist = split(/[\034\s]+/, $headerStr); + + foreach $dir (@headerlist) + { + $dir =~ s#\$\(srcdir\)#.#; + if (! -d $dir) + { + print STDERR "Warning: $dir can't be found. ", + "Must be a relative path to \$(srcdir)\n"; + } + else + { + push (@headerdirs, $dir); + } + } + + return 0; +} + +#----------------------------------------------------------------------------- + +sub tag_FINAL() +{ + my @final_names = (); + + foreach $program (@programs) { + + if ($sources{$program} =~ /\(/) { + print STDOUT "found ( in $program\_SOURCES. skipping\n" if ($verbose); + next; + } + + my $mocs = ""; # Moc files (in this program) + my $moc_cpp_added = 0; # If we added some .moc.cpp files, due to + # no other .cpp file including the .moc one. + + my @progsources = split(/[\034\s]+/, $sources{$program}); + my %shash = (); + @shash{@progsources} = 1; # we are only interested in the existence + my %sourcelist = (); + my %extradeps = (); + + foreach $source (@progsources) { + my $suffix = $source; + $suffix =~ s/^.*\.([^\.]+)$/$1/; + + $sourcelist{$suffix} .= "$source "; + } + foreach my $mocFile (keys (%globalmocs)) + { + my ($dir, $hFile, $cppFile) = split ("\035", $globalmocs{$mocFile}, 3); + if (defined ($cppFile)) { + $mocs .= " $mocFile.moc" if exists $shash{$cppFile}; + } else { + $sourcelist{$cxxsuffix} .= "$mocFile.moc.$cxxsuffix "; + $moc_cpp_added = 1; + } + } + + # scan for extra given dependencies and add them to our target + while ($MakefileData =~ /\n\s*(\S+)\.(?:lo|o)\s*:([^\n]*)/g) { + $extradeps{$1} = $2; + } + + foreach $suffix (keys %sourcelist) { + # See if this file contains c++ code. (i.e., just check the file's suffix against c++ extensions) + my $suffix_is_cxx = 0; + if($suffix =~ /($cppExt)$/) { + $cxxsuffix = $1; + $suffix_is_cxx = 1; + } + + my $mocfiles_in = ($suffix eq $cxxsuffix) && $moc_cpp_added; + + my @sourcelist = split(/[\034\s]+/, $sourcelist{$suffix}); + + if ((@sourcelist == 1 && !$mocfiles_in) || $suffix_is_cxx != 1 ) { + + # we support IDL on our own + if ($suffix eq "skel" || $suffix =~ /^stub/ + || $suffix =~ /^signals/ # obsolete, remove in KDE-4 + || $suffix eq "h" || $suffix eq "ui" + || $suffix eq "kcfgc" ) { + next; + } + + foreach $file (@sourcelist) { + $file =~ s/\Q$suffix\E$//; + + $finalObjs{$program} .= $file; + if ($program =~ /_la$/) { + $finalObjs{$program} .= "lo "; + } else { + $finalObjs{$program} .= "o "; + } + } + next; # suffix + } + + my $source_deps = ""; + foreach $source (@sourcelist) { + if (-f $source) { + $source_deps .= " \$(srcdir)/$source"; + } else { + $source_deps .= " $source"; + } + my $plainsource = $source; + $plainsource =~ s/\.$cppExt$//; + $source_deps .= " " . $extradeps{$plainsource} if (exists($extradeps{$plainsource})); + } + + $handling = "$program.all_$suffix.$suffix: \$(srcdir)/Makefile.in" . $source_deps . " " . join(' ', $mocs) . "\n"; + $handling .= "\t\@echo 'creating $program.all_$suffix.$suffix ...'; \\\n"; + $handling .= "\trm -f $program.all_$suffix.files $program.all_$suffix.final; \\\n"; + $handling .= "\techo \"#define KDE_USE_FINAL 1\" >> $program.all_$suffix.final; \\\n"; + $handling .= "\tfor file in " . $sourcelist{$suffix} . "; do \\\n"; + $handling .= "\t echo \"#include \\\"\$\$file\\\"\" >> $program.all_$suffix.files; \\\n"; + $handling .= "\t test ! -f \$\(srcdir\)/\$\$file || egrep '^#pragma +implementation' \$\(srcdir\)/\$\$file >> $program.all_$suffix.final; \\\n"; + $handling .= "\tdone; \\\n"; + $handling .= "\tcat $program.all_$suffix.final $program.all_$suffix.files > $program.all_$suffix.$suffix; \\\n"; + $handling .= "\trm -f $program.all_$suffix.final $program.all_$suffix.files\n"; + + appendLines($handling); + + push(@final_names, "$program.all_$suffix.$suffix"); + my $finalObj = "$program.all_$suffix."; + if ($program =~ /_la$/) { + $finalObj .= "lo"; + } else { + $finalObj .= "o"; + } + $finalObjs{$program} .= $finalObj . " "; + } + } + + if (!$kdeopts{"nofinal"} && @final_names >= 1) { + # add clean-final target + my $lines = "$cleantarget-final:\n"; + $lines .= "\t-rm -f " . join(' ', @final_names) . "\n" if (@final_names); + appendLines($lines); + $target_adds{"$cleantarget-am"} .= "$cleantarget-final "; + + foreach $finalfile (@final_names) { + $finalfile =~ s/\.[^.]*$/.P/; + $dep_finals .= " \$(DEPDIR)/$finalfile"; + } + } +} + +sub tag_KDEINIT() +{ + my @progs = (); + my $ltlibs = ""; + my $lookup = 'kdeinit_LTLIBRARIES\s*=[ \t]*(.*)'; + + if ($MakefileData =~ m/\n$lookup/) { + @kdeinits = split(/[\034\s]+/, $1); + my $lines = ""; + foreach my $kdeinit (@kdeinits) { + if ($kdeinit =~ m/\.la$/) { + $kdeinit =~ s/\.la$//; + push(@progs, $kdeinit); + + $lines .= "\n${kdeinit}.la.$cxxsuffix:\n"; + $lines .= "\techo 'extern \"C\" int kdemain(int argc, char* argv[]);' > ${kdeinit}.la.$cxxsuffix; \\\n"; + $lines .= "\techo 'int main(int argc, char* argv[]) { return kdemain(argc,argv); }' >> ${kdeinit}.la.$cxxsuffix\n"; + + $lines .= "\n${kdeinit}_dummy.$cxxsuffix:\n"; + $lines .= "\techo 'extern \"C\" int kdemain(int argc, char* argv[]);' > ${kdeinit}_dummy.$cxxsuffix; \\\n"; + $lines .= "\techo 'extern \"C\" int kdeinitmain(int argc, char* argv[]) { return kdemain(argc,argv); }' >> ${kdeinit}_dummy.$cxxsuffix\n"; + + push(@cleanfiles, "${kdeinit}.la.$cxxsuffix"); + push(@cleanfiles, "${kdeinit}_dummy.$cxxsuffix"); + + # add dependency + $dep_files .= " \$(DEPDIR)/${kdeinit}.la.Po" if($dep_files !~/${kdeinit}.la.Po/ ); + $dep_files .= " \$(DEPDIR)/${kdeinit}_dummy.Plo" if($dep_files !~/${kdeinit}_dummy.Plo/ ); + + # make library + $lookup = $kdeinit . '_la_LIBADD\s*=[ \t]*(.*)'; + if($MakefileData =~ m/\n$lookup/) { + my $libadd = $1; + substituteLine($lookup, "${kdeinit}_la_LIBADD = libkdeinit_${kdeinit}.la"); + appendLines("libkdeinit_${kdeinit}_la_LIBADD = $libadd\n"); + } + appendLines("libkdeinit_${kdeinit}_la_LDFLAGS = -no-undefined -avoid-version \$(all_libraries)\n"); + + # add library dependencies + $lookup = $kdeinit . '_la_DEPENDENCIES\s*=[ \t]*(.*)'; + if($MakefileData =~ m/\n$lookup/) { + my $libdeps = $1; + substituteLine($lookup, "${kdeinit}_la_DEPENDENCIES = libkdeinit_${kdeinit}.la"); + appendLines("libkdeinit_${kdeinit}_la_DEPENDENCIES = $libdeps\n"); + } + + # make library objects + $lookup = "am_${kdeinit}_la_OBJECTS" . '\s*=[ \t]*(.*)'; + if($MakefileData =~ m/\n$lookup/) { + my $libobjects = $1; + substituteLine($lookup, "am_${kdeinit}_la_OBJECTS = ${kdeinit}_dummy.lo"); + appendLines("am_libkdeinit_${kdeinit}_la_OBJECTS = $libobjects\n"); + my $prog = "libkdeinit_${kdeinit}_la"; + push(@programs, $prog); + $realObjs{$prog} = $libobjects; + $realname{$prog} = "libkdeinit_${kdeinit}.la"; + } + $target_adds{"libkdeinit_${kdeinit}.la"} = "\$(libkdeinit_${kdeinit}_la_OBJECTS) \$(libkdeinit_${kdeinit}_la_DEPENDENCIES)\n" . + "\t\$(CXXLINK) -rpath \$(libdir) \$(libkdeinit_${kdeinit}_la_LDFLAGS) ". + "\$(libkdeinit_${kdeinit}_la_OBJECTS) " . + "\$(libkdeinit_${kdeinit}_la_LIBADD) " . + "\$(LIBS)\n"; + + # make libkdeinit sources + $lookup = $kdeinit . '_la_SOURCES\s*=[ \t]*(.*)'; + if($MakefileData =~ m/\n$lookup/) { + my $srces = $1; + $sources_changed{"libkdeinit_${kdeinit}_la"} = 1; + $sources{"libkdeinit_${kdeinit}_la"} = $srces; + } + + # make libkdeinit metasources + $lookup = $kdeinit . '_la_METASOURCES\s*=[ \t]*(.*)'; + substituteLine($lookup, "libkdeinit_${kdeinit}_la_METASOURCES = $1") + if($MakefileData =~ m/\n$lookup/); + +=cut + # make binary sources + $lookup = $kdeinit. '_SOURCES\s*=[ \t]*(.*)'; + if($MakefileData =~ m/\n$lookup/) { + substituteLine($lookup, "${kdeinit}_SOURCES = ${kdeinit}.la.$cxxsuffix"); + $lookup = 'SOURCES\s*=[ \t]*(.*)'; + if($MakefileData =~ m/\n$lookup/) { + my $srces = $1; + $srces =~ s/\b$kdeinit\.c\b/\$(${kdeinit}_SOURCES)/; + $srces =~ s/\$\(${kdeinit}_la_SOURCES\)/\$(libkdeinit_${kdeinit}_la_SOURCES)/; + substituteLine($lookup, "SOURCES = $srces"); + } + $lookup = 'DIST_SOURCES\s*=[ \t](.*)'; + if($MakefileData =~ m/\n$lookup/) { + my $srces = $1; + $srces =~ s/\b$kdeinit\.c\b/\$(${kdeinit}_SOURCES)/; + $srces =~ s/\$\(${kdeinit}_la_SOURCES\)/\$(libkdeinit_${kdeinit}_la_SOURCES)/; + substituteLine($lookup, "DIST_SOURCES = $srces"); + } + } + + # make binary objects / libs + $lookup = $kdeinit . '_OBJECTS\s*=[ \t]*.*'; + if($MakefileData =~ m/\n$lookup/) { + $realObjs{$kdeinit} = "${kdeinit}.la.\$(OBJEXT)"; + substituteLine("${kdeinit}_LDFLAGS\\s*=.*", "${kdeinit}_LDFLAGS = \$(all_libraries)"); + substituteLine("${kdeinit}_LDADD\\s*=.*", "${kdeinit}_LDADD = libkdeinit_${kdeinit}.la"); + substituteLine("${kdeinit}_DEPENDENCIES\\s*=.*", "${kdeinit}_DEPENDENCIES = libkdeinit_${kdeinit}.la"); + } +=cut + # add binary + push(@programs, $kdeinit); + $realObjs{$kdeinit} = "${kdeinit}.la.\$(OBJEXT)"; + $realname{$kdeinit} = $kdeinit; + $sources{$kdeinit} = "${kdeinit}.la.$cxxsuffix"; + + $lines .= "${kdeinit}_LDFLAGS = \$(KDE_RPATH) -no-undefined \$(all_libraries)\n"; + $lines .= "${kdeinit}_LDADD = libkdeinit_${kdeinit}.la\n"; + $lines .= "${kdeinit}_DEPENDENCIES = libkdeinit_${kdeinit}.la\n"; + + $target_adds{"${kdeinit}\$(EXEEXT)"} = + "\$(${kdeinit}_OBJECTS) \$(${kdeinit}_DEPENDENCIES)\n" . + "\t\@rm -f ${kdeinit}\$(EXEEXT)\n" . + "\t\$(CXXLINK) \$(${kdeinit}_LDFLAGS) \$(${kdeinit}_OBJECTS) \$(${kdeinit}_LDADD) \$(LIBS)\n"; + + $ltlibs .= " libkdeinit_${kdeinit}.la"; + } + } + appendLines($lines); + + # add libkdeinit target + $lookup = 'lib_LTLIBRARIES\s*=[ \t]*(.*)'; + if($MakefileData =~ m/\n$lookup/) { + substituteLine($lookup, "lib_LTLIBRARIES = $1 $ltlibs"); + } + else { + print STDERR + "Error: lib_LTLIBRARIES missing in $printname (required for kdeinit_LTLIBRARIES).\n"; + $errorflag = 1; + } + } + + if($#progs >= 0) { + if($MakefileData !~ m/\nbin_PROGRAMS\s*=/) { + print STDERR "Error: bin_PROGRAMS missing in $printname (required for kdeinit_LTLIBRARIES).\n"; + $errorflag = 1; + } + else { + # add our new progs to SOURCES, DIST_SOURCES and bin_PROGRAMS + my $progsources = ""; + my $progexes = ""; + foreach my $p (@progs) { + $progsources .= "\$(${p}_SOURCES) "; + $progexes .= "${p}\$(EXEEXT) "; + } + $lookup = 'SOURCES\s*=[ \t]*(.*)'; + if($MakefileData =~ /\n$lookup/) { + substituteLine($lookup, "SOURCES = $1 $progsources"); + } + $lookup = 'DIST_SOURCES\s*=[ \t]*(.*)'; + if($MakefileData =~ /\n$lookup/) { + substituteLine($lookup, "DIST_SOURCES = $1 $progsources"); + } + # bin_PROGRAMS is complicated, as it exists twice, so we do a little + # magic trick here + $lookup = 'PROGRAMS\s*=[ \t]*(.*)'; + if ($MakefileData =~ /\n$lookup/) { + substituteLine($lookup, "bin_PROGRAMS += $progexes\nPROGRAMS = $1"); + } + } + } +} + +#----------------------------------------------------------------------------- + +sub tag_COMPILE_FIRST() +{ + foreach $program (@programs) { + my $lookup = "$program" . '_COMPILE_FIRST\s*=[ \t]*(.*)'; + if ($MakefileData =~ m/\n$lookup\n/) { + my $compilefirst_str = $1; + my @compilefirst = split(/[\034\s]+/, $compilefirst_str); + my @progsources = split(/[\034\s]+/, $sources{$program}); + my %donesources = (); + foreach $source (@progsources) { + my @deps = (); + my $sdeps = ""; + if (-f $source) { + $sdeps = "\$(srcdir)/$source"; + } else { + $sdeps = "$source"; + } + foreach $depend (@compilefirst) { + next if ($source eq $depend); + # avoid cyclic dependencies + next if defined($donesources{$depend}); + push @deps, $depend; + } + $target_adds{$sdeps} .= join(' ', @deps) . ' ' if (@deps); + $donesources{$source} = 1; + } + } + } +} + +#----------------------------------------------------------------------------- + + +# Organises the list of headers that we'll use to produce moc files +# from. +sub tag_METASOURCES () +{ + local @newObs = (); # here we add to create object files + local @depend = (); # here we add to create moc files + local $mocExt = ".moc"; + local %mocFiles = (); + + my $line = ""; + my $postEqual = ""; + + my $lookup; + my $found = ""; + if ($metasourceTags > 1) { + $lookup = $program . '_METASOURCES\s*=\s*(.*)'; + return 1 if ($MakefileData !~ /\n($lookup)\n/); + $found = $1; + } else { + $lookup = $program . '_METASOURCES\s*=\s*(.*)'; + if ($MakefileData !~ /\n($lookup)\n/) { + $lookup = 'METASOURCES\s*=\s*(.*)'; + return 1 if ($MakefileData !~ /\n($lookup)\n/); + $found = $1; + $metasourceTags = 0; # we can use the general target only once + } else { + $found = $1; + } + } + print STDOUT "METASOURCE processing <$found>)\n" if ($verbose); + + $postEqual = $found; + $postEqual =~ s/[^=]*=//; + + removeLine ($lookup, $found); + + # Always find the header files that could be used to "moc" + return 1 if (findMocCandidates ()); + + if ($postEqual =~ /AUTO\s*(\S*)|USE_AUTOMOC\s*(\S*)/) + { + print STDERR "$printname: the argument for AUTO|USE_AUTOMOC is obsolete" if ($+); + $mocExt = ".moc.$cxxsuffix"; + $haveAutomocTag = 1; + } + else + { + # Not automoc so read the list of files supplied which + # should be .moc files. + + $postEqual =~ tr/\034/ /; + + # prune out extra headers - This also checks to make sure that + # the list is valid. + pruneMocCandidates ($postEqual); + } + + checkMocCandidates (); + + if (@newObs) { + my $ext = ($program =~ /_la$/) ? ".moc.lo " : ".moc.o "; + $realObjs{$program} .= "\034" . join ($ext, @newObs) . $ext; + $dependmocs{$program} = join (".moc.$cxxsuffix " , @newObs) . ".moc.$cxxsuffix"; + foreach $file (@newObs) { + $dep_files .= " \$(DEPDIR)/$file.moc.P" if($dep_files !~/$file.moc.P/); + } + } + if (@depend) { + $dependmocs{$program} .= " "; + $dependmocs{$program} .= join('.moc ', @depend) . ".moc"; + $dependmocs{$program} .= " "; + } + addMocRules (); + @globalmocs{keys %mocFiles}=values %mocFiles; +} + +#----------------------------------------------------------------------------- + +# Returns 0 if the line was processed - 1 otherwise. +# Errors are logged in the global $errorflags +sub tag_AUTOMAKE () +{ + my $lookup = '.*cd \$\(top_srcdir\)\s+&&[\034\s]+\$\(AUTOMAKE\)(.*)'; + return 1 if ($MakefileData !~ /\n($lookup)\n/); + print STDOUT "AUTOMAKE processing <$1>\n" if ($verbose); + + my $newLine = $1."\n\tcd \$(top_srcdir) && perl $thisProg $printname"; + + # automake 1.8.x adds another automake call. *sigh* + $newLine =~ s/;([\034\s]+cd\s+\$\(srcdir\)\s+&&[\034\s]+\$\(AUTOMAKE\).*)[\034\s]+\&\&[\034\s]+exit[\034\s]+0;([\034\s]+exit\s+1)/; \034 ( $1 ) || exit 1; echo \' cd \$(top_srcdir) && perl $thisProg \'; cd \$(top_srcdir) && perl $thisProg && exit 0; $2/; + substituteLine ($lookup, $newLine); + $automkCall = $1; + + $lookup = '.*cd \$\(srcdir\)\s+&&[\034\s]+\$\(AUTOCONF\)(.*)'; + if ($MakefileData =~ /\n($lookup)\n/) { + $newLine = "\tcd \$(srcdir) && rm -f configure\n"; + $newLine .= "\tcd \$(top_srcdir) && \$(MAKE) -f admin/Makefile.common configure"; + substituteLine ($lookup, $newLine); + } + + return 0; +} + +#----------------------------------------------------------------------------- + +sub handle_TOPLEVEL() +{ + my $pofiles = ""; + my @restfiles = (); + opendir (THISDIR, "."); + foreach $entry (readdir(THISDIR)) { + next if (-d $entry); + + next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/ || $entry =~ /.gmo$/); + + if ($entry =~ /\.po$/) { + next; + } + push(@restfiles, $entry); + } + closedir (THISDIR); + + if (@restfiles) { + $target_adds{"install-data-am"} .= "install-nls-files "; + $lines = "install-nls-files:\n"; + $lines .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/$kdelang\n"; + for $file (@restfiles) { + $lines .= "\t\$(INSTALL_DATA) \$\(srcdir\)/$file \$(DESTDIR)\$(kde_locale)/$kdelang/$file\n"; + } + $target_adds{"uninstall"} .= "uninstall-nls-files "; + $lines .= "uninstall-nls-files:\n"; + for $file (@restfiles) { + $lines .= "\t-rm -f \$(DESTDIR)\$(kde_locale)/$kdelang/$file\n"; + } + appendLines($lines); + } + + return 0; +} + +#----------------------------------------------------------------------------- + +sub tag_SUBDIRS () +{ + if ($MakefileData !~ /\nSUBDIRS\s*=\s*\$\(AUTODIRS\)\s*\n/) { + return 1; + } + + my $subdirs = "."; + + opendir (THISDIR, "."); + foreach $entry (readdir(THISDIR)) { + next if ($entry eq "CVS" || $entry =~ /^\./); + if (-d $entry && -f $entry . "/Makefile.am") { + $subdirs .= " $entry"; + next; + } + } + closedir (THISDIR); + + substituteLine('SUBDIRS\s*=.*', "SUBDIRS =$subdirs"); + return 0; +} + +sub tag_IDLFILES () +{ + my @psources = split(/[\034\s]+/, $sources{$program}); + my $dep_lines = ""; + my @cppFiles = (); + + foreach $source (@psources) { + my $skel = ($source =~ m/\.skel$/); + my $stub = ($source =~ m/\.stub$/); + my $signals = ($source =~ m/\.signals$/); # obsolete, remove in KDE-4 + + if ($stub || $skel || $signals) { + + my $qs = quotemeta($source); + $sources{$program} =~ s/$qs//; + $sources_changed{$program} = 1; + + $source =~ s/\.(stub|skel|signals)$//; + my $sourcename; + + if ($skel) { + $sourcename = "$source\_skel"; + } elsif ($stub) { + $sourcename = "$source\_stub"; + } else { + $sourcename = "$source\_signals"; + } + + my $sourcedir = ''; + if (-f "$makefileDir/$source.h") { + $sourcedir = '$(srcdir)/'; + } else { + if ($MakefileData =~ /\n$source\_DIR\s*=\s*(\S+)\n/) { + $sourcedir = $1; + $sourcedir .= "/" if ($sourcedir !~ /\/$/); + } + } + + if ($allidls !~ /$source\_kidl/) { + + $use_ng = ($MakefileData =~ /\n$source\_DCOPIDLNG\s*=\s*(\S+)\n/); + $dcopidl = $use_ng ? "KDECONFIG=\"\$(KDECONFIG)\" \$(DCOPIDLNG)" : "\$(DCOPIDL)"; + + $dep_lines .= "$source.kidl: $sourcedir$source.h \$(DCOP_DEPENDENCIES)\n"; + $dep_lines .= "\t$dcopidl $sourcedir$source.h > $source.kidl || ( rm -f $source.kidl ; false )\n"; + + $allidls .= $source . "_kidl "; + } + + if ($allidls !~ /$sourcename/) { + + $dep_lines_tmp = ""; + + if ($skel) { + $dep_lines .= "$sourcename.$cxxsuffix: $source.kidl\n"; + $dep_lines .= "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-signals --no-stub $source.kidl\n"; + } elsif ($stub) { + $dep_lines_tmp = "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-signals --no-skel $source.kidl\n"; + } else { # signals - obsolete, remove in KDE 4 + $dep_lines_tmp = "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-stub --no-skel $source.kidl\n"; + } + + if ($stub || $signals) { + $target_adds{"$sourcename.$cxxsuffix"} .= "$sourcename.h "; + $dep_lines .= "$sourcename.h: $source.kidl\n"; + $dep_lines .= $dep_lines_tmp; + } + + $allidls .= $sourcename . " "; + } + + $idlfiles{$program} .= $sourcename . " "; + + if ($program =~ /_la$/) { + $realObjs{$program} .= " $sourcename.lo"; + } else { + $realObjs{$program} .= " $sourcename.\$(OBJEXT)"; + } + $sources{$program} .= " $sourcename.$cxxsuffix"; + $sources_changed{$program} = 1; + $important{$program} .= "$sourcename.h " if (!$skel); + $idl_output .= "\\\n\t$sourcename.$cxxsuffix $sourcename.h $source.kidl "; + push(@cleanfiles, "$sourcename.$cxxsuffix"); + push(@cleanfiles, "$sourcename.h"); + push(@cleanfiles, "$sourcename.kidl"); + $dep_files .= " \$(DEPDIR)/$sourcename.P" if ($dep_files !~/$sourcename.P/); + } + } + if ($dep_lines) { + appendLines($dep_lines); + } + + if (0) { + my $lookup = "($program)"; + $lookup .= '(|\$\(EXEEXT\))'; + $lookup =~ s/\_/./g; + $lookup .= ":(.*..$program\_OBJECTS..*)"; + # $lookup = quotemeta($lookup); + if ($MakefileData =~ /\n$lookup\n/) { + + my $line = "$1$2: "; + foreach $file (split(' ', $idlfiles{$program})) { + $line .= "$file.$cxxsuffix "; + } + $line .= $3; + substituteLine($lookup, $line); + } else { + print STDERR "no built dependency found $lookup\n"; + } + } +} + +sub tag_UIFILES () +{ + my @psources = split(/[\034\s]+/, $sources{$program}); + my @depFiles = (); + + foreach $source (@psources) { + + if ($source =~ m/\.ui$/) { + + print STDERR "adding UI file $source\n" if ($verbose); + + my $qs = quotemeta($source); + $sources{$program} =~ s/$qs//; + $sources_changed{$program} = 1; + + $source =~ s/\.ui$//; + + my $sourcedir = ''; + if (-f "$makefileDir/$source.ui") { + $sourcedir = '$(srcdir)/'; + } + + if (!$uiFiles{$source}) { + + my $dep_lines = "$source.$cxxsuffix: $sourcedir$source.ui $source.h $source.moc\n"; + $dep_lines .= "\trm -f $source.$cxxsuffix\n"; + if (!$kdeopts{"qtonly"}) { + $dep_lines .= "\techo '#include ' > $source.$cxxsuffix\n"; + $dep_lines .= "\techo '#include ' >> $source.$cxxsuffix\n"; + my ($mangled_source) = $source; + $mangled_source =~ s/[^A-Za-z0-9]/_/g; # get rid of garbage + $dep_lines .= "\t\$(UIC) -tr \${UIC_TR} -i $source.h $sourcedir$source.ui > $source.$cxxsuffix.temp ; ret=\$\$?; \\\n"; + $dep_lines .= "\t\$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\" ),QString::null,g\" $source.$cxxsuffix.temp | \$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\"\\, \\\"\\\" ),QString::null,g\" | \$(PERL) -pe \"s,image([0-9][0-9]*)_data,img\\\$\$1_" . $mangled_source . ",g\" | \$(PERL) -pe \"s,: QWizard\\(,: KWizard(,g\" >> $source.$cxxsuffix ;\\\n"; + $dep_lines .= "\trm -f $source.$cxxsuffix.temp ;\\\n"; + } else { + $dep_lines .= "\t\$(UIC) -i $source.h $sourcedir$source.ui > $source.$cxxsuffix; ret=\$\$?; \\\n"; + } + $dep_lines .= "\tif test \"\$\$ret\" = 0; then echo '#include \"$source.moc\"' >> $source.$cxxsuffix; else rm -f $source.$cxxsuffix ; exit \$\$ret ; fi\n\n"; + $dep_lines .= "$source.h: $sourcedir$source.ui\n"; + $dep_lines .= "\trm -rf $source.h;\n"; + if (!$kdeopts{"qtonly"}) { + $dep_lines .= "\t\$(UIC) $sourcedir$source.ui | \$(PERL) -pi -e \"s,public QWizard,public KWizard,g; s,#include ,#include ,g\" >> $source.h ;\n"; + } else { + $dep_lines .= "\t\$(UIC) -o $source.h $sourcedir$source.ui\n"; + } + $dep_lines .= "$source.moc: $source.h\n"; + $dep_lines .= "\t\$(MOC) $source.h -o $source.moc\n"; + + $rule_adds{"$source.$cxxsuffix"} = $dep_lines; + + $uiFiles{$source} = 1; + $dependmocs{$program} .= " $source.moc"; + $globalmocs{$source} = "\035$source.h\035$source.cpp"; + } + + if ($program =~ /_la$/) { + $realObjs{$program} .= " $source.lo"; + } else { + $realObjs{$program} .= " $source.\$(OBJEXT)"; + } + $sources{$program} .= " $source.$cxxsuffix"; + $sources_changed{$program} = 1; + $important{$program} .= "$source.h "; + $ui_output .= "\\\n\t$source.$cxxsuffix $source.h $source.moc "; + push(@cleanfiles, "$source.$cxxsuffix"); + push(@cleanfiles, "$source.h"); + push(@cleanfiles, "$source.moc"); + $dep_files .= " \$(DEPDIR)/$source.P" if($dep_files !~/$source.P/ ); + } + } +} + +sub tag_KCFGFILES () +{ + my @psources = split(/[\034\s]+/, $sources{$program}); + my @depFiles = (); + + foreach $source (@psources) { + + if ($source =~ m/\.kcfgc$/) { + + print STDERR "adding KCFG file $source\n" if ($verbose); + + my $qs = quotemeta($source); + $sources{$program} =~ s/$qs//; + $sources_changed{$program} = 1; + + $source =~ s/\.kcfgc$//; + + my $sourcedir = ''; + if (-f "$makefileDir/$source.kcfgc") { + $sourcedir = '$(srcdir)/'; + } + + if (!$kcfgFiles{$source}) { + $kcfg = "$program.kcfg"; + findKcfgFile("$source.kcfgc"); + + my $fixsuffix = ""; + $fixsuffix = "else mv $source.cpp $source.$cxxsuffix ; " + unless "cpp" eq $cxxsuffix; + + my $dep_lines = "$source.$cxxsuffix: $source.h\n"; + $dep_lines .= "$source.h: $sourcedir$kcfg $sourcedir$source.kcfgc \$(KCFG_DEPENDENCIES)\n"; + $dep_lines .= "\t\$(KCONFIG_COMPILER) $sourcedir$kcfg $sourcedir$source.kcfgc; ret=\$\$?; \\\n"; + $dep_lines .= "\tif test \"\$\$ret\" != 0; then rm -f $source.h ; exit \$\$ret ; $fixsuffix fi\n\n"; + + $rule_adds{"$source.$cxxsuffix"} = $dep_lines; + + $kcfgFiles{$source} = 1; + } + + if ($program =~ /_la$/) { + $realObjs{$program} .= " $source.lo"; + } else { + $realObjs{$program} .= " $source.\$(OBJEXT)"; + } + $sources{$program} .= " $source.$cxxsuffix"; + $sources_changed{$program} = 1; + $important{$program} .= "$source.h "; + $kcfg_output .= "\\\n\t$source.$cxxsuffix $source.h "; + push(@cleanfiles, "$source.$cxxsuffix"); + push(@cleanfiles, "$source.h"); + $dep_files .= " \$(DEPDIR)/$source.P" if($dep_files !~/$source.P/ ); + } + } +} + +sub tag_ICON() +{ + my $lookup = '([^\s]*)_ICON\s*=[ \t]*(.*)'; + my $install = ""; + my $uninstall = ""; + + while ($MakefileData =~ /\n$lookup/g) { + my $destdir; + if ($1 eq "KDE") { + $destdir = "kde_icondir"; + } else { + $destdir = $1 . "dir"; + } + my $iconauto = ($2 =~ /AUTO\s*$/); + my @appnames = (); + if ( ! $iconauto ) { + my $appicon_str = $2; + my @_appnames = split(" ", $appicon_str); + print STDOUT "KDE_ICON processing <@_appnames>\n" if ($verbose); + foreach $appname (@_appnames) { + push(@appnames, quotemeta($appname)); + } + } else { + print STDOUT "KDE_ICON processing \n" if ($verbose); + } + + my @files = (); + opendir (THISDIR, "."); + foreach $entry (readdir(THISDIR)) { + next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/); + next if (! -f $entry); + if ( $iconauto ) + { + push(@files, $entry) + if ($entry =~ /\.xpm/ || $entry =~ /\.png/ || $entry =~ /\.mng/ || $entry =~ /\.svg/); + } else { + foreach $appname (@appnames) { + push(@files, $entry) + if ($entry =~ /-$appname\.xpm/ || $entry =~ /-$appname\.png/ || $entry =~ /-$appname\.mng/ || $entry =~ /-$appname\.svg/); + } + } + } + closedir (THISDIR); + + my %directories = (); + + foreach $file (@files) { + my $newfile = $file; + my $prefix = $file; + $prefix =~ s/\.(png|xpm|mng|svg|svgz)$//; + my $appname = $prefix; + $appname =~ s/^[^-]+-// if ($appname =~ /-/) ; + $appname =~ s/^[^-]+-// if ($appname =~ /-/) ; + $appname = quotemeta($appname); + $prefix =~ s/$appname$//; + $prefix =~ s/-$//; + + $prefix = 'lo16-app' if ($prefix eq 'mini'); + $prefix = 'lo32-app' if ($prefix eq 'lo'); + $prefix = 'hi48-app' if ($prefix eq 'large'); + $prefix .= '-app' if ($prefix =~ m/^...$/); + + my $type = $prefix; + $type =~ s/^.*-([^-]+)$/$1/; + $prefix =~ s/^(.*)-[^-]+$/$1/; + + my %type_hash = + ( + 'action' => 'actions', + 'app' => 'apps', + 'device' => 'devices', + 'filesys' => 'filesystems', + 'mime' => 'mimetypes' + ); + + if (! defined $type_hash{$type} ) { + print STDERR "unknown icon type $type in $printname ($file)\n"; + next; + } + + my %dir_hash = + ( + 'los' => 'locolor/16x16', + 'lom' => 'locolor/32x32', + 'him' => 'hicolor/32x32', + 'hil' => 'hicolor/48x48', + 'lo16' => 'locolor/16x16', + 'lo22' => 'locolor/22x22', + 'lo32' => 'locolor/32x32', + 'hi16' => 'hicolor/16x16', + 'hi22' => 'hicolor/22x22', + 'hi32' => 'hicolor/32x32', + 'hi48' => 'hicolor/48x48', + 'hi64' => 'hicolor/64x64', + 'hi128' => 'hicolor/128x128', + 'hisc' => 'hicolor/scalable', + 'cr16' => 'crystalsvg/16x16', + 'cr22' => 'crystalsvg/22x22', + 'cr32' => 'crystalsvg/32x32', + 'cr48' => 'crystalsvg/48x48', + 'cr64' => 'crystalsvg/64x64', + 'cr128' => 'crystalsvg/128x128', + 'crsc' => 'crystalsvg/scalable' + ); + + $newfile =~ s@.*-($appname\.(png|xpm|mng|svgz|svg?))@$1@; + + if (! defined $dir_hash{$prefix}) { + print STDERR "unknown icon prefix $prefix in $printname\n"; + next; + } + + my $dir = $dir_hash{$prefix} . "/" . $type_hash{$type}; + if ($newfile =~ /-[^\.]/) { + my $tmp = $newfile; + $tmp =~ s/^([^-]+)-.*$/$1/; + $dir = $dir . "/" . $tmp; + $newfile =~ s/^[^-]+-//; + } + + if (!defined $directories{$dir}) { + $install .= "\t\$(mkinstalldirs) \$(DESTDIR)\$($destdir)/$dir\n"; + $directories{$dir} = 1; + } + + $install .= "\t\$(INSTALL_DATA) \$(srcdir)/$file \$(DESTDIR)\$($destdir)/$dir/$newfile\n"; + $uninstall .= "\t-rm -f \$(DESTDIR)\$($destdir)/$dir/$newfile\n"; + + } + } + + if (length($install)) { + $target_adds{"install-data-am"} .= "install-kde-icons "; + $target_adds{"uninstall-am"} .= "uninstall-kde-icons "; + appendLines("install-kde-icons:\n" . $install . "\nuninstall-kde-icons:\n" . $uninstall); + } +} + +sub handle_POFILES($$) +{ + my @pofiles = split(" ", $_[0]); + my $lang = $_[1]; + + # Build rules for creating the gmo files + my $tmp = ""; + my $allgmofiles = ""; + my $pofileLine = "POFILES ="; + foreach $pofile (@pofiles) + { + $pofile =~ /(.*)\.[^\.]*$/; # Find name minus extension + $tmp .= "$1.gmo: $pofile\n"; + $tmp .= "\trm -f $1.gmo; \$(GMSGFMT) -o $1.gmo \$(srcdir)/$pofile\n"; + $tmp .= "\ttest ! -f $1.gmo || touch $1.gmo\n"; + $allgmofiles .= " $1.gmo"; + $pofileLine .= " $1.po"; + } + appendLines ($tmp); + my $lookup = 'POFILES\s*=([^\n]*)'; + if ($MakefileData !~ /\n$lookup/) { + appendLines("$pofileLine\nGMOFILES =$allgmofiles"); + } else { + substituteLine ($lookup, "$pofileLine\nGMOFILES =$allgmofiles"); + } + + if ($allgmofiles) { + + # Add the "clean" rule so that the maintainer-clean does something + appendLines ("clean-nls:\n\t-rm -f $allgmofiles\n"); + + $target_adds{"maintainer-clean"} .= "clean-nls "; + + $lookup = 'DISTFILES\s*=[ \t]*(.*)'; + if ($MakefileData =~ /\n$lookup/) { + $tmp = "DISTFILES = \$(GMOFILES) \$(POFILES) $1"; + substituteLine ($lookup, $tmp); + } + } + + $target_adds{"install-data-am"} .= "install-nls "; + + $tmp = "install-nls:\n"; + if ($lang) { + $tmp .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES\n"; + } + $tmp .= "\t\@for base in "; + foreach $pofile (@pofiles) + { + $pofile =~ /(.*)\.[^\.]*$/; # Find name minus extension + $tmp .= "$1 "; + } + + $tmp .= "; do \\\n"; + if ($lang) { + $tmp .= "\t echo \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n"; + $tmp .= "\t if test -f \$\$base.gmo; then \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n"; + $tmp .= "\t elif test -f \$(srcdir)/\$\$base.gmo; then \$(INSTALL_DATA) \$(srcdir)/\$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n"; + $tmp .= "\t fi ;\\\n"; + } else { + $tmp .= "\t echo \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n"; + $tmp .= "\t \$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES ; \\\n"; + $tmp .= "\t if test -f \$\$base.gmo; then \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n"; + $tmp .= "\t elif test -f \$(srcdir)/\$\$base.gmo; then \$(INSTALL_DATA) \$(srcdir)/\$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n"; + $tmp .= "\t fi ;\\\n"; + } + $tmp .= "\tdone\n\n"; + appendLines ($tmp); + + $target_adds{"uninstall"} .= "uninstall-nls "; + + $tmp = "uninstall-nls:\n"; + foreach $pofile (@pofiles) + { + $pofile =~ /(.*)\.[^\.]*$/; # Find name minus extension + if ($lang) { + $tmp .= "\trm -f \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/$1.mo\n"; + } else { + $tmp .= "\trm -f \$(DESTDIR)\$(kde_locale)/$1/LC_MESSAGES/\$(PACKAGE).mo\n"; + } + } + appendLines($tmp); + + $target_adds{"all"} .= "all-nls "; + + $tmp = "all-nls: \$(GMOFILES)\n"; + + appendLines($tmp); + + $target_adds{"distdir"} .= "distdir-nls "; + + $tmp = "distdir-nls:\$(GMOFILES)\n"; + $tmp .= "\tfor file in \$(POFILES); do \\\n"; + $tmp .= "\t cp \$(srcdir)/\$\$file \$(distdir); \\\n"; + $tmp .= "\tdone\n"; + $tmp .= "\tfor file in \$(GMOFILES); do \\\n"; + $tmp .= "\t cp \$(srcdir)/\$\$file \$(distdir); \\\n"; + $tmp .= "\tdone\n"; + + appendLines ($tmp); + + if (!$lang) { + appendLines("merge:\n\t\$(MAKE) -f \$(top_srcdir)/admin/Makefile.common package-merge POFILES=\"\${POFILES}\" PACKAGE=\${PACKAGE}\n\n"); + } + +} + +#----------------------------------------------------------------------------- + +# Returns 0 if the line was processed - 1 otherwise. +# Errors are logged in the global $errorflags +sub tag_POFILES () +{ + my $lookup = 'POFILES\s*=([^\n]*)'; + return 1 if ($MakefileData !~ /\n$lookup/); + print STDOUT "POFILES processing <$1>\n" if ($verbose); + + my $tmp = $1; + + # make sure these are all gone. + if ($MakefileData =~ /\n\.po\.gmo:\n/) + { + print STDERR "Warning: Found old .po.gmo rules in $printname. New po rules not added\n"; + return 1; + } + + # Either find the pofiles in the directory (AUTO) or use + # only the specified po files. + my $pofiles = ""; + if ($tmp =~ /^\s*AUTO\s*$/) + { + opendir (THISDIR, "."); + $pofiles = join(" ", grep(/\.po$/, readdir(THISDIR))); + closedir (THISDIR); + print STDOUT "pofiles found = $pofiles\n" if ($verbose); + if (-f "charset" && -f "kdelibs/kdelibs.po") { + handle_TOPLEVEL(); + } + } + else + { + $tmp =~ s/\034/ /g; + $pofiles = $tmp; + } + return 1 if (!$pofiles); # Nothing to do + + handle_POFILES($pofiles, $kdelang); + + return 0; +} + +sub helper_LOCALINSTALL($) +{ + my $lookup = "\035" . $_[0] . " *:[^\035]*\035\t"; + my $copy = $MakefileData; + $copy =~ s/\n/\035/g; + if ($copy =~ /($lookup.*)$/) { + + $install = $1; + $install =~ s/\035$_[0] *:[^\035]*\035//; + my $emptyline = 0; + while (! $emptyline ) { + if ($install =~ /([^\035]*)\035(.*)/) { + local $line = $1; + $install = $2; + if ($line !~ /^\s*$/ && $line !~ /^(\@.*\@)*\t/) { + $emptyline = 1; + } else { + replaceDestDir($line); + } + } else { + $emptyline = 1; + } + } + } + +} + +sub tag_LOCALINSTALL () +{ + helper_LOCALINSTALL('install-exec-local'); + helper_LOCALINSTALL('install-data-local'); + helper_LOCALINSTALL('uninstall-local'); + + return 0; +} + +sub replaceDestDir($) { + local $line = $_[0]; + + if ( $line =~ /^\s*(\@.*\@)*\s*\$\(mkinstalldirs\)/ + || $line =~ /^\s*(\@.*\@)*\s*\$\(INSTALL\S*\)/ + || $line =~ /^\s*(\@.*\@)*\s*(-?rm.*) \S*$/) + { + $line =~ s/^(.*) ([^\s]+)\s*$/$1 \$(DESTDIR)$2/ if ($line !~ /\$\(DESTDIR\)/); + } + + if ($line ne $_[0]) { + $_[0] = quotemeta $_[0]; + substituteLine($_[0], $line); + } +} + +#--------------------------------------------------------------------------- +# libtool is very hard to persuade it could use -Wl,--no-undefined for making +# -no-undefined actually work +# append $(KDE_NO_UNFINED) after every -no-undefined in LDFLAGS +# this may go away if libtool ever does this on its own +sub tag_NO_UNDEFINED () { + return if ($program !~ /_la$/); + + my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n"; + $MakefileData =~ m/$lookup/; + return if (!defined($1)); + return if ($1 !~ /CXXLINK/); + + if ($MakefileData !~ /\n$program\_LDFLAGS\s*=.*-no-undefined/ ) { + return; + } + + $lookup = $program . '\_LDFLAGS(\s*)=(.*)-no-undefined(.*)'; + if ($MakefileData =~ /\n$lookup\n/) { + my $replace = $program . "\_LDFLAGS$1=$2-no-undefined \$(KDE_NO_UNDEFINED)$3"; + substituteLine($lookup, $replace); + } +} + +sub tag_CLOSURE () { + return if ($program !~ /_la$/); + + my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n"; + $MakefileData =~ m/$lookup/; + return if (!defined($1)); + return if ($1 !~ /CXXLINK/); + + if ($MakefileData !~ /\n$program\_LDFLAGS\s*=.*-no-undefined/ && + $MakefileData !~ /\n$program\_LDFLAGS\s*=.*KDE_PLUGIN/ ) { + print STDERR "Report: $program contains undefined in $printname\n" if ($program =~ /^lib/ && $dryrun); + return; + } + + my $closure = $realname{$program} . ".closure"; + my $lines = "$closure: \$($program\_OBJECTS) \$($program\_DEPENDENCIES)\n"; + $lines .= "\t\@echo \"int main() {return 0;}\" > $program\_closure.$cxxsuffix\n"; + $lines .= "\t\@\$\(LTCXXCOMPILE\) -c $program\_closure.$cxxsuffix\n"; + $lines .= "\t\$\(CXXLINK\) $program\_closure.lo \$($program\_LDFLAGS) \$($program\_OBJECTS) \$($program\_LIBADD) \$(LIBS)\n"; + $lines .= "\t\@rm -f $program\_closure.* $closure\n"; + $lines .= "\t\@echo \"timestamp\" > $closure\n"; + $lines .= "\n"; + appendLines($lines); + $lookup = $realname{$program} . ": (.*)"; + if ($MakefileData =~ /\n$lookup\n/) { + $lines = "\@KDE_USE_CLOSURE_TRUE@". $realname{$program} . ": $closure $1"; + $lines .= "\n\@KDE_USE_CLOSURE_FALSE@" . $realname{$program} . ": $1"; + substituteLine($lookup, $lines); + } + $closure_output .= " $closure"; +} + +sub tag_NMCHECK () { + return if ($program !~ /_la$/); + my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n"; + $MakefileData =~ m/$lookup/; + my $linkcmd = $1; + return if (!defined($1)); + return if ($linkcmd !~ /CXXLINK/ && $linkcmd !~ /LINK/); + + $lookup = $program . '_NMCHECK\s*=([^\n]*)'; + if( $MakefileData !~ m/\n$lookup\n/ ) { + return; + } + my $allowed = $1; + $allowed =~ s/^ *//; + $lookup = $program . '_NMCHECKWEAK\s*=([^\n]*)'; + my $weak = ""; + my $is_weak = 0; + if( $MakefileData =~ m/\n$lookup\n/ ) { + $weak = $1; + $is_weak = 1; + } + $weak =~ s/^ *//; + + if( $is_weak ) + { + $weak = '--allowweak=\'' . $weak . '\' '; + } + my $nmline = "\@KDE_USE_NMCHECK_TRUE@\t\@\$(MAKE) \$(AM_MAKEFLAGS) nmcheck_$realname{$program} || ( rm -f $realname{$program}; exit 1 )"; + $lookup = '(\t\$\(CXXLINK\)[^\n]*' . $program . '_OBJECTS[^\n]*)'; + if( $MakefileData =~ /\n$lookup\n/ ) { + my $oldstuff = $1; + substituteLine( $lookup, $oldstuff . "\n" . $nmline ); + } + $lookup = '(\t\$\(LINK\)[^\n]*' . $program . '_OBJECTS[^\n]*)'; + if( $MakefileData =~ /\n$lookup\n/ ) { + my $oldstuff = $1; + substituteLine( $lookup, $oldstuff . "\n" . $nmline ); + } + $nmline = "\@\$(top_srcdir)/admin/nmcheck $realname{$program} \'$allowed\' $weak"; + appendLines( "\nnmcheck_$realname{$program}: $realname{$program} \n\t$nmline\n" ); + $target_adds{ "nmcheck" } .= "nmcheck_$realname{$program} "; +} + +sub tag_DIST () { + my %foundfiles = (); + opendir (THISDIR, "."); + foreach $entry (readdir(THISDIR)) { + next if ($entry eq "CVS" || $entry =~ /^\./ || $entry eq "Makefile" || $entry =~ /~$/ || $entry =~ /^\#.*\#$/); + next if (! -f $entry); + next if ($entry =~ /\.moc/ || $entry =~ /\.moc.$cppExt$/ || $entry =~ /\.lo$/ || $entry =~ /\.la$/ || $entry =~ /\.o/); + next if ($entry =~ /\.all_$cppExt\.$cppExt$/); + $foundfiles{$entry} = 1; + } + closedir (THISDIR); + + # doing this for MAINTAINERCLEANFILES would be wrong + my @marks = ("EXTRA_DIST", "DIST_COMMON", '\S*_SOURCES', '\S*_HEADERS', 'CLEANFILES', 'DISTCLEANFILES', '\S*_OBJECTS'); + foreach $mark (@marks) { + while ($MakefileData =~ /\n($mark)\s*=[ \t]*([^\n]*)/g) { + my $cleanfiles_str = $2; + foreach $file (split('[\034\s]+', $cleanfiles_str)) { + $file =~ s/\.\///; + $foundfiles{$file} = 0 if (defined $foundfiles{$file}); + } + } + } + my @files = ("Makefile", "config.cache", "config.log", "stamp-h", + "stamp-h1", "stamp-h1", "config.h", "Makefile", + "config.status", "config.h", "libtool", "core" ); + foreach $file (@files) { + $foundfiles{$file} = 0 if (defined $foundfiles{$file}); + } + + my $KDE_DIST = ""; + foreach $file (keys %foundfiles) { + if ($foundfiles{$file} == 1) { + $KDE_DIST .= "$file "; + } + } + if ($KDE_DIST) { + print "KDE_DIST $printname $KDE_DIST\n" if ($verbose); + + my $lookup = 'DISTFILES\s*=[ \t]*(.*)'; + if ($MakefileData =~ /\n$lookup/) { + substituteLine($lookup, "DISTFILES = $1 \$(KDE_DIST)"); + appendLines("KDE_DIST=$KDE_DIST\n"); + } + } +} + +#----------------------------------------------------------------------------- +# Returns 0 if the line was processed - 1 otherwise. +# Errors are logged in the global $errorflags +sub tag_DOCFILES () +{ + $target_adds{"all"} .= "docs-am "; + + my $lookup = 'KDE_DOCS\s*=[ \t]*([^\n]*)'; + goto nodocs if ($MakefileData !~ /\n$lookup/); + print STDOUT "KDE_DOCS processing <$1>\n" if ($verbose); + + my $tmp = $1; + + # Either find the files in the directory (AUTO) or use + # only the specified po files. + my $files = ""; + my $appname = $tmp; + $appname =~ s/^(\S*)\s*.*$/$1/; + if ($appname =~ /AUTO/) { + $appname = basename($makefileDir); + if ("$appname" eq "en") { + print STDERR "Error: KDE_DOCS = AUTO relies on the directory name. Yours is 'en' - you most likely want something else, e.g. KDE_DOCS = myapp\n"; + exit(1); + } + } + + if ($tmp !~ / - /) + { + opendir (THISDIR, "."); + foreach $entry (readdir(THISDIR)) { + next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/ || $entry eq "core" || $entry eq "index.cache.bz2"); + next if (! -f $entry); + $files .= "$entry "; + } + closedir (THISDIR); + print STDOUT "docfiles found = $files\n" if ($verbose); + } + else + { + $tmp =~ s/\034/ /g; + $tmp =~ s/^\S*\s*-\s*//; + $files = $tmp; + } + goto nodocs if (!$files); # Nothing to do + + if ($files =~ /(^| )index\.docbook($| )/) { + + my $lines = ""; + my $lookup = 'MEINPROC\s*='; + if ($MakefileData !~ /\n($lookup)/) { + $lines = "MEINPROC=/\$(kde_bindir)/meinproc\n"; + } + $lookup = 'KDE_XSL_STYLESHEET\s*='; + if ($MakefileData !~ /\n($lookup)/) { + $lines .= "KDE_XSL_STYLESHEET=/\$(kde_datadir)/ksgmltools2/customization/kde-chunk.xsl\n"; + } + $lookup = '\nindex.cache.bz2:'; + if ($MakefileData !~ /\n($lookup)/) { + $lines .= "index.cache.bz2: \$(srcdir)/index.docbook \$(KDE_XSL_STYLESHEET) $files\n"; + $lines .= "\t\@if test -n \"\$(MEINPROC)\"; then echo \$(MEINPROC) --check --cache index.cache.bz2 \$(srcdir)/index.docbook; \$(MEINPROC) --check --cache index.cache.bz2 \$(srcdir)/index.docbook; fi\n"; + $lines .= "\n"; + } + + $lines .= "docs-am: index.cache.bz2\n"; + $lines .= "\n"; + $lines .= "install-docs: docs-am install-nls\n"; + $lines .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n"; + $lines .= "\t\@if test -f index.cache.bz2; then \\\n"; + $lines .= "\techo \$(INSTALL_DATA) index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n"; + $lines .= "\t\$(INSTALL_DATA) index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n"; + $lines .= "\telif test -f \$(srcdir)/index.cache.bz2; then \\\n"; + $lines .= "\techo \$(INSTALL_DATA) \$(srcdir)/index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n"; + $lines .= "\t\$(INSTALL_DATA) \$(srcdir)/index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n"; + $lines .= "\tfi\n"; + $lines .= "\t-rm -f \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/common\n"; + $lines .= "\t\$(LN_S) \$(kde_libs_htmldir)/$kdelang/common \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/common\n"; + + $lines .= "\n"; + $lines .= "uninstall-docs:\n"; + $lines .= "\t-rm -rf \$(kde_htmldir)/$kdelang/$appname\n"; + $lines .= "\n"; + $lines .= "clean-docs:\n"; + $lines .= "\t-rm -f index.cache.bz2\n"; + $lines .= "\n"; + $target_adds{"install-data-am"} .= "install-docs "; + $target_adds{"uninstall"} .= "uninstall-docs "; + $target_adds{"clean-am"} .= "clean-docs "; + appendLines ($lines); + } else { + appendLines("docs-am: $files\n"); + } + + $target_adds{"install-data-am"} .= "install-nls "; + $target_adds{"uninstall"} .= "uninstall-nls "; + + $tmp = "install-nls:\n"; + $tmp .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n"; + $tmp .= "\t\@for base in $files; do \\\n"; + $tmp .= "\t echo \$(INSTALL_DATA) \$\$base \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n"; + $tmp .= "\t \$(INSTALL_DATA) \$(srcdir)/\$\$base \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n"; + $tmp .= "\tdone\n"; + if ($appname eq 'common') { + $tmp .= "\t\@echo \"merging common and language specific dir\" ;\\\n"; + $tmp .= "\tif test ! -f \$(kde_htmldir)/en/common/kde-common.css; then echo 'no english docs found in \$(kde_htmldir)/en/common/'; exit 1; fi \n"; + $tmp .= "\t\@com_files=`cd \$(kde_htmldir)/en/common && echo *` ;\\\n"; + $tmp .= "\tcd \$(DESTDIR)\$(kde_htmldir)/$kdelang/common ;\\\n"; + $tmp .= "\tif test -n \"\$\$com_files\"; then for p in \$\$com_files ; do \\\n"; + $tmp .= "\t case \" $files \" in \\\n"; + $tmp .= "\t *\" \$\$p \"*) ;; \\\n"; + $tmp .= "\t *) test ! -f \$\$p && echo \$(LN_S) ../../en/common/\$\$p \$(DESTDIR)\$(kde_htmldir)/$kdelang/common/\$\$p && \$(LN_S) ../../en/common/\$\$p \$\$p ;; \\\n"; + $tmp .= "\t esac ; \\\n"; + $tmp .= "\tdone ; fi ; true\n"; + } + $tmp .= "\n"; + $tmp .= "uninstall-nls:\n"; + $tmp .= "\tfor base in $files; do \\\n"; + $tmp .= "\t rm -f \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n"; + $tmp .= "\tdone\n\n"; + appendLines ($tmp); + + $target_adds{"distdir"} .= "distdir-nls "; + + $tmp = "distdir-nls:\n"; + $tmp .= "\tfor file in $files; do \\\n"; + $tmp .= "\t cp \$(srcdir)/\$\$file \$(distdir); \\\n"; + $tmp .= "\tdone\n"; + + appendLines ($tmp); + + return 0; + + nodocs: + appendLines("docs-am:\n"); + return 1; +} + +#----------------------------------------------------------------------------- +# Find headers in any of the source directories specified previously, that +# are candidates for "moc-ing". +sub findMocCandidates () +{ + foreach $dir (@headerdirs) + { + my @list = (); + opendir (SRCDIR, "$dir"); + @hFiles = grep { /.+\.$hExt$/o && !/^\./ } readdir(SRCDIR); + closedir SRCDIR; + foreach $hf (@hFiles) + { + next if ($hf =~ /^\.\#/); + $hf =~ /(.*)\.[^\.]*$/; # Find name minus extension + next if ($uiFiles{$1}); + open (HFIN, "$dir/$hf") || die "Could not open $dir/$hf: $!\n"; + my $hfsize = 0; + seek(HFIN, 0, 2); + $hfsize = tell(HFIN); + seek(HFIN, 0, 0); + read HFIN, $hfData, $hfsize; + close HFIN; + # push (@list, $hf) if(index($hfData, "Q_OBJECT") >= 0); ### fast but doesn't handle //Q_OBJECT + # handle " { friend class blah; Q_OBJECT ", but don't match antlarr_Q_OBJECT (\b). + if ( $hfData =~ /{([^}]*)\bQ_OBJECT/s ) { + push (@list, $hf) unless $1 =~ m://[^\n]*Q_OBJECT[^\n]*$:s; ## reject "// Q_OBJECT" + } + } + # The assoc array of root of headerfile and header filename + foreach $hFile (@list) + { + $hFile =~ /(.*)\.[^\.]*$/; # Find name minus extension + if ($mocFiles{$1}) + { + print STDERR "Warning: Multiple header files found for $1\n"; + next; # Use the first one + } + $mocFiles{$1} = "$dir\035$hFile"; # Add relative dir + } + } + + return 0; +} + +#----------------------------------------------------------------------------- + +# The programmer has specified a moc list. Prune out the moc candidates +# list that we found based on looking at the header files. This generates +# a warning if the programmer gets the list wrong, but this doesn't have +# to be fatal here. +sub pruneMocCandidates ($) +{ + my %prunedMoc = (); + local @mocList = split(' ', $_[0]); + + foreach $mocname (@mocList) + { + $mocname =~ s/\.moc$//; + if ($mocFiles{$mocname}) + { + $prunedMoc{$mocname} = $mocFiles{$mocname}; + } + else + { + my $print = $makefileDir; + $print =~ s/^\Q$topdir\E\\//; + # They specified a moc file but we can't find a header that + # will generate this moc file. That's possible fatal! + print STDERR "Warning: No moc-able header file for $print/$mocname\n"; + } + } + + undef %mocFiles; + %mocFiles = %prunedMoc; +} + +#----------------------------------------------------------------------------- + +# Finds the cpp files (If they exist). +# The cpp files get appended to the header file separated by \035 +sub checkMocCandidates () +{ + my @cppFiles; + my $cpp2moc; # which c++ file includes which .moc files + my $moc2cpp; # which moc file is included by which c++ files + + return unless (keys %mocFiles); + opendir(THISDIR, ".") || return; + @cppFiles = grep { /.+\.$cppExt$/o && !/.+\.moc\.$cppExt$/o + && !/.+\.all_$cppExt\.$cppExt$/o + && !/^\./ } readdir(THISDIR); + closedir THISDIR; + return unless (@cppFiles); + my $files = join (" ", @cppFiles); + $cpp2moc = {}; + $moc2cpp = {}; + foreach $cxxf (@cppFiles) + { + open (CXXFIN, $cxxf) || die "Could not open $cxxf: $!\n"; + seek(CXXFIN, 0, 2); + my $cxxfsize = tell(CXXFIN); + seek(CXXFIN, 0, 0); + read CXXFIN, $cxxfData, $cxxfsize; + close CXXFIN; + while(($cxxfData =~ m/^[ \t]*\#include\s*[<\"](.*\.moc)[>\"]/gm)) { + $cpp2moc->{$cxxf}->{$1} = 1; + $moc2cpp->{$1}->{$cxxf} = 1; + } + } + foreach my $mocFile (keys (%mocFiles)) + { + @cppFiles = keys %{$moc2cpp->{"$mocFile.moc"}}; + if (@cppFiles == 1) { + $mocFiles{$mocFile} .= "\035" . $cppFiles[0]; + push(@depend, $mocFile); + } elsif (@cppFiles == 0) { + push (@newObs, $mocFile); # Produce new object file + next if ($haveAutomocTag); # This is expected... + # But this is an error we can deal with - let them know + print STDERR + "Warning: No c++ file that includes $mocFile.moc\n"; + } else { + # We can't decide which file to use, so it's fatal. Although as a + # guess we could use the mocFile.cpp file if it's in the list??? + print STDERR + "Error: Multiple c++ files that include $mocFile.moc\n"; + print STDERR "\t",join ("\t", @cppFiles),"\n"; + $errorflag = 1; + delete $mocFiles{$mocFile}; + # Let's continue and see what happens - They have been told! + } + } +} + +#----------------------------------------------------------------------------- + +# Add the rules for generating moc source from header files +# For Automoc output *.moc.cpp but normally we'll output *.moc +# (We must compile *.moc.cpp separately. *.moc files are included +# in the appropriate *.cpp file by the programmer) +sub addMocRules () +{ + my $cppFile; + my $hFile; + + foreach $mocFile (keys (%mocFiles)) + { + undef $cppFile; + ($dir, $hFile, $cppFile) = split ("\035", $mocFiles{$mocFile}, 3); + $dir =~ s#^\.#\$(srcdir)#; + if (defined ($cppFile)) + { + $cppFile =~ s,\.[^.]*$,,; + $target_adds{"$cppFile.o"} .= "$mocFile.moc "; + $target_adds{"$cppFile.lo"} .= "$mocFile.moc "; + appendLines ("$mocFile.moc: $dir/$hFile\n\t\$(MOC) $dir/$hFile -o $mocFile.moc\n"); + $cleanMoc .= " $mocFile.moc"; + appendLines ("mocs: $mocFile.moc\n"); + } + else + { + appendLines ("$mocFile$mocExt: $dir/$hFile\n\t\$(MOC) $dir/$hFile -o $mocFile$mocExt\n"); + $cleanMoc .= " $mocFile$mocExt"; + appendLines ("mocs: $mocFile$mocExt\n"); + } + } +} + +sub make_bcheck_target() +{ + my $lookup = 'RECURSIVE_TARGETS\s*=[ \t]*(.*)'; + my $bcheckdep = "bcheck-am"; + $bcheckdep = "bcheck-recursive" if ($MakefileData =~ /\n$lookup/); + + my $headers= ""; + $headers = $1 if($MakefileData =~ /\nHEADERS\s*=[ \t]*(.+)/); + $headers =~ s/\$\((?:noinst|EXTRA)_HEADERS\)//g; + + $target_adds{"clean-am"} .= "clean-bcheck "; + + my $t = "clean-bcheck: \n" . + "\trm -f *.bchecktest.cc *.bchecktest.cc.class a.out\n\n" . + "bcheck: $bcheckdep\n\n" . + "bcheck-am:\n" . + "\t\@for i in $headers; do \\\n" . + "\t if test \$(srcdir)/\$\$i -nt \$\$i.bchecktest.cc; then \\\n" . + "\t echo \"int main() {return 0;}\" > \$\$i.bchecktest.cc ; \\\n" . + "\t echo \"#include \\\"\$\$i\\\"\" >> \$\$i.bchecktest.cc ; \\\n" . + "\t echo \"\$\$i\"; \\\n" . + "\t if ! "; + $t .= $cxxsuffix eq "KKK" ? + "\$(CXX) \$(DEFS) -I. -I\$(srcdir) -I\$(top_builddir) \$(INCLUDES) \$(AM_CPPFLAGS) \$(CPPFLAGS) \$(CXXFLAGS) \$(KDE_CXXFLAGS) " : + "\$(CXXCOMPILE) "; + $t .= " --dump-class-hierarchy -c \$\$i.bchecktest.cc; then \\\n" . + "\t rm -f \$\$i.bchecktest.cc; exit 1; \\\n" . + "\t fi ; \\\n" . + "\t echo \"\" >> \$\$i.bchecktest.cc.class; \\\n" . + "\t perl \$(top_srcdir)/admin/bcheck.pl \$\$i.bchecktest.cc.class || { rm -f \$\$i.bchecktest.cc; exit 1; }; \\\n" . + "\t rm -f a.out; \\\n" . + "\t fi ; \\\n" . + "\tdone\n"; + appendLines("$t\n"); +} + +sub make_meta_classes () +{ + return if ($kdeopts{"qtonly"}); + + my $cppFile; + my $hFile; + my $moc_class_headers = ""; + foreach $program (@programs) { + my $mocs = ""; + my @progsources = split(/[\034\s]+/, $sources{$program}); + my @depmocs = split(' ', $dependmocs{$program}); + my %shash = (), %mhash = (); + @shash{@progsources} = 1; # we are only interested in the existence + @mhash{@depmocs} = 1; + + print STDOUT "program=$program\n" if ($verbose); + print STDOUT "psources=[".join(' ', keys %shash)."]\n" if ($verbose); + print STDOUT "depmocs=[".join(' ', keys %mhash)."]\n" if ($verbose); + print STDOUT "globalmocs=[".join(' ', keys(%globalmocs))."]\n" if ($verbose); + foreach my $mocFile (keys (%globalmocs)) + { + my ($dir, $hFile, $cppFile) = split ("\035", $globalmocs{$mocFile}, 3); + if (defined ($cppFile)) + { + $mocs .= " $mocFile.moc" if exists $shash{$cppFile}; + } + else + { + # Bah. This is the case, if no C++ file includes the .moc + # file. We make a .moc.cpp file for that. Unfortunately this + # is not included in the %sources hash, but rather is mentioned + # in %dependmocs. If the user wants to use AUTO he can't just + # use an unspecific METAINCLUDES. Instead he must use + # program_METAINCLUDES. Anyway, it's not working real nicely. + # E.g. Its not clear what happens if user specifies two + # METAINCLUDES=AUTO in the same Makefile.am. + $mocs .= " $mocFile.moc.$cxxsuffix" + if exists $mhash{$mocFile.".moc.$cxxsuffix"}; + } + } + if ($mocs) { + print STDOUT "==> mocs=[".$mocs."]\n" if ($verbose); + } + print STDOUT "\n" if $verbose; + } + if ($moc_class_headers) { + appendLines ("$cleantarget-moc-classes:\n\t-rm -f $moc_class_headers\n"); + $target_adds{"$cleantarget-am"} .= "$cleantarget-moc-classes "; + } +} + +#----------------------------------------------------------------------------- + +sub updateMakefile () +{ + return if ($dryrun); + + open (FILEOUT, "> $makefile") + || die "Could not create $makefile: $!\n"; + + $MakefileData =~ s/\034/\\\n/g; # Restore continuation lines + # Append our $progId line, _below_ the "generated by automake" line + # because automake-1.6 relies on the first line to be his own. + my $progIdLine = "\# $progId - " . '$Revision: 1.31 $ '."\n"; + if ( !( $MakefileData =~ s/^(.*generated .*by automake.*\n)/$1$progIdLine/ ) ) { + warn "automake line not found in $makefile\n"; + # Fallback: first line + print FILEOUT $progIdLine; + }; + print FILEOUT $MakefileData; + close FILEOUT; +} + +#----------------------------------------------------------------------------- + +# The given line needs to be removed from the makefile +# Do this by adding the special "removed line" comment at the line start. +sub removeLine ($$) +{ + my ($lookup, $old) = @_; + + $old =~ s/\034/\\\n#>- /g; # Fix continuation lines + $MakefileData =~ s/\n$lookup/\n#>\- $old/; +} + +#----------------------------------------------------------------------------- + +# Replaces the old line with the new line +# old line(s) are retained but tagged as removed. The new line(s) have the +# "added" tag placed before it. +sub substituteLine ($$) +{ + my ($lookup, $new) = @_; + + if ($MakefileData =~ /\n($lookup)/) { + $old = $1; + $old =~ s/\034/\\\n#>\- /g; # Fix continuation lines + my $newCount = ($new =~ tr/\034//) + ($new =~ tr/\n//) + 1; + $new =~ s/\\\n/\034/g; + $MakefileData =~ s/\n$lookup/\n#>- $old\n#>\+ $newCount\n$new/; + } else { + warn "Warning: substitution of \"$lookup\" in $printname failed\n"; + } +} + +#----------------------------------------------------------------------------- + +# Slap new lines on the back of the file. +sub appendLines ($) +{ + my ($new) = @_; + my $copynew = $new; + my $newCount = ($new =~ tr/\034//) + ($new =~ tr/\n//) + 1; + $new =~ s/\\\n/\034/g; # Fix continuation lines + $MakefileData .= "\n#>\+ $newCount\n$new"; +} + +#----------------------------------------------------------------------------- + +# Restore the Makefile.in to the state it was before we fiddled with it +sub restoreMakefile () +{ + $MakefileData =~ s/# $progId[^\n\034]*[\n\034]*//g; + # Restore removed lines + $MakefileData =~ s/([\n\034])#>\- /$1/g; + # Remove added lines + while ($MakefileData =~ /[\n\034]#>\+ ([^\n\034]*)/) + { + my $newCount = $1; + my $removeLines = ""; + while ($newCount--) { + $removeLines .= "[^\n\034]*([\n\034]|)"; + } + $MakefileData =~ s/[\n\034]#>\+.*[\n\034]$removeLines/\n/; + } +} + +#----------------------------------------------------------------------------- + +# find the .kcfg file listed in the .kcfgc file +sub findKcfgFile($) +{ + my ($kcfgf) = @_; + open (KCFGFIN, $kcfgf) || die "Could not open $kcfgf: $!\n"; + seek(KCFGFIN, 0, 2); + my $kcfgfsize = tell(KCFGFIN); + seek(KCFGFIN, 0, 0); + read KCFGFIN, $kcfgfData, $kcfgfsize; + close KCFGFIN; + if(($kcfgfData =~ m/^File=(.*\.kcfg)/gm)) { + $kcfg = $1; + } +} diff --git a/admin/compile b/admin/compile new file mode 100755 index 0000000..9bb997a --- /dev/null +++ b/admin/compile @@ -0,0 +1,99 @@ +#! /bin/sh + +# Wrapper for compilers which do not understand `-c -o'. + +# Copyright 1999, 2000 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, 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. + +# Usage: +# compile PROGRAM [ARGS]... +# `-o FOO.o' is removed from the args passed to the actual compile. + +prog=$1 +shift + +ofile= +cfile= +args= +while test $# -gt 0; do + case "$1" in + -o) + # configure might choose to run compile as `compile cc -o foo foo.c'. + # So we do something ugly here. + ofile=$2 + shift + case "$ofile" in + *.o | *.obj) + ;; + *) + args="$args -o $ofile" + ofile= + ;; + esac + ;; + *.c) + cfile=$1 + args="$args $1" + ;; + *) + args="$args $1" + ;; + esac + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no `-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # `.c' file was seen then we are probably linking. That is also + # ok. + exec "$prog" $args +fi + +# Name of file we expect compiler to create. +cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'` + +# Create the lock directory. +# Note: use `[/.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d +while true; do + if mkdir $lockdir > /dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir $lockdir; exit 1" 1 2 15 + +# Run the compile. +"$prog" $args +status=$? + +if test -f "$cofile"; then + mv "$cofile" "$ofile" +fi + +rmdir $lockdir +exit $status diff --git a/admin/conf.change.pl b/admin/conf.change.pl new file mode 100644 index 0000000..853d2a7 --- /dev/null +++ b/admin/conf.change.pl @@ -0,0 +1,191 @@ +#!/usr/bin/env perl + +# this script patches a config.status file, to use our own perl script +# in the main loop +# we do it this way to circumvent hacking (and thereby including) +# autoconf function (which are GPL) into our LGPL acinclude.m4.in +# written by Michael Matz +# adapted by Dirk Mueller +# +# This file is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. + +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. + +# You should have received a copy of the GNU Library General Public License +# along with this library; see the file COPYING.LIB. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# we have to change two places +# 1. the splitting of the substitutions into chunks of 90 (or even 48 in +# later autoconf's +# 2. the big main loop which patches all Makefile.in's + +use strict; +use File::Basename; + +my $ac_aux_dir = dirname($0); +my ($flag); +my $ac_version = 0; +my $vpath_seen = 0; +$flag = 0; + +while (<>) { +# usage of $flag: 0 -- we have seen nothing yet +# 1 -- we are in (1) +# 2 -- we have ended (1) +# 3 -- we are in (2) +# 4 -- we ended (2) + + if ($flag == 4) { + print; + } elsif ($flag == 0) { +# 1. begins with (including): "ac_max_sed_\S+\s*=\s*[0-9]+..." +# ends with (excluding) "CONFIG_FILE=..." +# in later autoconf (2.14.1) there is no CONFIG_FILES= line, +# but instead the (2) directly follow (1) + if (/^\s*ac_max_sed_([a-z]+).*=\s*([0-9]+)/ ) { + $flag = 1; + if ($1 eq 'lines') { + # lets hope its different with 2141, + # wasn't able to verify that + if ($2 eq '48') { + $ac_version = 250; + } + else { + $ac_version = 2141; + } + } elsif ($1 eq 'cmds') { + $ac_version = 213; + } + # hmm, we don't know the autoconf version, but we try anyway + } else { + print; + } + } elsif ($flag == 1) { + if (/^\s*CONFIG_FILES=/ && ($ac_version != 250)) { + print; + $flag = 2; + } elsif (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) { + $flag = 3; + } + } elsif ($flag == 2) { +# 2. begins with: "for ac_file in.*CONFIG_FILES" (the next 'for' after (1)) +# end with: "rm -f conftest.s\*" +# on autoconf 250, it ends with '# CONFIG_HEADER section' +# +# gg: if a post-processing commands section is found first, +# stop there and insert a new loop to honor the case/esac. +# (pattern: /^\s+#\sRun the commands associated with the file./) + + if (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) { + $flag = 3; + } else { + print; + } + } elsif ($flag == 3) { + if (/^\s*rm\s+-f\s+conftest/ ) { + $flag = 4; + &insert_main_loop(); + } elsif (/^\s*rm\s+-f\s+.*ac_cs_root/ ) { + $flag = 4; + &insert_main_loop(); + #die "hhhhhhh"; + if ($ac_version != 2141) { + print STDERR "hmm, don't know autoconf version\n"; + } + } elsif (/^\#\s*CONFIG_(HEADER|COMMANDS) section.*|^\s+#\s(Run) the commands associated/) { + $flag = 4; + my $commands = defined $2; + &insert_main_loop(); + $commands && insert_command_loop(); + if($ac_version != 250) { + print STDERR "hmm, something went wrong :-(\n"; + } + } elsif (/VPATH/ ) { + $vpath_seen = 1; + } + } +} + +die "wrong input (flag != 4)" unless $flag == 4; +print STDERR "hmm, don't know autoconf version\n" unless $ac_version; + +sub insert_main_loop { + + if ($ac_version == 250) { + &insert_main_loop_250(); + } + else { + &insert_main_loop_213(); + } +} + +sub insert_main_loop_250 { + + print <>\$tmp/subs.sed +EOF + } + print <> \$tmp/subs.files + fi + done + if test -f \$tmp/subs.files ; then + perl $ac_aux_dir/config.pl "\$tmp/subs.sed" "\$tmp/subs.files" "\$srcdir" "\$INSTALL" + fi + rm -f \$tmp/subs.files + +fi +EOF + return; +} + +sub insert_main_loop_213 { + print <> \$ac_cs_root.subs +EOF + } + print <> \$ac_cs_root.sacfiles + fi +done +if test -f \$ac_cs_root.sacfiles ; then + perl $ac_aux_dir/config.pl "\$ac_cs_root.subs" "\$ac_cs_root.sacfiles" "\$ac_given_srcdir" "\$ac_given_INSTALL" +fi +rm -f \$ac_cs_root.s* + +EOF + return; +} + +sub insert_command_loop { + print <. +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 +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 + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit 0 ;; + amd64:OpenBSD:*:*) + echo x86_64-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + cats:OpenBSD:*:*) + echo arm-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + luna88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + macppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvmeppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + pmax:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sgi:OpenBSD:*:*) + echo mipseb-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sun3:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + wgrisc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit 0 ;; + macppc:MirBSD:*:*) + echo powerppc-unknown-mirbsd${UNAME_RELEASE} + exit 0 ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit 0 ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit 0 ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit 0;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit 0 ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit 0 ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit 0 ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + 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 ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit 0 ;; + DRS?6000:UNIX_SV:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7 && exit 0 ;; + esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit 0 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit 0 ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit 0 ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit 0 ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit 0 ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit 0 ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c \ + && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && exit 0 + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit 0 ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit 0 ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit 0 ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit 0 ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit 0 ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit 0 ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit 0 ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit 0 ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit 0 ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit 0 ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit 0 ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit 0 ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit 0 ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit 0 ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit 0 ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + # avoid double evaluation of $set_cc_for_build + test -n "$CC_FOR_BUILD" || eval $set_cc_for_build + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit 0 ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit 0 ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit 0 ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit 0 ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit 0 ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit 0 ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*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 ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit 0 ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit 0 ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit 0 ;; + x86:Interix*:[34]*) + echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' + exit 0 ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + 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 i586-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:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit 0 ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit 0 ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit 0 ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + mips:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips + #undef mipsel + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mipsel + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit 0 ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit 0 ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit 0 ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit 0 ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit 0 ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit 0 ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit 0 ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit 0 ;; + coff-i386) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit 0 ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. + echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit 0 ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #ifdef __INTEL_COMPILER + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 + test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit 0 ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit 0 ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit 0 ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit 0 ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit 0 ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit 0 ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit 0 ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit 0 ;; + i*86:*:5:[78]*) + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit 0 ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 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 ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit 0 ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit 0 ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) + 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 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit 0 ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit 0 ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit 0 ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit 0 ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit 0 ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit 0 ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit 0 ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit 0 ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-6:SUPER-UX:*:*) + echo sx6-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:*:*) + case `uname -p` in + *86) UNAME_PROCESSOR=i686 ;; + powerpc) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit 0 ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit 0 ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit 0 ;; + NSR-?: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 ;; + *: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 ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit 0 ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms && exit 0 ;; + I*) echo ia64-dec-vms && exit 0 ;; + V*) echo vax-dec-vms && exit 0 ;; + esac +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 + +# 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/admin/config.pl b/admin/config.pl new file mode 100644 index 0000000..034042e --- /dev/null +++ b/admin/config.pl @@ -0,0 +1,236 @@ +#!/usr/bin/env perl +# a script for use by autoconf to make the Makefiles +# from the Makefile.in's +# +# the original autoconf mechanism first splits all substitutions into groups +# of ca. 90, and than invokes sed for _every_ Makefile.in and every group +# (so around 2-3 times per Makefile.in). So this takes forever, as sed +# has to recompile the regexps every time. +# +# this script does better. It changes all Makefile.ins in one process. +# in kdelibs the time for building Makefile went down from 2:59 min to 13 sec! +# +# written by Michael Matz +# adapted by Dirk Mueller + +# This file is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. + +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. + +# You should have received a copy of the GNU Library General Public License +# along with this library; see the file COPYING.LIB. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +use strict; + +use File::Path; + +my $ac_subs=$ARGV[0]; +my $ac_sacfiles = $ARGV[1]; +my $ac_given_srcdir=$ARGV[2]; +my $ac_given_INSTALL=$ARGV[3]; + +my @comp_match; +my @comp_subs; + +#print "ac_subs=$ac_subs\n"; +#print "ac_sacfiles=$ac_sacfiles\n"; +#print "ac_given_srcdir=$ac_given_srcdir\n"; +#print "ac_given_INSTALL=$ac_given_INSTALL\n"; + +my $configure_input; +my ($srcdir, $top_srcdir); +my $INSTALL; +my $bad_perl = ($] < 5.005); +my $created_file_count = 0; + +open(CF, "< $ac_subs") || die "can't open $ac_subs: $!"; +my @subs = ; +close(CF); +chomp @subs; +@comp_match=(); +@comp_subs=(); + +if ($bad_perl) { + print "Using perl older than version 5.005\n"; + foreach my $pat (@subs) { + if ( ($pat =~ m/s%([^%]*)%([^%]*)%g/ ) + || ($pat =~ m/s%([^%]*)%([^%]*)%;t/ ) + || ($pat =~ m/s,([^,]*),(.*),;t/) + || ($pat =~ m%s/([^/]*)/([^/]*)/g% ) + || ($pat =~ m%s/([^/]*)/([^/]*)/;t% ) + ) { + # form : s%bla%blubb%g + # or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?) + # or s,bla,blubb,;t t (autoconf 2.52) + my $srch = $1; + my $repl = $2; + $repl =~ s/\\(.)/$1/g; + push @comp_subs, make_closure($srch, $repl); + + } elsif ( ($pat =~ /%([^%]*)%d/ ) + || ($pat =~ m%/([^/]*)/d% ) + ) { + push @comp_subs, make_closure($1, ""); + } else { + die "Uhh. Malformed pattern in $ac_subs ($pat)" + unless ( $pat =~ /^\s*$/ ); # ignore white lines + } + } +} else { + foreach my $pat (@subs) { + if ( ($pat =~ /s%([^%]*)%([^%]*)%g/ ) || + ($pat =~ /s%([^%]*)%([^%]*)%;t/ ) || + ($pat =~ /s,([^,]*),(.*),;t/) ) { + # form : s%bla%blubb%g + # or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?) + # or s,bla,blubb,;t t (autoconf 2.52) + my $srch = $1; + my $repl = $2; + push @comp_match, eval "qr/\Q$srch\E/"; # compile match pattern + $repl =~ s/\\(.)/$1/g; + push @comp_subs, $repl; + } elsif ( ($pat =~ /%([^%]*)%d/ ) + || ($pat =~ m%/([^/]*)/d% ) + ) { + push @comp_match, eval "qr/\Q$1\E/"; + push @comp_subs, ""; + } else { + die "Uhh. Malformed pattern in $ac_subs ($pat)" + unless ( $pat =~ /^\s*$/ ); # ignore white lines + } + } +} +undef @subs; + +# read the list of files to be patched, form: +# ./Makefile arts/Makefile arts/examples/Makefile arts/flow/Makefile + +open(CF, "< $ac_sacfiles") || die "can't open $ac_sacfiles: $!"; +my @ac_files = ; +close(CF); +chomp @ac_files; + + +my $ac_file; +foreach $ac_file (@ac_files) { + next if $ac_file =~ /\.\./; + next if $ac_file =~ /^\s*$/; + my $ac_file_in; + my ($ac_dir, $ac_dots, $ac_dir_suffix); + + if ($ac_file =~ /.*:.*/ ) { + ($ac_file_in = $ac_file) =~ s%[^:]*:%%; + $ac_file =~ s%:.*%%; + } else { + $ac_file_in = $ac_file.".in"; + } + +# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + +# Remove last slash and all that follows it. Not all systems have dirname. + ($ac_dir = $ac_file) =~ s%/[^/][^/]*$%%; + if ( ($ac_dir ne $ac_file) && ($ac_dir ne ".")) { +# The file is in a subdirectory. + if (! -d "$ac_dir") { mkpath "$ac_dir", 0, 0777; } + ($ac_dir_suffix = $ac_dir) =~ s%^./%%; + $ac_dir_suffix="/".$ac_dir_suffix; +# A "../" for each directory in $ac_dir_suffix. + ($ac_dots = $ac_dir_suffix) =~ s%/[^/]*%../%g; + } else { + $ac_dir_suffix=""; + $ac_dots=""; + } + + if ($ac_given_srcdir eq ".") { + $srcdir="."; + if ($ac_dots) { + ( $top_srcdir = $ac_dots) =~ s%/$%%; + } else { $top_srcdir="."; } + } elsif ($ac_given_srcdir =~ m%^/%) { + $srcdir=$ac_given_srcdir.$ac_dir_suffix; + $top_srcdir = $ac_given_srcdir; + } else { + $srcdir = $ac_dots.$ac_given_srcdir.$ac_dir_suffix; + $top_srcdir = $ac_dots.$ac_given_srcdir; + } + + if ($ac_given_INSTALL) { + if ($ac_given_INSTALL =~ m%^/% ) { + $INSTALL = $ac_given_INSTALL; + } else { + $INSTALL = $ac_dots.$ac_given_INSTALL; + } + } + + print "fast creating $ac_file\n"; + unlink $ac_file; + my $ac_comsub=""; + my $fname=$ac_file_in; + $fname =~ s%.*/%%; + $configure_input="$ac_file. Generated from $fname by config.pl."; + + my $ac_file_inputs; + ($ac_file_inputs = $ac_file_in) =~ s%^%$ac_given_srcdir/%; + $ac_file_inputs =~ s%:% $ac_given_srcdir/%g; + + patch_file($ac_file, $ac_file_inputs); + ++$created_file_count; +} + +print "config.pl: fast created $created_file_count file(s).\n"; + +sub patch_file { + my ($outf, $infiles) = @_; + my $filedata; + my @infiles=split(' ', $infiles); + my $i=0; + + foreach my $name (@infiles) { + if (open(CF, "< $name")) { + while () { + $filedata .= $_; + } + close(CF); + } else { + print STDERR "can't open $name: $!"."\n"; + } + } + + $filedata =~ s%\@configure_input\@%$configure_input%g; + $filedata =~ s%\@srcdir\@%$srcdir%g; + $filedata =~ s%\@top_srcdir\@%$top_srcdir%g; + $filedata =~ s%\@INSTALL\@%$INSTALL%g; + + if ($bad_perl) { + while ($i <= $#comp_subs) { + my $ref = $comp_subs[$i]; + &$ref(\$filedata); + $i++; + } + } else { + while ($i <= $#comp_match) { + $filedata =~ s/$comp_match[$i]/$comp_subs[$i]/g; + $i++; + } + } + open(CF, "> $outf") || die "can't create $outf: $!"; + print CF $filedata; + close(CF); +} + +sub make_closure { + my ($pat, $sub) = @_; + my $ret = eval "return sub { my \$ref=shift; \$\$ref =~ s%\Q$pat\E%\Q$sub\E%g; }"; + if ($@) { + print "can't create CODE: $@\n"; + } + return $ret; +} diff --git a/admin/config.sub b/admin/config.sub new file mode 100755 index 0000000..ac6de98 --- /dev/null +++ b/admin/config.sub @@ -0,0 +1,1552 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + +timestamp='2004-06-24' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 +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* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ + kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | m32r | m32rle | m68000 | m68k | m88k | mcore \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64vr | mips64vrel \ + | mips64orion | mips64orionel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | msp430 \ + | ns16k | ns32k \ + | openrisc | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ + | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xscale | xstormy16 | xtensa \ + | z8k) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* \ + | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | msp430-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ + | xtensa-* \ + | ymp-* \ + | z8k-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16c) + basic_machine=cr16c-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + or32 | or32-*) + basic_machine=or32-unknown + os=-coff + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparc | sparcv8 | 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 + ;; + *-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* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -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 + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit 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/admin/configure.in.bot.end b/admin/configure.in.bot.end new file mode 100644 index 0000000..14da279 --- /dev/null +++ b/admin/configure.in.bot.end @@ -0,0 +1,30 @@ +# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure +if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then + # And if so, warn when they don't match + if test "$kde_libs_prefix" != "$given_prefix"; then + # And if kde doesn't know about the prefix yet + echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null + if test $? -ne 0; then + echo "" + echo "Warning: you chose to install this package in $given_prefix," + echo "but KDE was found in $kde_libs_prefix." + echo "For this to work, you will need to tell KDE about the new prefix, by ensuring" + echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix" + echo "Then restart KDE." + echo "" + fi + fi +fi + +if test "$all_tests" = "bad"; then + if test ! "$cache_file" = "/dev/null"; then + echo "" + echo "Please remove the file $cache_file after changing your setup" + echo "so that configure will find the changes next time." + echo "" + fi +else + echo "" + echo "Good - your configure finished. Start make now" + echo "" +fi diff --git a/admin/configure.in.min b/admin/configure.in.min new file mode 100644 index 0000000..7c7e25a --- /dev/null +++ b/admin/configure.in.min @@ -0,0 +1,57 @@ +dnl This file is part of the KDE libraries/packages +dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org) + +dnl This file is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Library General Public +dnl License as published by the Free Software Foundation; either +dnl version 2 of the License, or (at your option) any later version. + +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Library General Public License for more details. + +dnl You should have received a copy of the GNU Library General Public License +dnl along with this library; see the file COPYING.LIB. If not, write to +dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +dnl Boston, MA 02111-1307, USA. + +# Original Author was Kalle@kde.org +# I lifted it in some mater. (Stephan Kulow) +# I used much code from Janos Farkas + +dnl Process this file with autoconf to produce a configure script. + +AC_INIT(acinclude.m4) dnl a source file from your sub dir + +dnl This is so we can use kde-common +AC_CONFIG_AUX_DIR(admin) + +dnl This ksh/zsh feature conflicts with `cd blah ; pwd` +unset CDPATH + +dnl Checking host/target/build systems, for make, install etc. +AC_CANONICAL_SYSTEM +dnl Perform program name transformation +AC_ARG_PROGRAM + +dnl Automake doc recommends to do this only here. (Janos) +AM_INIT_AUTOMAKE(@MODULENAME@, @VERSION@) dnl searches for some needed programs + +KDE_SET_PREFIX + +dnl generate the config header +AM_CONFIG_HEADER(config.h) dnl at the distribution this done + +dnl Checks for programs. +AC_CHECK_COMPILERS +AC_ENABLE_SHARED(yes) +AC_ENABLE_STATIC(no) +KDE_PROG_LIBTOOL + +dnl for NLS support. Call them in this order! +dnl WITH_NLS is for the po files +AM_KDE_WITH_NLS + +dnl KDE_USE_QT +AC_PATH_KDE diff --git a/admin/cvs-clean.pl b/admin/cvs-clean.pl new file mode 100644 index 0000000..35d48e9 --- /dev/null +++ b/admin/cvs-clean.pl @@ -0,0 +1,87 @@ +#! /usr/bin/perl + +# +# This script recursively (beginning with the current directory) +# wipes out everything not registered in CVS. +# +# written by Oswald Buddenhagen +# inspired by the "old" cvs-clean target from Makefile.common +# +# This file is free software in terms of the BSD license. That means +# that you can do anything with it except removing this license or +# the above copyright notice. There is NO WARRANTY of any kind. +# + +sub rmrf() +{ + my $fn = shift; + lstat ($fn); + if (-d _) { + if (opendir (DIR, $fn)) { + for my $efn (grep (!/^\.\.?$/, readdir (DIR))) { + &rmrf ($fn."/".$efn); + } + closedir (DIR); + rmdir ($fn); + } + } else { + unlink ($fn); + } +} + +sub newfiles() +{ + my ($indir, $incvs) = @_; + for my $n (keys (%$incvs)) { delete $$indir{$n} } + return sort (keys (%$indir)); +} + +sub cvsclean() +{ + my $dir = shift; + my (%dirsdir, %filesdir, %dirscvs, %filescvs); + my $dnam = $dir ? $dir : "."; + if (!opendir (DIR, $dnam)) { + print STDERR "Cannot enter \"".$dnam."\".\n"; + return; + } + for my $fn (grep (!/^\.\.?$/, readdir (DIR))) { + if (-d $dir.$fn) { + $fn eq "CVS" or $dirsdir{$fn} = 1; + } else { + $filesdir{$fn} = 1; + } + } + closedir (DIR); + if (!open (FILE, "<".$dir."CVS/Entries")) { + print STDERR "No CVS information in \"".$dnam."\".\n"; + return; + } + while () { + m%^D/([^/]+)/.*$% and $dirscvs{$1} = 1; + m%^/([^/]+)/.*$% and $filescvs{$1} = 1; + } + close (FILE); + if (open (FILE, "<".$dir."CVS/Entries.Log")) { + while () { + m%^A D/([^/]+)/.*$% and $dirscvs{$1} = 1; + m%^A /([^/]+)/.*$% and $filescvs{$1} = 1; + m%^R D/([^/]+)/.*$% and delete $dirscvs{$1}; + m%^R /([^/]+)/.*$% and delete $filescvs{$1}; + } + close (FILE); + } + for my $fn (&newfiles (\%filesdir, \%filescvs)) { + print ("F ".$dir.$fn."\n"); + &rmrf ($dir.$fn); + } + for my $fn (&newfiles (\%dirsdir, \%dirscvs)) { + print ("D ".$dir.$fn."\n"); + &rmrf ($dir.$fn); + } + for my $fn (sort (keys (%dirscvs))) { + &cvsclean ($dir.$fn."/"); + } +} + +&cvsclean (""); diff --git a/admin/cvs.sh b/admin/cvs.sh new file mode 100644 index 0000000..03eab28 --- /dev/null +++ b/admin/cvs.sh @@ -0,0 +1,662 @@ +#! /bin/sh +# +# cvs.sh +# +# This file contains support code from Makefile.common +# It defines a shell function for each known target +# and then does a case to call the correct function. + +unset MAKEFLAGS + +call_and_fix_autoconf() +{ + $AUTOCONF || exit 1 + if test -r configure.in.in ; then + perl -pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\ + \\n perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\ + \\\\\\n || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\ + \\n rm -f \\\$CONFIG_STATUS.bak\\nfi\ + \\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/; s,^#line.*LINENO.*\$,/* \$& */, ;" configure + fi +} + +strip_makefile() +{ + if test ! -f $makefile_wo; then + perl -e '$in=0; while ( <> ) { $in = 1 if ($_ =~ m/^if / ); print $_ unless ($in || $_ =~ m/^include /); $in = 0 if ($_ =~ m/^endif/); }' < $makefile_am > $makefile_wo + fi +} + +check_autotool_versions() +{ +required_autoconf_version="2.53 or newer" +AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1` +case $AUTOCONF_VERSION in + Autoconf*2.5* | autoconf*2.5* | autoconf*2.6* ) : ;; + "" ) + echo "*** AUTOCONF NOT FOUND!." + echo "*** KDE requires autoconf $required_autoconf_version" + exit 1 + ;; + * ) + echo "*** YOU'RE USING $AUTOCONF_VERSION." + echo "*** KDE requires autoconf $required_autoconf_version" + exit 1 + ;; +esac + +AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1` +case $AUTOHEADER_VERSION in + Autoconf*2.5* | autoheader*2.5* | autoheader*2.6* ) : ;; + "" ) + echo "*** AUTOHEADER NOT FOUND!." + echo "*** KDE requires autoheader $required_autoconf_version" + exit 1 + ;; + * ) + echo "*** YOU'RE USING $AUTOHEADER_VERSION." + echo "*** KDE requires autoheader $required_autoconf_version" + exit 1 + ;; +esac + +unset UNSERMAKE || : + +AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1` +required_automake_version="1.6.1 or newer" +case $AUTOMAKE_STRING in + automake*1.5d* | automake*1.5* | automake*1.5-* ) + echo "*** YOU'RE USING $AUTOMAKE_STRING." + echo "*** KDE requires automake $required_automake_version" + exit 1 + ;; + automake*1.6.* | automake*1.7* | automake*1.8* | automake*1.9* | automake*1.10*) : ;; + "" ) + echo "*** AUTOMAKE NOT FOUND!." + echo "*** KDE requires automake $required_automake_version" + exit 1 + ;; + *unsermake* ) : + echo "*** YOU'RE USING UNSERMAKE." + echo "*** GOOD LUCK!! :)" + UNSERMAKE=unsermake + ;; + * ) + echo "*** YOU'RE USING $AUTOMAKE_STRING." + echo "*** KDE requires automake $required_automake_version" + exit 1 + ;; +esac +unset required_automake_version +} + +cvs() +{ +check_autotool_versions +acinclude_m4 + +### Make new subdirs and configure.in. +### The make calls could be optimized away here, +### with a little thought. +if test -r configure.in.in; then + rm -f configure.in + echo "*** Creating list of subdirectories" + create_subdirs + + if test -r Makefile.am.in; then + echo "*** Creating Makefile.am" + if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then + strip_makefile + $MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1 + else + Makefile_am + fi + fi + configure_files + echo "*** Creating configure.in" + if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then + strip_makefile + $MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1 + else + configure_in + fi +fi + +echo "*** Creating aclocal.m4" +$ACLOCAL $ACLOCALFLAGS || exit 1 +echo "*** Creating configure" +call_and_fix_autoconf + +if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then + echo "*** Creating config.h template" + $AUTOHEADER || exit 1 +fi + +echo "*** Creating Makefile templates" +$AUTOMAKE || exit 1 + +if test -z "$UNSERMAKE"; then + echo "*** Postprocessing Makefile templates" + perl -w admin/am_edit || exit 1 +fi + +if egrep "^cvs-local:" $makefile_am >/dev/null; then \ + strip_makefile + $MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1 +fi + +echo "*** Creating date/time stamp" +touch stamp-h.in + +echo "*** Finished" +echo " Don't forget to run ./configure" +echo " If you haven't done so in a while, run ./configure --help" +} + +dist() +{ +check_autotool_versions + +### +### First build all of the files necessary to do just "make" +### +acinclude_m4 +if test -r configure.in.in; then + rm -f configure.in + create_subdirs + + if test -r Makefile.am.in; then + if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then + strip_makefile + $MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1 + else + Makefile_am + fi + fi + configure_files + if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then + strip_makefile + $MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1 + else + configure_in + fi +fi +$ACLOCAL $ACLOCALFLAGS +if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then + echo "*** Creating config.h template" + $AUTOHEADER || exit 1 +fi +$AUTOMAKE --foreign +if test -z "$UNSERMAKE"; then + echo "*** Postprocessing Makefile templates" + perl -w admin/am_edit || exit 1 +fi +call_and_fix_autoconf +touch stamp-h.in +if grep "^cvs-local:" $makefile_am >/dev/null; then + strip_makefile + $MAKE -f $makefile_wo cvs-local top_srcdir=. +fi + +### +### Then make messages +### +if test -d po; then + LIST=`find ./po -name "*.po"` + for i in $LIST; do + file2=`echo $i | sed -e "s#\.po#\.gmo#"` + msgfmt -o $file2 $i || touch $file2 + done +fi +if grep "^cvs-dist-local:" $makefile_am >/dev/null; then + strip_makefile + $MAKE -f $makefile_wo cvs-dist-local top_srcdir=. +fi +} + +subdir_dist() +{ +$ACLOCAL $ACLOCALFLAGS +$AUTOHEADER +$AUTOMAKE +AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1` +case $AUTOMAKE_STRING in + *unsermake* ) : + ;; + *) + perl -w ../admin/am_edit --path=../admin +esac +call_and_fix_autoconf +touch stamp-h.in +} + +configure_in() +{ +rm -f configure.in configure.in.new +kde_use_qt_param= +test -f configure.files || { echo "need configure.files for configure.in"; exit 1; } +list=`fgrep -v "configure.in.bot" < configure.files | fgrep -v "configure.in.mid"` +: > configure.in.new +for file in $list; do + echo "dnl =======================================================" >> configure.in.new + echo "dnl FILE: $file" >> configure.in.new + echo "dnl =======================================================" >> configure.in.new + echo "" >> configure.in.new + cat $file >> configure.in.new +done +echo "KDE_CREATE_SUBDIRSLIST" >> configure.in.new +if test -f Makefile.am.in; then + subdirs=`cat subdirs` + for dir in $subdirs; do + vdir=`echo $dir | sed -e 's,[-+.@],_,g'` + echo "AM_CONDITIONAL($vdir""_SUBDIR_included, test \"x\$$vdir""_SUBDIR_included\" = xyes)" >> configure.in.new + if test -f "$dir/configure.in"; then + echo "if test \"x\$$vdir""_SUBDIR_included\" = xyes; then " >> configure.in.new + echo " AC_CONFIG_SUBDIRS($dir)" >> configure.in.new + echo "fi" >> configure.in.new + fi + done +fi + +echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new + +if test -f inst-apps; then + topleveldirs=`cat inst-apps` +else + topleveldirs= + for dir in `ls -1d * | sort`; do + if test "$dir" != "debian" && test -d $dir; then + topleveldirs="$topleveldirs $dir" + fi + done +fi + +for topleveldir in $topleveldirs; do + if test -f $topleveldir/configure.in; then + continue + fi + if test -f $topleveldir/Makefile.am; then :; else + continue + fi + + mfs=`find $topleveldir -follow -name Makefile.am -print | fgrep -v "/." | \ + sed -e 's#\./##; s#/Makefile.am$##' | sort | sed -e 's#$#/Makefile#'` + for i in $mfs; do + echo "AC_CONFIG_FILES([ $i ])" >> configure.in.new + done +done + +files=`cat configure.files` +list=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"` +for file in $list; do + echo "AC_CONFIG_FILES([ $file ])" >> configure.in.new +done + +midfiles=`cat configure.files | fgrep "configure.in.mid"` +test -n "$midfiles" && cat $midfiles >> configure.in.new + +echo "AC_OUTPUT" >> configure.in.new +modulename= +if test -f configure.in.in; then + if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then + kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"` + fi + if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then + line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in` + if test -n "$line"; then + modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"` + VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"` + fi + sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \ + configure.in.new > configure.in && mv configure.in configure.in.new + fi +fi +if test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then + VERSION="\"3.4.0\"" +fi +if test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then + modulename=`pwd`; + modulename=`basename $modulename` + esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"` + modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"` + +fi +if test -n "$kde_use_qt_param"; then + sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \ + configure.in.new > configure.in && mv configure.in configure.in.new +fi +sed -e "s#@MODULENAME@#$modulename#" configure.in.new | + sed -e "s#@VERSION@#$VERSION#" > configure.in +botfiles=`cat configure.files | egrep "configure.in.bot"` +test -n "$botfiles" && cat $botfiles >> configure.in +cat $admindir/configure.in.bot.end >> configure.in +rm -f configure.in.new +} + +configure_files() +{ +echo "*** Creating configure.files" +admindir=NO +for i in . .. ../.. ../../..; do + if test -x $i/admin; then admindir=$i/admin; break; fi +done +rm -f configure.files +touch configure.files +if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then + echo $admindir/configure.in.min >> configure.files +fi +test -f configure.in.in && echo configure.in.in >> configure.files +# we collect files in the subdirs and do some sorting tricks, so subsubdirs come after subdirs +if test -f inst-apps; then + inst=`cat inst-apps` + list="" + for i in $inst; do + list="$list `find $i/ -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \ + sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`" + done +else + list=`find . -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \ + sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"` +fi +for i in $list; do if test -f $i && test `dirname $i` != "." ; then + echo $i >> configure.files +fi; done +test -f configure.in.mid && echo configure.in.mid >> configure.files +test -f configure.in.bot && echo configure.in.bot >> configure.files +if test ! -s configure.files; then + echo "There are no files to build a configure. Please check your checkout." + exit 1 +fi +} + +create_subdirs() +{ +if grep '\$(top_srcdir)/subdirs:' $makefile_am >/dev/null; then + # as many modules contain rules to create subdirs without any + # dependencies make won't create it unless there is no file. + # so we check if that's a dummy rule or one that works + rm -f subdirs.cvs.sh.$$ + if test -f subdirs; then + mv subdirs subdirs.cvs.sh.$$ + fi + strip_makefile + $MAKE -f $makefile_wo top_srcdir=. ./subdirs || exit 1 + if test -f subdirs.cvs.sh.$$; then + if test -s subdirs; then + rm subdirs.cvs.sh.$$ + else + mv subdirs.cvs.sh.$$ subdirs + fi + fi +else + subdirs +fi +} + +subdirs() +{ +dirs= +idirs= +if test -f inst-apps; then + idirs=`cat inst-apps` +else + idirs=`ls -1 | sort` +fi + +compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1` +compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1` +for i in $idirs; do + if test -f $i/Makefile.am; then + case " $compilefirst $compilelast " in + *" $i "*) ;; + *) dirs="$dirs $i" + esac + fi +done + +: > ./_SUBDIRS + +for d in $compilefirst; do + echo $d >> ./_SUBDIRS +done + +(for d in $dirs; do + list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1` + for s in $list; do + echo $s $d + done + list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1` + for s in $list; do + echo $d $s + done + echo $d $d +done ) | tsort >> ./_SUBDIRS + +for d in $compilelast; do + echo $d >> ./_SUBDIRS +done + +if test -r subdirs && cmp -s subdirs _SUBDIRS; then + rm -f _SUBDIRS +fi +test -r _SUBDIRS && mv _SUBDIRS subdirs || true +} + +Makefile_am() +{ +if test -f Makefile.am.in; then + compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1` + compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1` + + idirs= + dirs= + if test -f inst-apps; then + idirs=`cat inst-apps` + else + idirs=`cat subdirs` + fi + for i in $idirs; do + case " $compilefirst $compilelast " in + *" $i "*) ;; + *) dirs="$dirs $i" + esac + done + + adds=`fgrep '$(top_srcdir)/acinclude.m4:' Makefile.am.in | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir)/,,g'` + if echo "$adds" | fgrep "*" >/dev/null ; then + adds=`ls -d -1 $adds 2>/dev/null` + fgrep -v '$(top_srcdir)/acinclude.m4:' Makefile.am.in > Makefile.am.in.adds + str='$(top_srcdir)/acinclude.m4:' + for add in $adds; do + str="$str \$(top_srcdir)/$add" + done + echo $str >> Makefile.am.in.adds + else + cat Makefile.am.in > Makefile.am.in.adds + fi + + cat Makefile.am.in.adds | \ + sed -e 's,^\s*\(COMPILE_BEFORE.*\),# \1,' | \ + sed -e 's,^\s*\(COMPILE_AFTER.*\),# \1,' > Makefile.am + echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am + rm Makefile.am.in.adds +fi +} + +acinclude_m4() +{ + echo "*** Creating acinclude.m4" + adds= + if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then + strip_makefile + rm -f acinclude.m4 + adds=`grep '\$(top_srcdir)/acinclude.m4:' $makefile_wo | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir),.,g'` + if echo $adds | fgrep "*" >/dev/null ; then + adds=`ls -d -1 $adds 2>/dev/null` + else + $MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4 || exit 1 + fi + else + rm -f acinclude.m4 + fi + # if it wasn't created up to now, then we do it better + if test ! -f acinclude.m4; then + cat admin/acinclude.m4.in admin/libtool.m4.in admin/pkg.m4.in $adds > acinclude.m4 + fi +} + +cvs_clean() +{ +if test -d CVS; then :; else + echo "You don't have a toplevel CVS directory." + echo "You most certainly didn't use cvs to get these sources." + echo "But this function depends on cvs's information." + exit 1 +fi +perl $admindir/cvs-clean.pl +} + +package_merge() +{ +catalogs=$POFILES +for cat in $catalogs; do + msgmerge -o $cat.new $cat $PACKAGE.pot + if test -s $cat.new; then + grep -v "\"POT-Creation" $cat.new > $cat.new.2 + grep -v "\"POT-Creation" $cat >> $cat.new.1 + if diff $cat.new.1 $cat.new.2; then + rm $cat.new + else + mv $cat.new $cat + fi + rm -f $cat.new.1 $cat.new.2 + fi +done +} + +extract_messages() +{ +podir=${podir:-$PWD/po} +files=`find . -name Makefile.am | xargs egrep -l '^messages:' ` +dirs=`for i in $files; do echo \`dirname $i\`; done` +tmpname="$PWD/messages.log" +if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi +if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi +export EXTRACTRC PREPARETIPS + +for subdir in $dirs; do + test -z "$VERBOSE" || echo "Making messages in $subdir" + (cd $subdir + if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then + $EXTRACTRC *.rc *.ui *.kcfg > rc.cpp + else + candidates=`ls -1 *.rc *.ui *.kcfg 2>/dev/null` + if test -n "$candidates"; then + echo "$subdir has *.rc, *.ui or *.kcfg files, but not correct messages line" + fi + fi + if find . -name \*.c\* -o -name \*.h\* | xargs fgrep -s -q KAboutData ; then + echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp + else echo " " > _translatorinfo.cpp + fi + perl -e '$mes=0; while () { next if (/^(if\s|else\s|endif)/); if (/^messages:/) { $mes=1; print $_; next; } if ($mes) { if (/$\\(XGETTEXT\)/ && / -o/) { s/ -o \$\(podir\)/ _translatorinfo.cpp -o \$\(podir\)/ } print $_; } else { print $_; } }' < Makefile.am | egrep -v '^include ' > _transMakefile + + kdepotpath=${includedir:-`kde-config --expandvars --install include`}/kde.pot + + $MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" srcdir=. \ + XGETTEXT="${XGETTEXT:-xgettext} --foreign-user -C -ci18n -ki18n -ktr2i18n -kI18N_NOOP -kI18N_NOOP2 -kaliasLocale -x $kdepotpath" messages + exit_code=$? + if test "$exit_code" != 0; then + echo "make exit code: $exit_code" + fi + ) 2>&1 | grep -v '^make\[1\]' > $tmpname + test -s $tmpname && { echo $subdir ; cat "$tmpname"; } + test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp + rm -f $subdir/_translatorinfo.cpp + rm -f $subdir/_transMakefile +done +rm -f $tmpname +} + +package_messages() +{ +rm -rf po.backup +mkdir po.backup + +for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do + egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i + cat po/$i > po.backup/backup_$i + touch -r po/$i po.backup/backup_$i + rm po/$i +done + +extract_messages + +for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do + test -f po/$i || echo "disappeared: $i" +done +for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do + sed -e 's,^"Content-Type: text/plain; charset=CHARSET\\n"$,"Content-Type: text/plain; charset=UTF-8\\n",' po/$i > po/$i.new && mv po/$i.new po/$i + #msgmerge -q -o po/$i po/$i po/$i + egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot + if test -f po.backup/$i && ! cmp -s temp.pot po.backup/$i; then + echo "will update $i" + else + if test -f po.backup/backup_$i; then + test -z "$VERBOSE" || echo "I'm restoring $i" + mv po.backup/backup_$i po/$i + rm po.backup/$i + else + echo "will add $i" + fi + fi +done +rm -f temp.pot +rm -rf po.backup +} + +unset LC_ALL || : +unset LANG || : +unset LC_CTYPE || : +unset LANGUAGE || : + +unset CDPATH || : +admindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'` +test "x$admindir" = "x$0" && admindir=. + +test "x$MAKE" = x && MAKE=make +makefile_am=Makefile.am +makefile_wo=Makefile.am.wo +if test -f Makefile.am.in; then + makefile_am=Makefile.am.in + makefile_wo=Makefile.am.in.wo + rm -f $makefile_wo +fi + +# Suck in the AUTOCONF detection code +. $admindir/detect-autoconf.sh + +### +### Main +### + +arg=`echo $1 | tr .- __` +case $arg in + cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \ + cvs_clean | package_merge | package_messages | Makefile_am | acinclude_m4 | extract_messages ) $arg ;; + configure ) call_and_fix_autoconf ;; + * ) echo "Usage: cvs.sh " + echo "Target can be one of:" + echo " cvs cvs-clean dist" + echo " configure.in configure.files" + echo " package-merge package-messages" + echo "" + echo "Usage: anything but $1" + exit 1 ;; +esac + +if test -f $makefile_wo; then + rm $makefile_wo +fi + +exit 0 diff --git a/admin/debianrules b/admin/debianrules new file mode 100755 index 0000000..25897f2 --- /dev/null +++ b/admin/debianrules @@ -0,0 +1,43 @@ +#!/usr/bin/perl -w + +use Shell qw(mv cp mkdir rm) ; +use File::Find; +use Cwd; + +$origPwd = `pwd`; +chomp $origPwd; + +$kde_prefix = "/usr"; +$sysconfdir = "/etc"; +$kde_includedir = "$kde_prefix/include/kde"; +$infodir = "$kde_prefix/share/info"; +$mandir = "$kde_prefix/share/man"; +$qtdir = "/usr/share/qt3"; + +$kde_cgidir = "$kde_prefix/lib/cgi-bin"; +$kde_confdir = "$sysconfdir/kde3"; +$kde_htmldir = "$kde_prefix/share/doc/kde/HTML"; + +if (defined $ENV{DEB_BUILD_OPTIONS} && + $ENV{DEB_BUILD_OPTIONS} =~ /\bnostrip\b/) { + $enable_debug="--enable-debug=full"; +} else { + $enable_debug="--disable-debug"; +} + +if (@ARGV && $ARGV[0] eq 'echodirs') { + print STDOUT "export kde_prefix=$kde_prefix\n"; + print STDOUT "export sysconfdir=$sysconfdir\n"; + print STDOUT "export kde_includedir=$kde_includedir\n"; + print STDOUT "export infodir=$infodir\n"; + print STDOUT "export mandir=$mandir\n"; + print STDOUT "export qtdir=$qtdir\n"; + + print STDOUT "export kde_cgidir=$kde_cgidir\n"; + print STDOUT "export kde_confdir=$kde_confdir\n"; + print STDOUT "export kde_htmldir=$kde_htmldir\n"; + + print STDOUT "configkde=$enable_debug --disable-rpath --prefix=\$(kde_prefix) --sysconfdir=\$(sysconfdir) --includedir=\$(kde_includedir) --infodir=\$(infodir) --mandir=\$(mandir) --with-qt-dir=\$(qtdir)\n"; + + exit +} diff --git a/admin/depcomp b/admin/depcomp new file mode 100755 index 0000000..4c20c6c --- /dev/null +++ b/admin/depcomp @@ -0,0 +1,441 @@ +#! /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'. + +depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`} +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 AIX 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. + + tmpdepfile1="$object.d" + tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'` + if test "$libtool" = yes; then + "$@" -Wc,-MD + else + "$@" -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, + # because we must use -o when running libtool. + test -z "$dashmflag" && dashmflag=-M + ( IFS=" " + case " $* " in + *" --mode=compile "*) # this is libtool, let us make it quiet + for arg + do # cycle over the arguments + case "$arg" in + "--mode=compile") + # insert --quiet before "--mode=compile" + set fnord "$@" --quiet + shift # fnord + ;; + esac + set fnord "$@" "$arg" + shift # fnord + shift # "$arg" + done + ;; + esac + "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + ) & + proc=$! + "$@" + stat=$? + wait "$proc" + if test "$stat" != 0; then exit $stat; fi + 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) + # X makedepend + ( + shift + cleared=no + for arg in "$@"; do + case $cleared in no) + set ""; shift + cleared=yes + esac + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift;; + -*) + ;; + *) + set fnord "$@" "$arg"; shift;; + esac + done + obj_suffix="`echo $object | sed 's/^.*\././'`" + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@" + ) & + proc=$! + "$@" + stat=$? + wait "$proc" + if test "$stat" != 0; then exit $stat; fi + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tail +3 "$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, regardless of -o, + # because we must use -o when running libtool. + ( IFS=" " + case " $* " in + *" --mode=compile "*) + for arg + do # cycle over the arguments + case $arg in + "--mode=compile") + # insert --quiet before "--mode=compile" + set fnord "$@" --quiet + shift # fnord + ;; + esac + set fnord "$@" "$arg" + shift # fnord + shift # "$arg" + done + ;; + esac + "$@" -E | + sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + ) & + proc=$! + "$@" + stat=$? + wait "$proc" + if test "$stat" != 0; then exit $stat; fi + 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. + ( IFS=" " + case " $* " in + *" --mode=compile "*) + for arg + do # cycle over the arguments + case $arg in + "--mode=compile") + # insert --quiet before "--mode=compile" + set fnord "$@" --quiet + shift # fnord + ;; + esac + set fnord "$@" "$arg" + shift # fnord + shift # "$arg" + done + ;; + esac + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + ) & + proc=$! + "$@" + stat=$? + wait "$proc" + if test "$stat" != 0; then exit $stat; fi + 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/admin/detect-autoconf.sh b/admin/detect-autoconf.sh new file mode 100644 index 0000000..94f91e9 --- /dev/null +++ b/admin/detect-autoconf.sh @@ -0,0 +1,59 @@ +#! /bin/sh + +# Global variables... +AUTOCONF="autoconf" +AUTOHEADER="autoheader" +AUTOM4TE="autom4te" +AUTOMAKE="automake" +ACLOCAL="aclocal" + +# Please add higher versions first. The last version number is the minimum +# needed to compile KDE. Do not forget to include the name/version # +# separator if one is present, e.g. -1.2 where - is the separator. +KDE_AUTOCONF_VERS="-2.58 -2.57 257 -2.54 -2.53a -2.53 -2.52 -2.5x" +KDE_AUTOMAKE_VERS="-1.7 17 -1.6" + +# We don't use variable here for remembering the type ... strings. Local +# variables are not that portable, but we fear namespace issues with our +# includer. +checkAutoconf() +{ + for kde_autoconf_version in $KDE_AUTOCONF_VERS; do + if test -x "`$WHICH $AUTOCONF$kde_autoconf_version 2>/dev/null`"; then + AUTOCONF="`$WHICH $AUTOCONF$kde_autoconf_version`" + AUTOHEADER="`$WHICH $AUTOHEADER$kde_autoconf_version`" + AUTOM4TE="`$WHICH $AUTOM4TE$kde_autoconf_version`" + break + fi + done +} + +checkAutomake () +{ + for kde_automake_version in $KDE_AUTOMAKE_VERS; do + if test -x "`$WHICH $AUTOMAKE$kde_automake_version 2>/dev/null`"; then + AUTOMAKE="`$WHICH $AUTOMAKE$kde_automake_version`" + ACLOCAL="`$WHICH $ACLOCAL$kde_automake_version`" + break + fi + done + + if test "$UNSERMAKE" != no && test -x "`$WHICH unsermake 2>/dev/null`"; then + AUTOMAKE="`$WHICH unsermake` -c" + fi +} + +checkWhich () +{ + WHICH="" + for i in "type -p" "which" "type" ; do + T=`$i sh 2> /dev/null` + test -x "$T" && WHICH="$i" && break + done +} + +checkWhich +checkAutoconf +checkAutomake + +export WHICH AUTOHEADER AUTOCONF AUTOM4TE AUTOMAKE ACLOCAL diff --git a/admin/install-sh b/admin/install-sh new file mode 100755 index 0000000..36f96f3 --- /dev/null +++ b/admin/install-sh @@ -0,0 +1,276 @@ +#!/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 "$0: no input file specified" >&2 + exit 1 +else + : +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d "$dst" ]; then + instcmd=: + chmodcmd="" + else + instcmd=$mkdirprog + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f "$src" ] || [ -d "$src" ] + then + : + else + echo "$0: $src does not exist" >&2 + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "$0: no destination specified" >&2 + exit 1 + else + : + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d "$dst" ] + then + dst=$dst/`basename "$src"` + else + : + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' + ' +IFS="${IFS-$defaultIFS}" + +oIFS=$IFS +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS=$oIFS + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp=$pathcomp$1 + shift + + if [ ! -d "$pathcomp" ] ; + then + $mkdirprog "$pathcomp" + else + : + fi + + pathcomp=$pathcomp/ +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd "$dst" && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename "$dst"` + else + dstfile=`basename "$dst" $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename "$dst"` + else + : + fi + +# Make a couple of temp file names in the proper directory. + + dsttmp=$dstdir/#inst.$$# + rmtmp=$dstdir/#rm.$$# + +# Trap to clean up temp files at exit. + + trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 + trap '(exit $?); exit' 1 2 13 15 + +# Move or copy the file name to the temp name + + $doit $instcmd "$src" "$dsttmp" && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && + +# Now remove or move aside any old file at destination location. We try this +# two ways since rm can't unlink itself on some systems and the destination +# file might be busy for other reasons. In this case, the final cleanup +# might fail but the new file should still install successfully. + +{ + if [ -f "$dstdir/$dstfile" ] + then + $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || + $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || + { + echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 + (exit 1); exit + } + else + : + fi +} && + +# Now rename the file to the real destination. + + $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" + +fi && + +# The final little trick to "correctly" pass the exit status to the exit trap. + +{ + (exit 0); exit +} diff --git a/admin/libtool.m4.in b/admin/libtool.m4.in new file mode 100644 index 0000000..b6804ae --- /dev/null +++ b/admin/libtool.m4.in @@ -0,0 +1,5891 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +## Copyright 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. + +# serial 47 AC_PROG_LIBTOOL + + +# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) +# ----------------------------------------------------------- +# If this macro is not defined by Autoconf, define it here. +m4_ifdef([AC_PROVIDE_IFELSE], + [], + [m4_define([AC_PROVIDE_IFELSE], + [m4_ifdef([AC_PROVIDE_$1], + [$2], [$3])])]) + + +# AC_PROG_LIBTOOL +# --------------- +AC_DEFUN([AC_PROG_LIBTOOL], +[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl +dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX +dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. + AC_PROVIDE_IFELSE([AC_PROG_CXX], + [AC_LIBTOOL_CXX], + [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX + ])]) +dnl And a similar setup for Fortran 77 support + AC_PROVIDE_IFELSE([AC_PROG_F77], + [AC_LIBTOOL_F77], + [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 +])]) + +dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. +dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run +dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. + AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [ifdef([AC_PROG_GCJ], + [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([A][M_PROG_GCJ], + [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([LT_AC_PROG_GCJ], + [define([LT_AC_PROG_GCJ], + defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) +])])# AC_PROG_LIBTOOL + + +# _AC_PROG_LIBTOOL +# ---------------- +AC_DEFUN([_AC_PROG_LIBTOOL], +[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl +AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl +AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl +AC_BEFORE([$0],[AC_LIBTOOL_GCJ])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 --silent' +AC_SUBST(LIBTOOL)dnl + +# Prevent multiple expansion +define([AC_PROG_LIBTOOL], []) +])# _AC_PROG_LIBTOOL + + +# AC_LIBTOOL_SETUP +# ---------------- +AC_DEFUN([AC_LIBTOOL_SETUP], +[AC_PREREQ(2.50)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([AC_PROG_LN_S])dnl +AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! +AC_REQUIRE([AC_OBJEXT])dnl +AC_REQUIRE([AC_EXEEXT])dnl +dnl + +AC_LIBTOOL_SYS_MAX_CMD_LEN +AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +AC_LIBTOOL_OBJDIR + +AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +_LT_AC_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +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' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_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" + +AC_CHECK_TOOL(AR, ar, false) +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_CHECK_TOOL(STRIP, strip, :) + +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 "$LTCC" && LTCC=$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 "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# 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 + +# 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_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +enable_win32_dll=yes, enable_win32_dll=no) + +AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +AC_ARG_WITH([pic], + [AC_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) +test -z "$pic_mode" && pic_mode=default + +# Use C for the default configuration in the libtool script +tagname= +AC_LIBTOOL_LANG_C_CONFIG +_LT_AC_TAGCONFIG +])# AC_LIBTOOL_SETUP + + +# _LT_AC_SYS_COMPILER +# ------------------- +AC_DEFUN([_LT_AC_SYS_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_AC_SYS_COMPILER + + +# _LT_AC_SYS_LIBPATH_AIX +# ---------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], +[AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_AC_SYS_LIBPATH_AIX + + +# _LT_AC_SHELL_INIT(ARG) +# ---------------------- +AC_DEFUN([_LT_AC_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_AC_SHELL_INIT + + +# _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], +[_LT_AC_SHELL_INIT([ +# 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. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(ECHO) +])])# _LT_AC_PROG_ECHO_BACKSLASH + + +# _LT_AC_LOCK +# ----------- +AC_DEFUN([_LT_AC_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case "`/usr/bin/file conftest.o`" in + *32-bit*) + LINUX_64_MODE="32" + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + LINUX_64_MODE="64" + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +AC_PROVIDE_IFELSE([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) + ;; + ]) +esac + +need_locks="$enable_libtool_lock" + +])# _LT_AC_LOCK + + +# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], +[AC_REQUIRE([LT_AC_PROG_SED]) +AC_CACHE_CHECK([$1], [$2], + [$2=no + ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s conftest.err; then + $2=yes + fi + fi + $rm conftest* +]) + +if test x"[$]$2" = xyes; then + ifelse([$5], , :, [$5]) +else + ifelse([$6], , :, [$6]) +fi +])# AC_LIBTOOL_COMPILER_OPTION + + +# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ------------------------------------------------------------ +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], +[AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; 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 + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + else + $2=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + ifelse([$4], , :, [$4]) +else + ifelse([$5], , :, [$5]) +fi +])# AC_LIBTOOL_LINKER_OPTION + + +# AC_LIBTOOL_SYS_MAX_CMD_LEN +# -------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], +[# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + testring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + *) + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \ + = "XX$testring") >/dev/null 2>&1 && + new_result=`expr "X$testring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + testring=$testring$testring + done + testring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +])# AC_LIBTOOL_SYS_MAX_CMD_LEN + + +# _LT_AC_CHECK_DLFCN +# -------------------- +AC_DEFUN([_LT_AC_CHECK_DLFCN], +[AC_CHECK_HEADERS(dlfcn.h)dnl +])# _LT_AC_CHECK_DLFCN + + +# _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], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#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], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-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" + 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_LIBTOOL_PROG_CC_C_O([TAGNAME]) +# --------------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler +AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + # 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 . + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s out/conftest.err; then + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . + $rm conftest* out/* + rmdir out + cd .. + rmdir conftest + $rm conftest* +]) +])# AC_LIBTOOL_PROG_CC_C_O + + +# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) +# ----------------------------------------- +# Check to see if we can do hard links to lock some files if needed +AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], +[AC_REQUIRE([_LT_AC_LOCK])dnl + +hard_links="nottested" +if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS + + +# AC_LIBTOOL_OBJDIR +# ----------------- +AC_DEFUN([AC_LIBTOOL_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +])# AC_LIBTOOL_OBJDIR + + +# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) +# ---------------------------------------------- +# Check hardcoding attributes. +AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_AC_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ + test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \ + test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then + + # We can hardcode non-existant directories. + if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_AC_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_AC_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_AC_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = 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 +])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH + + +# AC_LIBTOOL_SYS_LIB_STRIP +# ------------------------ +AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], +[striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) +fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +])# AC_LIBTOOL_SYS_LIB_STRIP + + +# AC_LIBTOOL_SYS_DYNAMIC_LINKER +# ----------------------------- +# PORTME Fill in your ld.so characteristics +AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], +[AC_MSG_CHECKING([dynamic linker characteristics]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +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}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + 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}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi4*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext='$(test .$module = .yes && echo .so || echo .dylib)' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd*-gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +freebsd*) + objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + *) # from 3.2 on + 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}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case "$host_cpu" in + ia64*) + shrext='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + libsuff= + if test "x$LINUX_64_MODE" = x64; then + # Some platforms are per default 64-bit, so there's no /lib64 + if test -d /lib64; then + libsuff=64 + fi + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}" + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +sco3.2v5*) + version_type=osf + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + 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 + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no +])# AC_LIBTOOL_SYS_DYNAMIC_LINKER + + +# _LT_AC_TAGCONFIG +# ---------------- +AC_DEFUN([_LT_AC_TAGCONFIG], +[AC_ARG_WITH([tags], + [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], + [include additional configurations @<:@automatic@:>@])], + [tagnames="$withval"]) + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + AC_MSG_WARN([output file `$ofile' does not exist]) + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) + else + AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) + fi + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in + "") ;; + *) AC_MSG_ERROR([invalid tag name: $tagname]) + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + AC_MSG_ERROR([tag name \"$tagname\" already exists]) + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && test "X$CXX" != "Xno"; then + AC_LIBTOOL_LANG_CXX_CONFIG + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + AC_LIBTOOL_LANG_F77_CONFIG + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + AC_LIBTOOL_LANG_GCJ_CONFIG + else + tagname="" + fi + ;; + + RC) + AC_LIBTOOL_LANG_RC_CONFIG + ;; + + *) + AC_MSG_ERROR([Unsupported tag name: $tagname]) + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + AC_MSG_ERROR([unable to update list of available tagged configurations.]) + fi +fi +])# _LT_AC_TAGCONFIG + + +# AC_LIBTOOL_DLOPEN +# ----------------- +# enable checks for dlopen support +AC_DEFUN([AC_LIBTOOL_DLOPEN], + [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_DLOPEN + + +# 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_LIBTOOL_WIN32_DLL + + +# AC_ENABLE_SHARED([DEFAULT]) +# --------------------------- +# implement the --enable-shared flag +# 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], + [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]AC_ENABLE_SHARED_DEFAULT) +])# AC_ENABLE_SHARED + + +# 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_DISABLE_SHARED + + +# AC_ENABLE_STATIC([DEFAULT]) +# --------------------------- +# implement the --enable-static flag +# 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], + [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]AC_ENABLE_STATIC_DEFAULT) +])# AC_ENABLE_STATIC + + +# 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_DISABLE_STATIC + + +# AC_ENABLE_FAST_INSTALL([DEFAULT]) +# --------------------------------- +# implement the --enable-fast-install flag +# 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], + [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) +])# AC_ENABLE_FAST_INSTALL + + +# 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_DISABLE_FAST_INSTALL + + +# AC_LIBTOOL_PICMODE([MODE]) +# -------------------------- +# implement the --with-pic flag +# 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_LIBTOOL_PICMODE + + +# AC_PROG_EGREP +# ------------- +# This is predefined starting with Autoconf 2.54, so this conditional +# definition can be removed once we require Autoconf 2.54 or later. +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], +[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], + [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]) + EGREP=$ac_cv_prog_egrep + AC_SUBST([EGREP]) +])]) + + +# AC_PATH_TOOL_PREFIX +# ------------------- +# find a file program which can recognise shared library +AC_DEFUN([AC_PATH_TOOL_PREFIX], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="ifelse([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&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="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +])# AC_PATH_TOOL_PREFIX + + +# AC_PATH_MAGIC +# ------------- +# find a file program which can recognise a shared library +AC_DEFUN([AC_PATH_MAGIC], +[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# AC_PATH_MAGIC + + +# AC_PROG_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([AC_PROG_LD], +[AC_ARG_WITH([gnu-ld], + [AC_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no]) +AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /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_file_magic_cmd=/usr/bin/file + case "$host_cpu" in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +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*) + case $host_cpu in + alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* ) + lt_cv_deplibs_check_method=pass_all ;; + # the debian people say, arm and glibc 2.3.1 works for them with pass_all + arm* ) + 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]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +nto-qnx*) + lt_cv_deplibs_check_method=unknown + ;; + +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 + ;; + +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 + ;; + +sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown +])# AC_DEPLIBS_CHECK_METHOD + + +# AC_PROG_NM +# ---------- +# find the pathname to a BSD-compatible name lister +AC_DEFUN([AC_PROG_NM], +[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + 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 + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + esac + fi + done + IFS="$lt_save_ifs" + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi]) +NM="$lt_cv_path_NM" +])# AC_PROG_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* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +])# AC_CHECK_LIBM + + +# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) +# ----------------------------------- +# 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 +# DIRECTORY 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_CONVENIENCE + + +# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) +# ----------------------------------- +# 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 +# DIRECTORY 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, lt_dlinit, + [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" +])# AC_LIBLTDL_INSTALLABLE + + +# AC_LIBTOOL_CXX +# -------------- +# enable support for C++ libraries +AC_DEFUN([AC_LIBTOOL_CXX], +[AC_REQUIRE([_LT_AC_LANG_CXX]) +])# AC_LIBTOOL_CXX + + +# _LT_AC_LANG_CXX +# --------------- +AC_DEFUN([_LT_AC_LANG_CXX], +[AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([AC_PROG_CXXCPP]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) +])# _LT_AC_LANG_CXX + + +# AC_LIBTOOL_F77 +# -------------- +# enable support for Fortran 77 libraries +AC_DEFUN([AC_LIBTOOL_F77], +[AC_REQUIRE([_LT_AC_LANG_F77]) +])# AC_LIBTOOL_F77 + + +# _LT_AC_LANG_F77 +# --------------- +AC_DEFUN([_LT_AC_LANG_F77], +[AC_REQUIRE([AC_PROG_F77]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) +])# _LT_AC_LANG_F77 + + +# AC_LIBTOOL_GCJ +# -------------- +# enable support for GCJ libraries +AC_DEFUN([AC_LIBTOOL_GCJ], +[AC_REQUIRE([_LT_AC_LANG_GCJ]) +])# AC_LIBTOOL_GCJ + + +# _LT_AC_LANG_GCJ +# --------------- +AC_DEFUN([_LT_AC_LANG_GCJ], +[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], + [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], + [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], + [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) +])# _LT_AC_LANG_GCJ + + +# AC_LIBTOOL_RC +# -------------- +# enable support for Windows resource files +AC_DEFUN([AC_LIBTOOL_RC], +[AC_REQUIRE([LT_AC_PROG_RC]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) +])# AC_LIBTOOL_RC + + +# AC_LIBTOOL_LANG_C_CONFIG +# ------------------------ +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) +AC_DEFUN([_LT_AC_LANG_C_CONFIG], +[lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}\n' + +_LT_AC_SYS_COMPILER + +# +# Check for any special shared library compilation flags. +# +_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)= +if test "$GCC" = no; then + case $host_os in + sco3.2v5*) + _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf' + ;; + esac +fi +if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then + AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries]) + if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ ]]" >/dev/null; then : + else + AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure]) + _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no + fi +fi + + +# +# Check to make sure the static flag actually works. +# +AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works], + _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), + $_LT_AC_TAGVAR(lt_prog_compiler_static, $1), + [], + [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF($1) + +# Report which librarie types wil actually be built +AC_MSG_CHECKING([if libtool supports shared libraries]) +AC_MSG_RESULT([$can_build_shared]) + +AC_MSG_CHECKING([whether to build shared libraries]) +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case "$host_os" in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + darwin* | rhapsody*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + case "$host_os" in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup' + ;; + esac + fi + ;; + esac + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + else + _LT_AC_TAGVAR(ld_shlibs, $1)=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]) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_C_CONFIG + + +# AC_LIBTOOL_LANG_CXX_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) +AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], +[AC_LANG_PUSH(C++) +AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([AC_PROG_CXXCPP]) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Dependencies to place before and after the object being linked: +_LT_AC_TAGVAR(predep_objects, $1)= +_LT_AC_TAGVAR(postdep_objects, $1)= +_LT_AC_TAGVAR(predeps, $1)= +_LT_AC_TAGVAR(postdeps, $1)= +_LT_AC_TAGVAR(compiler_lib_search_path, $1)= + +# Source file extension for C++ test sources. +ac_ext=cc + +# Object file extension for compiled C++ test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_LD=$LD +lt_save_GCC=$GCC +GCC=$GXX +lt_save_with_gnu_ld=$with_gnu_ld +lt_save_path_LD=$lt_cv_path_LD +if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx +else + unset lt_cv_prog_gnu_ld +fi +if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX +else + unset lt_cv_path_LD +fi +test -z "${LDCXX+set}" || LD=$LDCXX +CC=${CXX-"c++"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' +else + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + AC_PROG_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ + grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + +else + GXX=no + with_gnu_ld=no + wlarc= +fi + +# PORTME: fill in a description of your system's C++ link characteristics +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +_LT_AC_TAGVAR(ld_shlibs, $1)=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + 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 + # KDE requires run time linking. Make it the default. + aix_use_runtimelinking=yes + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='-qmkshrobj ${wl}-G' + else + shared_flag='-qmkshrobj' + fi + fi + fi + + # Let the compiler handle the export list. + _LT_AC_TAGVAR(always_export_symbols, $1)=no + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # -bexpall does not export symbols beginning with underscore (_) + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds it's shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=no + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + darwin* | rhapsody*) + if test "$GXX" = yes; then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + case "$host_os" in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup' + ;; + esac + fi + ;; + esac + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' + + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + dgux*) + case $cc_basename in + ec++) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + freebsd[12]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + freebsd-elf*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + freebsd*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + ;; + gnu*) + ;; + hpux9*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + case "$host_cpu" in + hppa*64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + *) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case "$host_cpu" in + hppa*64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + ia64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC) + case "$host_cpu" in + hppa*64*|ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case "$host_cpu" in + ia64*|hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + irix5* | irix6*) + case $cc_basename in + CC) + # SGI C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + linux*) + case $cc_basename in + KCC) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc) + # Intel C++ + with_gnu_ld=yes + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + cxx) + # Compaq C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + m88k*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + mvs*) + case $cc_basename in + cxx) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + osf3*) + case $cc_basename in + KCC) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + osf4* | osf5*) + case $cc_basename in + KCC) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' + ;; + RCC) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~ + $rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + sco*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + case $cc_basename in + CC) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + lcc) + # Lucid + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The C++ compiler is used as linker so we must use $wl + # flag to pass the commands to the underlying system + # linker. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + fi + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + fi + ;; + esac + ;; + sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + tandem*) + case $cc_basename in + NCC) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; +esac +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_AC_TAGVAR(GCC, $1)="$GXX" +_LT_AC_TAGVAR(LD, $1)="$LD" + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +AC_LIBTOOL_POSTDEP_PREDEP($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +with_gnu_ld=$lt_save_with_gnu_ld +lt_cv_path_LDCXX=$lt_cv_path_LD +lt_cv_path_LD=$lt_save_path_LD +lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld +lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +])# AC_LIBTOOL_LANG_CXX_CONFIG + +# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) +# ------------------------ +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" +ifelse([$1], [], +[#! $SHELL + +# `$echo "$cfgfile" | 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, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# 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 program 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 + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG], +[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) + +# 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=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) + +# 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 + +# A C compiler. +LTCC=$lt_LTCC + +# A language-specific compiler. +CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) + +# Is the compiler the GNU C compiler? +with_gcc=$_LT_AC_TAGVAR(GCC, $1) + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_[]_LT_AC_TAGVAR(LD, $1) + +# 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_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext='$shrext' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) + +# 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_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) + +# 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_[]_LT_AC_TAGVAR(old_archive_cmds, $1) +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_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) + +# Commands used to build and install a shared archive. +archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) +archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) +module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) + +# 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_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) + +# 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_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# 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=$_LT_AC_TAGVAR(hardcode_action, $1) + +# 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_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) + +# 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=$_LT_AC_TAGVAR(link_all_deplibs, $1) + +# 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="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" + +# Set to yes if exported symbols are required. +always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) + +# The commands to list exported symbols. +export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) + +# 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_[]_LT_AC_TAGVAR(exclude_expsyms, $1) + +# Symbols that must always be exported. +include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) + +ifelse([$1],[], +[# ### END LIBTOOL CONFIG], +[# ### END LIBTOOL TAG CONFIG: $tagname]) + +__EOF__ + +ifelse([$1],[], [ + case $host_os in + aix3*) + cat <<\EOF >> "$cfgfile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || \ + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +]) +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 +])# AC_LIBTOOL_CONFIG + + +# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl + +_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI + + +# 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 from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# 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_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (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 + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_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 $build_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. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGISTW]]' ;; +esac + +# 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 grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' 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_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#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/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -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 +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi +]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE + + +# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) +# --------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], +[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) + ifelse([$1],[CXX],[ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | os2* | pw32*) + # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68) + # Green Hills C++ Compiler + # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux*) + case $cc_basename in + KCC) + # KAI C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + icpc) + # Intel C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + cxx) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC) + # Rational C++ 2.4.1 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx) + # Digital/Compaq C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + sco*) + case $cc_basename in + CC) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + *) + ;; + esac + ;; + solaris*) + case $cc_basename in + CC) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC) + # Sun C++ 4.x + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc) + # Lucid + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC) + # NonStop-UX NCC 3.20 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + unixware*) + ;; + vxworks*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + newsos6) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + linux*) + case $CC in + icc* | ecc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + ccc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + sco3.2v5*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn' + ;; + + solaris*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sunos4*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + uts4*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then + AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], + _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), + [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +case "$host_os" in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" + ;; +esac +]) + + +# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) +# ------------------------------------ +# See if the linker supports building shared libraries. +AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], +[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +ifelse([$1],[CXX],[ + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + ;; + *) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +],[ + runpath_var= + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)= + _LT_AC_TAGVAR(archive_expsym_cmds, $1)= + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown + _LT_AC_TAGVAR(hardcode_automatic, $1)=no + _LT_AC_TAGVAR(module_cmds, $1)= + _LT_AC_TAGVAR(module_expsym_cmds, $1)= + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$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 + _LT_AC_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_AC_TAGVAR(exclude_expsyms, $1)="_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 + + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(ld_shlibs, $1)=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 + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=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't use + # them. + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=no + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris* | sysv5*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + _LT_AC_TAGVAR(ld_shlibs, $1)=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 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sunos4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$link_static_flag"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_AC_TAGVAR(hardcode_direct, $1)=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 + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + + # KDE requires run time linking. Make it the default. + aix_use_runtimelinking=yes + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='-qmkshrobj ${wl}-G' + else + shared_flag='-qmkshrobj' + fi + fi + fi + + # Let the compiler handle the export list. + _LT_AC_TAGVAR(always_export_symbols, $1)=no + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # -bexpall does not export symbols beginning with underscore (_) + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds it's shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + # see comment about different semantics on the GNU ld section + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + bsdi4*) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + 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. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=no + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $compiler_flags $libobjs `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + if test "$GXX" = yes ; then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + case "$host_os" in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup' + ;; + esac + fi + ;; + esac + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + dgux*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $compiler_flags $libobjs $deplibs' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10* | hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*|ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs' + ;; + esac + else + case "$host_cpu" in + hppa*64*|ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + *) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $compiler_flags $libobjs $deplibs$output_objdir/$libname.def' + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$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 + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${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' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$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' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $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 + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + sco3.2v5*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ;; + + solaris*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $compiler_flags $libobjs $deplibs' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4.2uw2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + hardcode_runpath_var=yes + runpath_var=LD_RUN_PATH + ;; + + sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text' + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + fi + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv5*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -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 + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + ;; + + uts4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +# +# Do we need to explicitly link libc? +# +case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_AC_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) + then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac +])# AC_LIBTOOL_PROG_LD_SHLIBS + + +# _LT_AC_FILE_LTDLL_C +# ------------------- +# Be careful that the start marker always follows a newline. +AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ +# /* 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 */ +])# _LT_AC_FILE_LTDLL_C + + +# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) +# --------------------------------- +AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) + + +# 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]) + +AC_DEFUN([LT_AC_PROG_GCJ], +[AC_CHECK_TOOL(GCJ, gcj, no) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS) +]) + +AC_DEFUN([LT_AC_PROG_RC], +[AC_CHECK_TOOL(RC, windres, no) +]) + +############################################################ +# 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_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && break + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_MSG_RESULT([$SED]) +]) diff --git a/admin/ltmain.sh b/admin/ltmain.sh new file mode 100644 index 0000000..845846a --- /dev/null +++ b/admin/ltmain.sh @@ -0,0 +1,6401 @@ +# 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, 2003 +# 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/" + +##################################### +# Shell function definitions: +# This seems to be the best place for them + +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +win32_libid () { + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ + grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then + win32_nmres=`eval $NM -f posix -A $1 | \ + sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'` + if test "X$win32_nmres" = "Ximport" ; then + win32_libid_type="x86 archive import" + else + win32_libid_type="x86 archive static" + fi + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $echo $win32_libid_type +} + +# End of Shell function definitions +##################################### + +# 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" + ;; + tag) + tagname="$arg" + + # Check whether tagname contains only valid characters + case $tagname in + *[!-_A-Za-z0-9,/]*) + $echo "$progname: invalid tag name: $tagname" 1>&2 + exit 1 + ;; + esac + + case $tagname in + CC) + # Don't test for the "default" C tag, as we know, it's there, but + # not specially marked. + ;; + *) + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then + taglist="$taglist $tagname" + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`" + else + $echo "$progname: ignoring unknown tag $tagname" 1>&2 + fi + ;; + esac + ;; + *) + 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" + $echo + $echo "Copyright (C) 2003 Free Software Foundation, Inc." + $echo "This is free software; see the source for copying conditions. There is NO" + $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + exit 0 + ;; + + --config) + ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 + # Now print the configurations for the tags. + for tagname in $taglist; do + ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0" + done + exit 0 + ;; + + --debug) + $echo "$progname: enabling shell trace mode" + set -x + ;; + + --dry-run | -n) + run=: + ;; + + --features) + $echo "host: $host" + if test "$build_libtool_libs" = yes; then + $echo "enable shared libraries" + else + $echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + $echo "enable static libraries" + else + $echo "disable static libraries" + fi + exit 0 + ;; + + --finish) mode="finish" ;; + + --mode) prevopt="--mode" prev=mode ;; + --mode=*) mode="$optarg" ;; + + --preserve-dup-deps) duplicate_deps="yes" ;; + + --quiet | --silent) + show=: + ;; + + --tag) prevopt="--tag" prev=tag ;; + --tag=*) + set tag "$optarg" ${1+"$@"} + shift + prev=tag + ;; + + -dlopen) + prevopt="-dlopen" + prev=execute_dlfiles + ;; + + -*) + $echo "$modename: unrecognized option \`$arg'" 1>&2 + $echo "$help" 1>&2 + exit 1 + ;; + + *) + nonopt="$arg" + break + ;; + esac +done + +if test -n "$prevopt"; then + $echo "$modename: option \`$prevopt' requires an argument" 1>&2 + $echo "$help" 1>&2 + exit 1 +fi + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +if test -z "$show_help"; then + + # Infer the operation mode. + if test -z "$mode"; then + $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 + $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2 + case $nonopt in + *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) + mode=link + for arg + do + case $arg in + -c) + mode=compile + break + ;; + esac + done + ;; + *db | *dbx | *strace | *truss) + mode=execute + ;; + *install*|cp|mv) + mode=install + ;; + *rm) + mode=uninstall + ;; + *) + # If we have no mode, but dlfiles were specified, then do execute mode. + test -n "$execute_dlfiles" && mode=execute + + # Just use the default operation mode. + if test -z "$mode"; then + if test -n "$nonopt"; then + $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 + else + $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 + fi + fi + ;; + esac + fi + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$execute_dlfiles" && test "$mode" != execute; then + $echo "$modename: unrecognized option \`-dlopen'" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$modename --help --mode=$mode' for more information." + + # These modes are in order of execution frequency so that they run quickly. + case $mode in + # libtool compile mode + compile) + modename="$modename: compile" + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_output= + arg_mode=normal + libobj= + + for arg + do + case "$arg_mode" in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) + libobj="$arg" + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + if test -n "$libobj" ; then + $echo "$modename: you cannot specify \`-o' more than once" 1>&2 + exit 1 + fi + arg_mode=target + continue + ;; + + -static) + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + lastarg="$lastarg $arg" + done + IFS="$save_ifs" + lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` + + # Add the arguments to base_compile. + base_compile="$base_compile $lastarg" + continue + ;; + + * ) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` + + case $lastarg in + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + lastarg="\"$lastarg\"" + ;; + esac + + base_compile="$base_compile $lastarg" + done # for arg + + case $arg_mode in + arg) + $echo "$modename: you must specify an argument for -Xcompile" + exit 1 + ;; + target) + $echo "$modename: you must specify a target with \`-o'" 1>&2 + exit 1 + ;; + *) + # Get the name of the library object. + [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + xform='[cCFSifmso]' + case $libobj in + *.ada) xform=ada ;; + *.adb) xform=adb ;; + *.ads) xform=ads ;; + *.asm) xform=asm ;; + *.c++) xform=c++ ;; + *.cc) xform=cc ;; + *.ii) xform=ii ;; + *.class) xform=class ;; + *.cpp) xform=cpp ;; + *.cxx) xform=cxx ;; + *.f90) xform=f90 ;; + *.for) xform=for ;; + *.java) xform=java ;; + 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 + + # Infer tagged configuration to use if any are available and + # if one wasn't chosen via the "--tag" command line option. + # Only attempt this if the compiler in the base compile + # command doesn't match the default compiler. + if test -n "$available_tags" && test -z "$tagname"; then + case $base_compile in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" + case "$base_compile " in + "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 + exit 1 +# else +# $echo "$modename: using $tagname tagged configuration" + fi + ;; + esac + fi + + objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$obj"; then + xdir= + else + xdir=$xdir/ + fi + lobj=${xdir}$objdir/$objname + + 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 $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + 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 + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$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 + + $run $rm "$libobj" "${libobj}T" + + # Create a libtool object file (analogous to a ".la" file), + # but don't create it if we're doing a dry run. + test -z "$run" && cat > ${libobj}T </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 -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + $show "$mv $output_obj $lobj" + if $run $mv $output_obj $lobj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Append the name of the PIC object to the libtool object file. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T </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 -n "$output_obj" && 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 + + # Append the name of the non-PIC object the libtool object file. + # Only append if the libtool object file exists. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&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" + base_compile="$base_compile $arg" + shift + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test + ;; + *) qarg=$arg ;; + esac + libtool_args="$libtool_args $qarg" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + compile_command="$compile_command @OUTPUT@" + finalize_command="$finalize_command @OUTPUT@" + ;; + esac + + case $prev in + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + compile_command="$compile_command @SYMFILE@" + finalize_command="$finalize_command @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + dlfiles="$dlfiles $arg" + else + dlprefiles="$dlprefiles $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + if test ! -f "$arg"; then + $echo "$modename: symbol file \`$arg' does not exist" + exit 1 + fi + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat $save_arg` + do +# moreargs="$moreargs $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit 1 + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit 1 + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + done + else + $echo "$modename: link input file \`$save_arg' does not exist" + exit 1 + fi + arg=$save_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 + ;; + xcclinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) deplibs="$deplibs $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" + finalize_command="$finalize_command $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 + continue + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + $echo "$modename: more than one -exported-symbols argument is not allowed" + exit 1 + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-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 + ;; + *-*-freebsd*-gnu*) + # prevent being parsed by the freebsd regexp below + ;; + *-*-mingw* | *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + deplibs="$deplibs System.ltframework" + continue + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-freebsd*-gnu*) + # prevent being parsed by the freebsd regexp below + ;; + *-*-openbsd*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + deplibs="$deplibs $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + # gcc -m* arguments should be passed to the linker via $compiler_flags + # in order to pass architecture information to the linker + # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo + # but this is not reliable with gcc because gcc may use -mfoo to + # select a different linker, different libraries, etc, while + # -Wl,-mfoo simply passes -mfoo to the linker. + -m*) + # 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 + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + if test "$with_gcc" = "yes" ; then + compiler_flags="$compiler_flags $arg" + fi + continue + ;; + + -shrext) + prev=shrext + 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 + ;; + + -objectlist) + prev=objectlist + 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 + ;; + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Wl,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $wl$flag" + linker_flags="$linker_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + -framework) + prev=framework + 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 + add_flags="$add_flags $arg" + ;; + + *.$objext) + # A standard object. + objs="$objs $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit 1 + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit 1 + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + 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 + add_flags="$add_flags $arg" + ;; + 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 + + # Infer tagged configuration to use if any are available and + # if one wasn't chosen via the "--tag" command line option. + # Only attempt this if the compiler in the base link + # command doesn't match the default compiler. + if test -n "$available_tags" && test -z "$tagname"; then + case $base_compile in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" + case $base_compile in + "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) + # The compiler in $compile_command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 + exit 1 +# else +# $echo "$modename: using $tagname tagged configuration" + fi + ;; + esac + 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 + + oldlibs= + # 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 + + case $host in + *cygwin* | *mingw* | *pw32*) + # don't eliminate duplcations in $postdeps and $predeps + duplicate_compiler_generated_deps=yes + ;; + *) + duplicate_compiler_generated_deps=$duplicate_deps + ;; + esac + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if test "X$duplicate_deps" = "Xyes" ; then + case "$libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + libs="$libs $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + esac + pre_post_deps="$pre_post_deps $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + case $linkmode in + lib) + passes="conv 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,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + for deplib in $libs; do + lib= + found=no + case $deplib in + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 + continue + fi + if test "$pass" = conv && test "$allow_undefined" = yes; 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 + for search_ext in .la $shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + 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 + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if (${SED} -e '2q' $lib | + grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + library_names= + old_library= + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + lib=$ladir/$old_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 + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + *.ltframework) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test "$linkmode" = lib ; then + newdependency_libs="$deplib $newdependency_libs" + fi + fi + continue + ;; + -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" 1>&2 + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) lib="$deplib" ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + if test "$deplibs_check_method" != pass_all; then + $echo + $echo "*** Warning: Trying to link with static lib archive $deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because the file extensions .$libext of this argument makes me believe" + $echo "*** that it is just a static archive that I should not used here." + else + $echo + $echo "*** Warning: Linking the shared library $output against the" + $echo "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + 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 + 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 | grep "^# 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 variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + + # Read the .la file + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + + case $host in + *-*-darwin*) + # Convert "-framework foo" to "foo.ltframework" in dependency_libs + test -n "$dependency_libs" && dependency_libs=`$echo "X$dependency_libs" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` + ;; + esac + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + 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" + tmp_libs= + for deplib in $dependency_libs; do + #echo "Adding $deplib to \$deplibs" + deplibs="$deplib $deplibs" + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + 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" + 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. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + dlprefiles="$dlprefiles $lib $dependency_libs" + 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" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + newlib_search_path="$newlib_search_path $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { test "$prefer_static_libs" = no || test -z "$old_library"; }; 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 + + # 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 + 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 + fi + + 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 + if test "$installed" = no; then + notinst_deplibs="$notinst_deplibs $lib" + need_relink=yes + fi + # This is a shared library + + # Warn about portability, can't link against -module's on some systems (darwin) + if test "$shouldnotlink" = yes && test "$pass" = link ; then + $echo + if test "$linkmode" = prog; then + $echo "*** Warning: Linking the executable $output against the loadable module" + else + $echo "*** Warning: Linking the shared library $output against the loadable module" + fi + $echo "*** $linklib is not portable!" + fi + if test "$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 + 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* | mingw*) + major=`expr $current - $age` + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + soname=`$echo $soroot | ${SED} -e 's/^.*\///'` + newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + $show "extracting exported symbol list from \`$soname'" + save_ifs="$IFS"; IFS='~' + eval cmds=\"$extract_expsyms_cmds\" + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + $show "generating import library for \`$soname'" + save_ifs="$IFS"; IFS='~' + eval cmds=\"$old_archive_from_expsyms_cmds\" + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5* ) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a module then we can not link against it, someone + # is ignoring the new warnings I added + if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; then + $echo "** Warning, lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + $echo + $echo "** And there doesn't seem to be a static archive available" + $echo "** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$dir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case "$libdir" in + [\\/]*) + add_dir="-L$inst_prefix_dir$libdir $add_dir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + $echo "$modename: configuration error: unsupported hardcode properties" + exit 1 + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && \ + test "$hardcode_minus_L" != yes && \ + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case "$libdir" in + [\\/]*) + add_dir="-L$inst_prefix_dir$libdir $add_dir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + $echo + $echo "*** Warning: This system can not link to static lib archive $lib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + $echo "*** But as you try to build a module library, libtool will still create " + $echo "*** a static module, that should work as long as the dlopening application" + $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + $echo + $echo "*** However, this would only work if libtool was able to extract symbol" + $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + $echo "*** not find such a program. So, this module is probably useless." + $echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + convenience="$convenience $dir/$old_library" + old_convenience="$old_convenience $dir/$old_library" + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + #if test -n "$dependency_libs" && + # { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || + # test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) xrpath="$xrpath $temp_xrpath";; + esac;; + *) temp_deplibs="$temp_deplibs $libdir";; + esac + done + dependency_libs="$temp_deplibs" + #fi + + newlib_search_path="$newlib_search_path $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + case $deplib in + -L*) path="$deplib" ;; + *.la) + dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$deplib" && dir="." + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 + absdir="$dir" + fi + ;; + esac + if grep "^installed=no" $deplib > /dev/null; then + path="$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 + # Sure, some shells/systems don't implement the -ef. + # Those will have to live with the warning. + test "$absdir" -ef "$libdir" > /dev/null 2>&1 || + $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 + fi + path="$absdir" + fi + depdepl= + case $host in + *-*-darwin*) + # we do not want to link against static libs, but need to link against shared + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$path/$depdepl" ; then + depdepl="$path/$depdepl" + fi + # do not add paths which are already there + case " $newlib_search_path " in + *" $path "*) ;; + *) newlib_search_path="$newlib_search_path $path";; + esac + path="" + fi + ;; + *) + path="-L$path" + ;; + esac + + ;; + -l*) + case $host in + *-*-darwin*) + # Again, we only want to link against shared libraries + eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` + for tmp in $newlib_search_path ; do + if test -f "$tmp/lib$tmp_libs.dylib" ; then + eval depdepl="$tmp/lib$tmp_libs.dylib" + break + fi + done + path="" + ;; + *) continue ;; + esac + ;; + + *.ltframework) + case $host in + *-*-darwin*) + depdepl="$deplib" + ;; + esac + ;; + + *) continue ;; + esac + case " $deplibs " in + *" $depdepl "*) ;; + *) deplibs="$deplibs $depdepl" ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$deplibs $path" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + dependency_libs="$newdependency_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 + 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 + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + tmp_libs="$tmp_libs $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 + fi + + 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/-version-number' 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 shared_ext=\"$shrext\" + 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 shared_ext=\"$shrext\" + 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. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 + fi + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + IFS="$save_ifs" + + if test -n "$8"; then + $echo "$modename: too many parameters to \`-version-info'" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$2" + number_minor="$3" + number_revision="$4" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + darwin|linux|osf|windows) + current=`expr $number_major + $number_minor` + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + current=`expr $number_major + $number_minor - 1` + age="$number_minor" + revision="$number_minor" + ;; + esac + ;; + no) + current="$2" + revision="$3" + age="$4" + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + *) + $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + ;; + esac + + case $revision in + 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + *) + $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + ;; + esac + + case $age in + 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + *) + $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + ;; + esac + + if test "$age" -gt "$current"; then + $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + major=.`expr $current - $age` + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + minor_current=`expr $current + 1` + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current"; + ;; + + irix | nonstopux) + major=`expr $current - $age + 1` + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + iface=`expr $revision - $loop` + loop=`expr $loop - 1` + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) + major=.`expr $current - $age` + versuffix="$major.$age.$revision" + ;; + + osf) + major=.`expr $current - $age` + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 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= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + fi + + if test "$mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$echo "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + removelist="$removelist $p" + ;; + *) ;; + esac + done + if test -n "$removelist"; then + $show "${rm}r $removelist" + $run ${rm}r $removelist + fi + 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 true || 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 System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-freebsd*-gnu*) + # Prevent $arg from being parsed by the freebsd regexp below. + if test "$build_libtool_need_lc" = "yes"; then + deplibs="$deplibs -lc" + fi + ;; + *-*-openbsd* | *-*-freebsd*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *) + # 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 behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $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 + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + $echo + $echo "*** Warning: linker path does not have real file for library $a_deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $echo "*** with $libname but no candidates were found. (...for file magic test)" + else + $echo "*** with $libname and none of the candidates passed a file format test" + $echo "*** using a file magic. Last file checked: $potlib" + fi + fi + 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 + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval \\$echo \"$libname_spec\"` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval $echo \"$potent_lib\" 2>/dev/null \ + | ${SED} 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + $echo + $echo "*** Warning: linker path does not have real file for library $a_deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $echo "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $echo "*** with $libname and none of the candidates passed a file format test" + $echo "*** using a regex pattern. Last file checked: $potlib" + fi + fi + else + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + fi + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ + -e 's/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` + done + fi + if $echo "X $tmp_deplibs" | $Xsed -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 / System.ltframework /'` + ;; + 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 + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + dependency_libs=`$echo "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + # 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 && test "$fast_install" = no && 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" + if test -n "$hardcode_libdir_flag_spec_ld"; then + eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" + else + eval dep_rpath=\"$hardcode_libdir_flag_spec\" + fi + 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 shared_ext=\"$shrext\" + 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 + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + for link + do + linknames="$linknames $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + $show "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $run $rm $export_symbols + eval cmds=\"$export_symbols_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + if len=`expr "X$cmd" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + $show "$cmd" + $run eval "$cmd" || exit $? + skipped_export=false + else + # The command line is too long to execute in one step. + $show "using reloadable object file for export list..." + skipped_export=: + fi + 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 + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + tmp_deplibs="$tmp_deplibs $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + 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 + # We will extract separately just the conflicting names and we will no + # longer touch any unique names. It is faster to leave these extract + # automatically by $AR in one run. + $show "(cd $xdir && $AR x $xabs)" + $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? + if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 + $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 + $AR t "$xabs" | sort | uniq -cd | while read -r count name + do + i=1 + while test "$i" -le "$count" + do + # Put our $i before any first dot (extension) + # Never overwrite any file + name_to="$name" + while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" + do + name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` + done + $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" + $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? + i=`expr $i + 1` + done + done + fi + + libobjs="$libobjs "`find $xdir -name \*.$objext -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 + + # Add all flags from the command line. We here create a library, + # but those flags were only added to compile_command and + # finalize_command, which are only used when creating executables. + # So do it by hand here. + compiler_flags="$compiler_flags $add_flags" + # Only add it to commands which use CC, instead of LD, i.e. + # only to $compiler_flags + #linker_flags="$linker_flags $add_flags" + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval cmds=\"$module_expsym_cmds\" + else + eval cmds=\"$module_cmds\" + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval cmds=\"$archive_expsym_cmds\" + else + eval cmds=\"$archive_cmds\" + fi + fi + + if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise. + $echo "creating reloadable object files..." + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + delfiles= + last_robj= + k=1 + output=$output_objdir/$save_output-${k}.$objext + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + eval test_cmds=\"$reload_cmds $objlist $last_robj\" + if test "X$objlist" = X || + { len=`expr "X$test_cmds" : ".*"` && + test "$len" -le "$max_cmd_len"; }; then + objlist="$objlist $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + else + # All subsequent reloadable object files will link in + # the last one created. + eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" + fi + last_robj=$output_objdir/$save_output-${k}.$objext + k=`expr $k + 1` + output=$output_objdir/$save_output-${k}.$objext + objlist=$obj + len=1 + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" + + if ${skipped_export-false}; then + $show "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $run $rm $export_symbols + libobjs=$output + # Append the command to create the export file. + eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" + fi + + # Set up a command to remove the reloadale object files + # after they are used. + i=0 + while test "$i" -lt "$k" + do + i=`expr $i + 1` + delfiles="$delfiles $output_objdir/$save_output-${i}.$objext" + done + + $echo "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # 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 + + # Append the command to remove the reloadable object files + # to the just-reset $cmds. + eval cmds=\"\$cmds~$rm $delfiles\" + fi + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? + exit 0 + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" + $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 + fi + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 + fi + + if test -n "$rpath"; then + $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 + fi + + if test -n "$xrpath"; then + $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 + fi + + case $output in + *.lo) + if test -n "$objs$old_deplibs"; then + $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 + exit 1 + fi + libobj="$output" + obj=`$echo "X$output" | $Xsed -e "$lo2o"` + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $run $rm $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" + else + gentop="$output_objdir/${obj}x" + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + $show "$mkdir $gentop" + $run $mkdir "$gentop" + status=$? + if test "$status" -ne 0 && test ! -d "$gentop"; then + exit $status + fi + generated="$generated $gentop" + + for xlib in $convenience; do + # Extract the objects. + case $xlib in + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; + *) xabs=`pwd`"/$xlib" ;; + esac + xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` + xdir="$gentop/$xlib" + + $show "${rm}r $xdir" + $run ${rm}r "$xdir" + $show "$mkdir $xdir" + $run $mkdir "$xdir" + status=$? + if test "$status" -ne 0 && test ! -d "$xdir"; then + exit $status + fi + # We will extract separately just the conflicting names and we will no + # longer touch any unique names. It is faster to leave these extract + # automatically by $AR in one run. + $show "(cd $xdir && $AR x $xabs)" + $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? + if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 + $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 + $AR t "$xabs" | sort | uniq -cd | while read -r count name + do + i=1 + while test "$i" -le "$count" + do + # Put our $i before any first dot (extension) + # Never overwrite any file + name_to="$name" + while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" + do + name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` + done + $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" + $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? + i=`expr $i + 1` + done + done + fi + + reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + fi + fi + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + eval cmds=\"$reload_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + exit 0 + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $run eval "echo timestamp > $libobj" || exit $? + exit 0 + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + eval cmds=\"$reload_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + 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 / System.ltframework /'` + finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + if test "$tagname" = CXX ; then + compile_command="$compile_command ${wl}-bind_at_load" + finalize_command="$finalize_command ${wl}-bind_at_load" + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + compile_command="$compile_command $compile_deplibs" + finalize_command="$finalize_command $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + case :$dllsearchpath: in + *":$libdir:"*) ;; + *) dllsearchpath="$dllsearchpath:$libdir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + fi + + dlsyms= + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + dlsyms="${outputname}S.c" + else + $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 + fi + fi + + if test -n "$dlsyms"; then + case $dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${outputname}.nm" + + $show "$rm $nlist ${nlist}S ${nlist}T" + $run $rm "$nlist" "${nlist}S" "${nlist}T" + + # Parse the name list into a source file. + $show "creating $output_objdir/$dlsyms" + + test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ +/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ +/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +/* Prevent the only kind of declaration conflicts we can make. */ +#define lt_preloaded_symbols some_other_symbol + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + $show "generating symbol list for \`$output'" + + test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + for arg in $progfiles; do + $show "extracting global C symbols from \`$arg'" + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi + + if test -n "$export_symbols_regex"; then + $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$output.exp" + $run $rm $export_symbols + $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + else + $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' + $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' + $run eval 'mv "$nlist"T "$nlist"' + fi + fi + + for arg in $dlprefiles; do + $show "extracting global C symbols from \`$arg'" + name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` + $run eval '$echo ": $name " >> "$nlist"' + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done + + if test -z "$run"; then + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $mv "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if grep -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + grep -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' + else + $echo '/* NONE */' >> "$output_objdir/$dlsyms" + fi + + $echo >> "$output_objdir/$dlsyms" "\ + +#undef lt_preloaded_symbols + +#if defined (__STDC__) && __STDC__ +# define lt_ptr void * +#else +# define lt_ptr char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr address; +} +lt_preloaded_symbols[] = +{\ +" + + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" + + $echo >> "$output_objdir/$dlsyms" "\ + {0, (lt_ptr) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + fi + + pic_flag_for_symtable= + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; + esac;; + *-*-hpux*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag";; + esac + esac + + # Now compile the dynamic symbol file. + $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" + $run eval '(cd $output_objdir && $LTCC -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 + + # AIX runtime linking requires linking programs with -Wl,-brtl and libs with -Wl,-G + # Also add -bnolibpath to the beginning of the link line, to clear the hardcoded runpath. + # Otherwise, things like the -L path to libgcc.a are accidentally hardcoded by ld. + # This does not apply on AIX for ia64, which uses a SysV linker. + case "$host" in + ia64-*-aix5*) ;; + *-*-aix4* | *-*-aix5*) + compile_command=`$echo "X$compile_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` + finalize_command=`$echo "X$finalize_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` ;; + esac + + 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 + outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + cwrappersource=`$echo ${objdir}/lt-${output}.c` + cwrapper=`$echo ${output}.exe` + $rm $cwrappersource $cwrapper + trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15 + + cat > $cwrappersource <> $cwrappersource<<"EOF" +#include +#include +#include +#include +#include +#include + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef DIR_SEPARATOR +#define DIR_SEPARATOR '/' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +#define HAVE_DOS_BASED_FILE_SYSTEM +#ifndef DIR_SEPARATOR_2 +#define DIR_SEPARATOR_2 '\\' +#endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +const char *program_name = NULL; + +void * xmalloc (size_t num); +char * xstrdup (const char *string); +char * basename (const char *name); +char * fnqualify(const char *path); +char * strendzap(char *str, const char *pat); +void lt_fatal (const char *message, ...); + +int +main (int argc, char *argv[]) +{ + char **newargz; + int i; + + program_name = (char *) xstrdup ((char *) basename (argv[0])); + newargz = XMALLOC(char *, argc+2); +EOF + + cat >> $cwrappersource <> $cwrappersource <<"EOF" + newargz[1] = fnqualify(argv[0]); + /* we know the script has the same name, without the .exe */ + /* so make sure newargz[1] doesn't end in .exe */ + strendzap(newargz[1],".exe"); + for (i = 1; i < argc; i++) + newargz[i+1] = xstrdup(argv[i]); + newargz[argc+1] = NULL; +EOF + + cat >> $cwrappersource <> $cwrappersource <<"EOF" +} + +void * +xmalloc (size_t num) +{ + void * p = (void *) malloc (num); + if (!p) + lt_fatal ("Memory exhausted"); + + return p; +} + +char * +xstrdup (const char *string) +{ + return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL +; +} + +char * +basename (const char *name) +{ + const char *base; + +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + /* Skip over the disk name in MSDOS pathnames. */ + if (isalpha (name[0]) && name[1] == ':') + name += 2; +#endif + + for (base = name; *name; name++) + if (IS_DIR_SEPARATOR (*name)) + base = name + 1; + return (char *) base; +} + +char * +fnqualify(const char *path) +{ + size_t size; + char *p; + char tmp[LT_PATHMAX + 1]; + + assert(path != NULL); + + /* Is it qualified already? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha (path[0]) && path[1] == ':') + return xstrdup (path); +#endif + if (IS_DIR_SEPARATOR (path[0])) + return xstrdup (path); + + /* prepend the current directory */ + /* doesn't handle '~' */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */ + p = XMALLOC(char, size); + sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path); + return p; +} + +char * +strendzap(char *str, const char *pat) +{ + size_t len, patlen; + + assert(str != NULL); + assert(pat != NULL); + + len = strlen(str); + patlen = strlen(pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp(str, pat) == 0) + *str = '\0'; + } + return str; +} + +static void +lt_error_core (int exit_status, const char * mode, + const char * message, va_list ap) +{ + fprintf (stderr, "%s: %s: ", program_name, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, "FATAL", message, ap); + va_end (ap); +} +EOF + # we should really use a build-platform specific compiler + # here, but OTOH, the wrappers (shell script and this C one) + # are only useful if you want to execute the "real" binary. + # Since the "real" binary is built for $host, then this + # wrapper might as well be built for $host, too. + $run $LTCC -s -o $cwrapper $cwrappersource + ;; + esac + $rm $output + trap "$rm $output; exit 1" 1 2 15 + + $echo > $output "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='${SED} -e 1s/^X//' +sed_quote_subst='$sed_quote_subst' + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variable: + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$echo are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + echo=\"$qecho\" + file=\"\$0\" + # Make sure echo works. + if test \"X\$1\" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift + elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then + # Yippee, \$echo works! + : + else + # Restart under the correct shell, and then maybe \$echo will work. + exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} + fi + fi\ +" + $echo >> $output "\ + + # Find the directory that this script lives in. + thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + done + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + $echo >> $output "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || \\ + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $mkdir \"\$progdir\" + else + $rm \"\$progdir/\$file\" + fi" + + $echo >> $output "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $echo \"\$relink_command_output\" >&2 + $rm \"\$progdir/\$file\" + exit 1 + fi + fi + + $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $rm \"\$progdir/\$program\"; + $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $rm \"\$progdir/\$file\" + fi" + else + $echo >> $output "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $echo >> $output "\ + + if test -f \"\$progdir/\$program\"; then" + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $echo >> $output "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + + export $shlibpath_var +" + fi + + # fixup the dll searchpath if we need to. + if test -n "$dllsearchpath"; then + $echo >> $output "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + $echo >> $output "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2*) + $echo >> $output "\ + exec \$progdir\\\\\$program \${1+\"\$@\"} +" + ;; + + *) + # Need to set LD_LIBRARY_PATH, to the value already + # computed within libtool. + $echo >> $output "\ + LD_LIBRARY_PATH=\"$rpath\" exec \$progdir/\$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="$old_deplibs $non_pic_objects" + 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 + # We will extract separately just the conflicting names and we will no + # longer touch any unique names. It is faster to leave these extract + # automatically by $AR in one run. + $show "(cd $xdir && $AR x $xabs)" + $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? + if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 + $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 + $AR t "$xabs" | sort | uniq -cd | while read -r count name + do + i=1 + while test "$i" -le "$count" + do + # Put our $i before any first dot (extension) + # Never overwrite any file + name_to="$name" + while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" + do + name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` + done + $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" + $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? + i=`expr $i + 1` + done + done + fi + + oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` + done + fi + + compiler_flags="$compiler_flags $add_flags" + + # 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 + eval cmds=\"$old_archive_cmds\" + + if len=`expr "X$cmds" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # the command line is too long to link in one step, link in parts + $echo "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + # GNU ar 2.10+ was changed to match POSIX; thus no paths are + # encoded into archives. This makes 'ar r' malfunction in + # this piecewise linking case whenever conflicting object + # names appear in distinct ar calls; check, warn and compensate. + if (for obj in $save_oldobjs + do + $echo "X$obj" | $Xsed -e 's%^.*/%%' + done | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2 + $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2 + AR_FLAGS=cq + fi + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + for obj in $save_oldobjs + do + oldobjs="$objlist $obj" + objlist="$objlist $obj" + eval test_cmds=\"$old_archive_cmds\" + if len=`expr "X$test_cmds" : ".*"` && + test "$len" -le "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~$old_archive_cmds\" + fi + fi + fi + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + done + + if test -n "$generated"; then + $show "${rm}r$generated" + $run ${rm}r$generated + fi + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + $show "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` + relink_command="$var=\"$var_value\"; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + # 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 | *mingw*,*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 + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes && test "$fast_install" = no; 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 | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + library_names= + old_library= + relink_command= + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) current_libdirs="$current_libdirs $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) future_libdirs="$future_libdirs $libdir" ;; + esac + fi + + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ + test "X$dir" = "X$file/" && dir= + dir="$dir$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + if test "$inst_prefix_dir" = "$destdir"; then + $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 + exit 1 + fi + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + $echo "$modename: warning: relinking \`$file'" 1>&2 + $show "$relink_command" + if $run eval "$relink_command"; then : + else + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 + exit 1 + fi + fi + + # See the names of the shared library. + set dummy $library_names + if test -n "$2"; then + realname="$2" + shift + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + $show "$install_prog $dir/$srcname $destdir/$realname" + $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? + if test -n "$stripme" && test -n "$striplib"; then + $show "$striplib $destdir/$realname" + $run eval "$striplib $destdir/$realname" || exit $? + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + for linkname + do + if test "$linkname" != "$realname"; then + $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" + $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" + fi + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + eval cmds=\"$postinstall_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + # Install the pseudo-library for information purposes. + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + instname="$dir/$name"i + $show "$install_prog $instname $destdir/$name" + $run eval "$install_prog $instname $destdir/$name" || exit $? + + # Maybe install the static library, too. + test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 + $echo "$help" 1>&2 + exit 1 + ;; + esac + + # Install the libtool object if requested. + if test -n "$destfile"; then + $show "$install_prog $file $destfile" + $run eval "$install_prog $file $destfile" || exit $? + fi + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` + + $show "$install_prog $staticobj $staticdest" + $run eval "$install_prog \$staticobj \$staticdest" || exit $? + fi + exit 0 + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + file=`$echo $file|${SED} 's,.exe$,,'` + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin*|*mingw*) + wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` + ;; + *) + wrapper=$file + ;; + esac + if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then + notinst_deplibs= + relink_command= + + # To insure that "foo" is sourced, and not "foo.exe", + # finese the cygwin/MSYS system by explicitly sourcing "foo." + # which disallows the automatic-append-.exe behavior. + case $build in + *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; + *) wrapperdot=${wrapper} ;; + esac + # If there is no directory component, then add one. + case $file in + */* | *\\*) . ${wrapperdot} ;; + *) . ./${wrapperdot} ;; + esac + + # Check the variables that should have been set. + if test -z "$notinst_deplibs"; then + $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 + exit 1 + fi + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + # If there is no directory component, then add one. + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + fi + libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 + finalize=no + fi + done + + relink_command= + # To insure that "foo" is sourced, and not "foo.exe", + # finese the cygwin/MSYS system by explicitly sourcing "foo." + # which disallows the automatic-append-.exe behavior. + case $build in + *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; + *) wrapperdot=${wrapper} ;; + esac + # If there is no directory component, then add one. + case $file in + */* | *\\*) . ${wrapperdot} ;; + *) . ./${wrapperdot} ;; + 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 "$tmpdir" && chmod 700 "$tmpdir"; then : + else + $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 + continue + fi + file=`$echo "X$file$stripped_ext" | $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$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyways + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` + ;; + esac + ;; + esac + $show "$install_prog$stripme $file $destfile" + $run eval "$install_prog\$stripme \$file \$destfile" || exit $? + test -n "$outputname" && ${rm}r "$tmpdir" + ;; + esac + done + + for file in $staticlibs; do + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + + $show "$install_prog $file $oldlib" + $run eval "$install_prog \$file \$oldlib" || exit $? + + if test -n "$stripme" && test -n "$striplib"; then + $show "$old_striplib $oldlib" + $run eval "$old_striplib $oldlib" || exit $? + fi + + # Do each command in the postinstall commands. + eval cmds=\"$old_postinstall_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + done + + if test -n "$future_libdirs"; then + $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 + fi + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + test -n "$run" && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $0 --finish$current_libdirs' + else + exit 0 + fi + ;; + + # libtool finish mode + finish) + modename="$modename: finish" + libdirs="$nonopt" + admincmds= + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for dir + do + libdirs="$libdirs $dir" + done + + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + eval cmds=\"$finish_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || admincmds="$admincmds + $cmd" + done + IFS="$save_ifs" + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $run eval "$cmds" || admincmds="$admincmds + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + 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 | grep "^# 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 | grep "^# 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 environment variables + if test "${save_LC_ALL+set}" = set; then + LC_ALL="$save_LC_ALL"; export LC_ALL + fi + if test "${save_LANG+set}" = set; then + LANG="$save_LANG"; export LANG + fi + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" + $echo "export $shlibpath_var" + fi + $echo "$cmd$args" + exit 0 + fi + ;; + + # libtool clean and uninstall mode + clean | uninstall) + modename="$modename: $mode" + rm="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) rm="$rm $arg"; rmforce=yes ;; + -*) rm="$rm $arg" ;; + *) files="$files $arg" ;; + esac + done + + if test -z "$rm"; then + $echo "$modename: you must specify an RM program" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + rmdirs= + + origobjdir="$objdir" + for file in $files; do + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + if test "X$dir" = "X$file"; then + dir=. + objdir="$origobjdir" + else + objdir="$dir/$origobjdir" + 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 | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + . $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + rmfiles="$rmfiles $objdir/$n" + done + test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" + test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + + if test "$mode" = uninstall; then + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + eval cmds=\"$postuninstall_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + if test "$?" -ne 0 && test "$rmforce" != yes; then + exit_status=1 + fi + done + IFS="$save_ifs" + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + eval cmds=\"$old_postuninstall_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + if test "$?" -ne 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) + # Possibly a libtool object, so verify it. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + + # Read the .lo file + . $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" \ + && test "$pic_object" != none; then + rmfiles="$rmfiles $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" \ + && test "$non_pic_object" != none; then + rmfiles="$rmfiles $dir/$non_pic_object" + fi + fi + ;; + + *) + if test "$mode" = clean ; then + noexename=$name + case $file in + *.exe) + file=`$echo $file|${SED} 's,.exe$,,'` + noexename=`$echo $name|${SED} 's,.exe$,,'` + # $file with .exe has already been added to rmfiles, + # add $file without .exe + rmfiles="$rmfiles $file" + ;; + esac + # Do a test to see if this is a libtool program. + if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + relink_command= + . $dir/$noexename + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + rmfiles="$rmfiles $objdir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + rmfiles="$rmfiles $objdir/lt-${noexename}.c" + fi + fi + fi + ;; + esac + $show "$rm $rmfiles" + $run $rm $rmfiles || exit_status=1 + done + objdir="$origobjdir" + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + $show "rmdir $dir" + $run rmdir $dir >/dev/null 2>&1 + fi + done + + exit $exit_status + ;; + + "") + $echo "$modename: you must specify a MODE" 1>&2 + $echo "$generic_help" 1>&2 + exit 1 + ;; + esac + + if test -z "$exec_cmd"; then + $echo "$modename: invalid operation mode \`$mode'" 1>&2 + $echo "$generic_help" 1>&2 + exit 1 + fi +fi # test -z "$show_help" + +if test -n "$exec_cmd"; then + eval exec $exec_cmd + exit 1 +fi + +# We need to display help for each of the modes. +case $mode in +"") $echo \ +"Usage: $modename [OPTION]... [MODE-ARG]... + +Provide generalized library-building support services. + + --config show all configuration variables + --debug enable verbose shell tracing +-n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --finish same as \`--mode=finish' + --help display this help message and exit + --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] + --quiet same as \`--silent' + --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + --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. + +Report bugs to ." + 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 + -objectlist FILE Use a list of object files found in FILE to specify 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 + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/admin/missing b/admin/missing new file mode 100755 index 0000000..6a37006 --- /dev/null +++ b/admin/missing @@ -0,0 +1,336 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. +# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc. +# Originally by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +case "$1" in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case "$1" in + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags + yacc create \`y.tab.[ch]', if possible, from existing .[ch]" + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing 0.4 - GNU automake" + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + + aclocal*) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case "$f" in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is needed, and you do not seem to have it handy on your + system. You might have modified some files without having the + proper tools for further handling them. + You can get \`$1Help2man' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` + test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if [ ! -f y.tab.h ]; then + echo >y.tab.h + fi + if [ ! -f y.tab.c ]; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if [ ! -f lex.yy.c ]; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` + fi + if [ -f "$file" ]; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit 1 + fi + ;; + + makeinfo) + if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then + # We have makeinfo, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` + fi + touch $file + ;; + + tar) + shift + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + fi + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case "$firstarg" in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case "$firstarg" in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and you do not seem to have it handy on your + system. You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequirements for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 diff --git a/admin/mkinstalldirs b/admin/mkinstalldirs new file mode 100755 index 0000000..d2d5f21 --- /dev/null +++ b/admin/mkinstalldirs @@ -0,0 +1,111 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy +# Author: Noah Friedman +# Created: 1993-05-16 +# Public domain + +errstatus=0 +dirmode="" + +usage="\ +Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." + +# process command line arguments +while test $# -gt 0 ; do + case $1 in + -h | --help | --h*) # -h for help + echo "$usage" 1>&2 + exit 0 + ;; + -m) # -m PERM arg + shift + test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } + dirmode=$1 + shift + ;; + --) # stop option processing + shift + break + ;; + -*) # unknown option + echo "$usage" 1>&2 + exit 1 + ;; + *) # first non-opt arg + break + ;; + esac +done + +for file +do + if test -d "$file"; then + shift + else + break + fi +done + +case $# in + 0) exit 0 ;; +esac + +case $dirmode in + '') + if mkdir -p -- . 2>/dev/null; then + echo "mkdir -p -- $*" + exec mkdir -p -- "$@" + fi + ;; + *) + if mkdir -m "$dirmode" -p -- . 2>/dev/null; then + echo "mkdir -m $dirmode -p -- $*" + exec mkdir -m "$dirmode" -p -- "$@" + fi + ;; +esac + +for file +do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift + + pathcomp= + for d + do + pathcomp="$pathcomp$d" + case $pathcomp in + -*) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + else + if test ! -z "$dirmode"; then + echo "chmod $dirmode $pathcomp" + lasterr="" + chmod "$dirmode" "$pathcomp" || lasterr=$? + + if test ! -z "$lasterr"; then + errstatus=$lasterr + fi + fi + fi + fi + + pathcomp="$pathcomp/" + done +done + +exit $errstatus + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# End: +# mkinstalldirs ends here diff --git a/admin/nmcheck b/admin/nmcheck new file mode 100755 index 0000000..1544713 --- /dev/null +++ b/admin/nmcheck @@ -0,0 +1,371 @@ +#!/usr/bin/perl -w + +# Check namespace cleanness of a library. +# Allowed symbols are passed as arguments. +# They may have trailing * = wildcard. +# Wildcards may be also specified as *::* (e.g. K*::* for all KDE classes) +# Symbols are listed as full function unmangled names without arguments, +# e.g. 'foo bar* nspace::*' allows foo(), foo(int), bar(), barbar() +# and all symbols in namespace/class nspace. +# If an argument has comma in it, it's a filename of a file containing +# allowed symbols, one per line. + + +$thisProg = "$0"; # This programs name + +$library = ""; +$allowed_symbols = ""; +$debug = 0; +$allowed_weak = ""; +$weak_specified = 0; + +while( defined( $ARGV[ 0 ] )) +{ + $_ = shift; + if( /^--verbose$|^-v$/ ) + { + $debug = 1; + } + elsif( /^--help$|^-h$/ ) + { + print STDOUT "Usage $thisProg [OPTION] ... library [allowed symbols] ...\n", + "\n", + "Check if the given library has only allowed public symbols.\n", + "\n", + " --allowweak=[symbol] allow only these weak symbols\n", + " -v, --verbose verbosely list files processed\n", + " -h, --help print this help, then exit\n"; + exit 0; + } + elsif( /^--allowweak=(.*)$/ ) + { + $allowed_weak .= " " . $1; + $weak_specified = 1; + } + elsif( /^--allowweak$/ ) # simply list all weak + { + $allowed_weak .= " "; + $weak_specified = 1; + } + elsif( /^--*/ ) + { + die "Invalid argument!\n"; + } + else + { + if( ! $library ) + { + $library = $_; + } + else + { + $allowed_symbols .= " " . $_; + } + } +} + +if( ! $weak_specified ) +{ + $allowed_weak = "*"; + # allow all weak symbols by default + # instances of templates and similar stuff - unfortunately includes also things from other libraries, + # so it cannot be on by default +} + +print STDERR "library:" . $library . "\n" if $debug; +print STDERR "allowed_symbols:" . $allowed_symbols . "\n" if $debug; +print STDERR "allowed_weak:" . $allowed_weak . "\n" if $debug; + +$default_symbols = "_fini _init"; # system symbols +# on my system, every .so has : +# A _DYNAMIC +# A _GLOBAL_OFFSET_TABLE_ +# A __bss_start +# A _edata +# A _end +# T _fini +# T _init +# no need to list A symbols in $default_symbols + +print STDERR "default_symbols: " . $default_symbols . "\n" if $debug; + +print STDOUT "Namespace cleanness check for " . $library . " :\n"; + +$lib_file = ""; +if( $library =~ /\.la$/ ) +{ + # get the real library file from .la + open( FILEIN, $library ) || die "Couldn't open $! !\n"; + while( $line = ) + { + if( $line =~ /library_names=\'([^ ]*).*/o ) + { + $lib_file = $1; + } + } + close( FILEIN ); + if( ! $lib_file ) + { + print STDERR "Library file not found in .la file!\n"; + exit 1; + } + my $libpath = $library; + $libpath =~ s%[^/]*$%%; + if( -e $libpath . ".libs/" . $lib_file ) + { + $lib_file = $libpath . ".libs/" . $lib_file; + } + else + { + $lib_file = $libpath . $lib_file; + } +} +else +{ + $lib_file = $library; +} + +print STDERR "libfile: ". $lib_file . "\n" if $debug; + +$allowed_symbols .= " " . $default_symbols; + +sub process_symbols($\@\%\@); + +@wildcards = (); +%exacts = (); +@regwildcards = (); +process_symbols( $allowed_symbols, @wildcards, %exacts, @regwildcards ); +@weak_wildcards = (); +%weak_exacts = (); +@weak_regwildcards = (); +process_symbols( $allowed_weak, @weak_wildcards, %weak_exacts, @weak_regwildcards ); + +# grep is for stripping not exported symbols, which don't have address (=first column) +$nm_command = "nm -BDCg " . $lib_file . " | grep -v '^ ' |"; + +# TODO how portable is this nmcheck stuff? + +print STDERR "nm command:" . $nm_command . "\n" if $debug; + +open( FILEIN, $nm_command ) || die "nm command failed\n"; + +my $exit_code = 0; + +while( $line = ) +{ + my $type; + my $symbol; + if( $line =~ /^[^ ]* (.) (.*)$/o ) + { + $type = $1; + $symbol = $2; + } + else + { + die "Invalid line: " . $line . "\n"; + } + + print STDERR "Type: " . $type . " , symbol: " . $symbol . "\n" if $debug; + if( $type eq "A" ) + { # these should be system symbols, so ignore them + next; + } + + my $orig_symbol = $symbol; + + if( $symbol =~ /\(anonymous namespace\)/o ) + { # TODO tell to prefer named namespaces? (shorter symbols) + next; + } + + # strip prefixes + # the :: appending is to make "CLASS::*" work also for "vtable for CLASS" + $symbol =~ s/^typeinfo for (.*)$/$1::/o; + $symbol =~ s/^typeinfo fn for (.*)$/$1::/o; + $symbol =~ s/^typeinfo name for (.*)$/$1::/o; + $symbol =~ s/^vtable for (.*)$/$1::/o; + $symbol =~ s/^guard variable for (.*)$/$1::/o; + $symbol =~ s/^reference temporary for (.*)$/$1::/o; + $symbol =~ s/^VTT for (.*)$/$1::/o; + $symbol =~ s/^virtual thunk \[[^\]]*\] to (.*)$/$1::/o; + $symbol =~ s/^non-virtual thunk \[[^\]]*\] to (.*)$/$1::/o; + $symbol =~ s/^covariant return thunk \[[^\]]*\] to (.*)$/$1::/o; + $symbol =~ s/^construction vtable thunk for (.*)$/$1::/o; + $symbol =~ s/^construction vtable for .*-in-(.*) [0-9]*$/$1::/o; + + # templates seem to have also return types mangled in their name, and nm prints it too + # they have also template arguments in the symbol + # get rid of both of those + while( $symbol =~ /<.*>/o ) + { + $symbol =~ s/<[^<>]*>//o; # strip innermost <> + } + if( $symbol !~ /operator\(\)/o ) + { + $symbol =~ s/ ?\(.*\).*$//o; # strip () and all after it + } + else + { + $symbol =~ s/(^|:| )operator\(\) ?\(.*\).*$//o; # strip () and all after it + } + $symbol =~ s/\[.*\] *$//o; # strip [in-charge] etc. + if( $symbol =~ /(^|:| )operator /o ) + { + $symbol =~ s/.* ([^\s]*)operator /$1/o; # strip everything before 'X::operator blah' + } + else + { + $symbol =~ s/.* ([^\s]+) *$/$1/o; # get last word (strip return type) + } + + # print STDERR "Processed symbol: " . $symbol . "\n" if $debug; + + my $found = 0; + if( $exacts{ $symbol } ) + { + $found = 1; + } + if( ! $found ) + { + for my $wild ( @wildcards ) + { + if( index( $symbol, $wild ) == 0 ) + { + $found = 1; + last; + } + } + } + if( ! $found ) + { + for my $wild ( @regwildcards ) + { + if( $symbol =~ /^$wild$/ ) + { + $found = 1; + last; + } + } + } + if( ( ! $found ) && ( $type eq "W" || $type eq "V" )) + { + if( $weak_exacts{ $symbol } ) + { + $found = 1; + } + if( ! $found ) + { + for my $wild ( @weak_wildcards ) + { + if( index( $symbol, $wild ) == 0 ) + { + $found = 1; + last; + } + } + } + if( ! $found ) + { + for my $wild ( @weak_regwildcards ) + { + if( $symbol =~ /^$wild$/ ) + { + $found = 1; + last; + } + } + } + } + + if( ! $found ) + { + print STDERR "Public symbol " . $orig_symbol . " is not allowed!\n"; + $exit_code = 1; + } +} + +close( FILEIN ); + +print STDOUT $exit_code == 0 ? "OK\n" : "FAILED\n"; + +exit $exit_code; + +sub process_symbols($\@\%\@) +{ + my $allowed_symbols = $_[ 0 ]; + my $wildcards_ref = $_[ 1 ]; + my $exacts_ref = $_[ 2 ]; + my $regwildcards_ref = $_[ 3 ]; + + $allowed_symbols =~ s/^ *//o; # strip whitespace + $allowed_symbols =~ s/ *$//o; + + if( $allowed_symbols eq "NONE" ) + { + $allowed_symbols = ""; + } + + my @symbols1 = split( ' ', $allowed_symbols ); + my $i = 0; + my @symbols2 = (); + while( defined( $symbols1[ $i ] )) + { + my $symbol = $symbols1[ $i ]; + if( $symbol =~ /\./ ) # dot in name -> file + { + open( SYMIN, $symbol ) || die ( "Cannot open file " . $symbol . "!" ); + while( $line = ) + { + $line =~ s/^\s*//o; # strip whitespace + $line =~ s/\s*$//o; + if( $line !~ /^$/o # empty line + && $line !~ /^\s*#/ ) # comment line starting with # + { + $symbols2[ $#symbols2 + 1 ] = $line; + } + } + close( SYMIN ); + } + else + { + $symbols2[ $#symbols2 + 1 ] = $symbol; + } + $i++; + } + $i = 0; + while( defined( $symbols2[ $i ] )) + { + my $symbol = $symbols2[ $i ]; + if( $symbol =~ /__/ + || $symbol =~ /^_[A-Z]/ ) + { # ISO C++ 2.10.2 + die "Symbols containing a double underscore or beginning with an underscore and an upper-case letter are reserved!\n"; + } + elsif( $symbol eq "main" + || $symbol eq "main*" ) + { + die "Symbol main is not allowed!\n"; + } + if( $symbol =~ /^([^\*]*)\*$/o # trailing * without any * before it + && $symbol !~ /operator\*$/o ) + { + print STDERR "wildcard:" . $symbol . "\n" if $debug; + $wildcards_ref->[ $#{$wildcards_ref} + 1 ] = $1; + } + elsif( $symbol =~ /\*$/o + && ( $symbol =~ /\*::/o || $symbol =~ /::\*/o ) + && $symbol !~ /^\*/o + && $symbol !~ /operator\*$/o ) + { + print STDERR "regwildcard:" . $symbol . "\n" if $debug; + $symbol =~ s/\*/\.\*/go; # change * to .* (regexp) + $regwildcards_ref->[ $#{$regwildcards_ref} + 1 ] = $symbol; + } + else + { + print STDERR "exact:" . $symbol . "\n" if $debug; + $exacts_ref->{ $symbol } = 1; + } + $i++; + } +} diff --git a/admin/ylwrap b/admin/ylwrap new file mode 100755 index 0000000..5ea68e4 --- /dev/null +++ b/admin/ylwrap @@ -0,0 +1,143 @@ +#! /bin/sh +# ylwrap - wrapper for lex/yacc invocations. +# Copyright 1996, 1997, 1998, 1999 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, 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. + +# Usage: +# ylwrap INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... +# * INPUT is the input file +# * OUTPUT is file PROG generates +# * DESIRED is file we actually want +# * PROGRAM is program to run +# * ARGS are passed to PROG +# Any number of OUTPUT,DESIRED pairs may be used. + +# The input. +input="$1" +shift +case "$input" in + [\\/]* | ?:[\\/]*) + # Absolute path; do nothing. + ;; + *) + # Relative path. Make it absolute. + input="`pwd`/$input" + ;; +esac + +# The directory holding the input. +input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'` +# Quote $INPUT_DIR so we can use it in a regexp. +# FIXME: really we should care about more than `.' and `\'. +input_rx=`echo "$input_dir" | sed -e 's,\\\\,\\\\\\\\,g' -e 's,\\.,\\\\.,g'` + +echo "got $input_rx" + +pairlist= +while test "$#" -ne 0; do + if test "$1" = "--"; then + shift + break + fi + pairlist="$pairlist $1" + shift +done + +# The program to run. +prog="$1" +shift +# Make any relative path in $prog absolute. +case "$prog" in + [\\/]* | ?:[\\/]*) ;; + *[\\/]*) prog="`pwd`/$prog" ;; +esac + +# FIXME: add hostname here for parallel makes that run commands on +# other machines. But that might take us over the 14-char limit. +dirname=ylwrap$$ +trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15 +mkdir $dirname || exit 1 + +cd $dirname + +$prog ${1+"$@"} "$input" +status=$? + +if test $status -eq 0; then + set X $pairlist + shift + first=yes + # Since DOS filename conventions don't allow two dots, + # the DOS version of Bison writes out y_tab.c instead of y.tab.c + # and y_tab.h instead of y.tab.h. Test to see if this is the case. + y_tab_nodot="no" + if test -f y_tab.c || test -f y_tab.h; then + y_tab_nodot="yes" + fi + + while test "$#" -ne 0; do + from="$1" + # Handle y_tab.c and y_tab.h output by DOS + if test $y_tab_nodot = "yes"; then + if test $from = "y.tab.c"; then + from="y_tab.c" + else + if test $from = "y.tab.h"; then + from="y_tab.h" + fi + fi + fi + if test -f "$from"; then + # If $2 is an absolute path name, then just use that, + # otherwise prepend `../'. + case "$2" in + [\\/]* | ?:[\\/]*) target="$2";; + *) target="../$2";; + esac + + # Edit out `#line' or `#' directives. We don't want the + # resulting debug information to point at an absolute srcdir; + # it is better for it to just mention the .y file with no + # path. + sed -e "/^#/ s,$input_rx,," "$from" > "$target" || status=$? + else + # A missing file is only an error for the first file. This + # is a blatant hack to let us support using "yacc -d". If -d + # is not specified, we don't want an error when the header + # file is "missing". + if test $first = yes; then + status=1 + fi + fi + shift + shift + first=no + done +else + status=$? +fi + +# Remove the directory. +cd .. +rm -rf $dirname + +exit $status diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..61b1206 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,2 @@ +#!/bin/sh +UNSERMAKE="no" make -f Makefile.cvs diff --git a/bibletime-1.6.4.dfsg.tar.bz2 b/bibletime-1.6.4.dfsg.tar.bz2 deleted file mode 100644 index 6d27c7c..0000000 Binary files a/bibletime-1.6.4.dfsg.tar.bz2 and /dev/null differ diff --git a/bibletime.desktop b/bibletime.desktop new file mode 100644 index 0000000..5fb5495 --- /dev/null +++ b/bibletime.desktop @@ -0,0 +1,26 @@ +[Desktop Entry] +Comment=An easy to use bible study tool +Comment[C]=An easy to use bible study tool +Comment[cs]=Snadno pouiteln n�troj pro studium Bible +Comment[da]=Et letanvendeligt bibelstudieprogram +Comment[de]=Ein einfach zu benutzendes Bibelprogramm +Comment[fr]=Un outil d'�ude biblique facile �utiliser +Exec=bibletime +Icon=bibletime +MimeType= +Name=BibleTime 1.6.5.1 +Name[C]=BibleTime 1.6.5.1 +Name[cs]=BibleTime 1.6.5.1 +Name[da]=Bibeltime 1.6.5.1 +Name[de]=BibleTime 1.6.5.1 +Name[fr]=BibleTime 1.6.5.1 +GenericName=Bible Study Tool +SwallowExec= +SwallowTitle= +Terminal=false +TerminalOptions= +Type=Application +X-KDE-SubstituteUID=false +X-KDE-Username= +Categories=X-Bible;X-Religion;Literature;Art;Education;Utility;KDE;QT +DocPath=bibletime/handbook/index.html diff --git a/bibletime.desktop.in b/bibletime.desktop.in new file mode 100644 index 0000000..ab6b200 --- /dev/null +++ b/bibletime.desktop.in @@ -0,0 +1,26 @@ +[Desktop Entry] +Comment=An easy to use bible study tool +Comment[C]=An easy to use bible study tool +Comment[cs]=Snadno pouiteln n�troj pro studium Bible +Comment[da]=Et letanvendeligt bibelstudieprogram +Comment[de]=Ein einfach zu benutzendes Bibelprogramm +Comment[fr]=Un outil d'�ude biblique facile �utiliser +Exec=bibletime +Icon=bibletime +MimeType= +Name=BibleTime @VERSION@ +Name[C]=BibleTime @VERSION@ +Name[cs]=BibleTime @VERSION@ +Name[da]=Bibeltime @VERSION@ +Name[de]=BibleTime @VERSION@ +Name[fr]=BibleTime @VERSION@ +GenericName=Bible Study Tool +SwallowExec= +SwallowTitle= +Terminal=false +TerminalOptions= +Type=Application +X-KDE-SubstituteUID=false +X-KDE-Username= +Categories=X-Bible;X-Religion;Literature;Art;Education;Utility;KDE;QT +DocPath=bibletime/handbook/index.html diff --git a/bibletime.lsm b/bibletime.lsm new file mode 100644 index 0000000..ad91db9 --- /dev/null +++ b/bibletime.lsm @@ -0,0 +1,14 @@ +Begin3 +Title: BibleTime +Version: 1.6.5.1 +Entered-date: 31DEC2003 +Description: An easy to use but powerful Bible study tool for KDE 3. BibleTime is based on SWORD 1.5.8. +Keywords: bible,study,KDE3,KDE,QT,sword,bibletime,bibletime2,crosswire,www.bibletime.info,crosswire.org +Author: The BibleTime Team +Maintained-by: The BibleTime Team +Primary-site: http://www.bibletime.info/ +Home-page: http://www.bibletime.info/ +Original-site: http://www.bibletime.info/ +Platforms: Linux and other Unices +Copying-policy: GNU Public License +End diff --git a/bibletime.lsm.in b/bibletime.lsm.in new file mode 100644 index 0000000..38114bd --- /dev/null +++ b/bibletime.lsm.in @@ -0,0 +1,14 @@ +Begin3 +Title: BibleTime +Version: @VERSION@ +Entered-date: 31DEC2003 +Description: An easy to use but powerful Bible study tool for KDE 3. BibleTime is based on SWORD 1.5.8. +Keywords: bible,study,KDE3,KDE,QT,sword,bibletime,bibletime2,crosswire,www.bibletime.info,crosswire.org +Author: The BibleTime Team +Maintained-by: The BibleTime Team +Primary-site: http://www.bibletime.info/ +Home-page: http://www.bibletime.info/ +Original-site: http://www.bibletime.info/ +Platforms: Linux and other Unices +Copying-policy: GNU Public License +End diff --git a/bibletime.m4 b/bibletime.m4 new file mode 100644 index 0000000..3f42937 --- /dev/null +++ b/bibletime.m4 @@ -0,0 +1,193 @@ +## -*- autoconf -*- + +dnl ------------------------------------------------------------------------------- +dnl Check wheter to use static linking, first parameter is the result (YES/NO) +dnl ------------------------------------------------------------------------------- +AC_DEFUN(AC_CHECK_STATIC_LINKING, +[ +$1="NO" + +AC_MSG_CHECKING(whether to use static linking) +AC_ARG_ENABLE(static-linking, + [ --enable-static-linking use static linking], + USE_STATIC_LINKING=$enableval, USE_STATIC_LINKING="no") + +if test "$USE_STATIC_LINKING" = "yes"; then + BT_LDFLAGS="-all-static -Wl,-Bstatic"; + AC_SUBST(BT_LDFLAGS) + CPPFLAGS="-DSTATIC_BUILD $CPPFLAGS"; + $1="YES"; +else + $1="NO"; +fi + +AC_MSG_RESULT($USE_STATIC_LINKING) +]) + +dnl ------------------------------------------------------------------------------- +dnl Checks the type of the distribution +dnl Possible names for the distributions are SuSE, RedHat, Mandrake +dnl ------------------------------------------------------------------------------- +AC_DEFUN(AC_CHECK_DISTRIBUTION, +[ +AC_MSG_CHECKING([for the used Linux distribution]) + +AC_ARG_WITH(distribution, +[ --with-distribution=TYPE The name of your *NIX distribution, e.g. SuSE [auto] ], +[ + ac_distribution=$withval +],ac_distribution=auto +) + +AC_ARG_WITH(distribution-version, +[ --with-distribution-version=VERSION Version of your *NIX distribution, e.g. 7.2 [auto] ], +[ + ac_distribution_version=$withval +],ac_distribution_version=auto +) + +AC_ARG_WITH(rpm-prefix, +[ --with-rpm-prefix=DIR The directory which should be used as PREFIX + in the RPM spec file [auto] ], +[ + ac_rpm_prefix=$withval +],ac_rpm_prefix=auto +) + +AC_ARG_WITH(rpm-group, +[ --with-rpm-group=DIR The group which will be used for the RPM system [auto] ], +[ + ac_rpm_group=$withval +],ac_rpm_group=auto +) + +if test "$ac_distribution" != "auto"; then + DISTRIBUTION=[$ac_distribution] +fi + +if test "$ac_distribution" = "auto"; then +AC_CACHE_VAL(DISTRIBUTION, [ +if test -f "/etc/SuSE-release"; then + DISTRIBUTION="SuSE" +elif test -f "/etc/mandrake-release"; then + DISTRIBUTION="Mandrake" +elif test -f "/etc/redhat-release"; then + DISTRIBUTION="Red Hat" +elif test -f "/etc/debian_version"; then + DISTRIBUTION="Debian" +fi +]) +fi + +if test "$ac_distribution_version" != "auto"; then + DISTRIBUTION_VERSION=[$ac_distribution_version] +fi +if test "$ac_distribution_version" = "auto"; then +AC_CACHE_VAL(DISTRIBUTION_VERSION, [ +if test -f "/etc/SuSE-release" && test "$DISTRIBUTION" = "SuSE"; then + DISTRIBUTION_VERSION=[`grep "VERSION =" /etc/SuSE-release | sed 's/VERSION = //'`]; +elif test -f "/etc/mandrake-release" && test "$DISTRIBUTION" = "Mandrake"; then + DISTRIBUTION_VERSION=[`grep "Mandrake" /etc/mandrake-release | sed 's/[a-zA-Z()]*//g' | awk '{print $1}'`] +elif test -f "/etc/redhat-release" && test "$DISTRIBUTION" = "Red Hat"; then + DISTRIBUTION_VERSION=[`grep "Red Hat" /etc/redhat-release | sed 's/[a-zA-Z()]*//g' | awk '{print $1}'`] +elif test -f "/etc/debian_version" && test "$DISTRIBUTION" = "Debian"; then + DISTRIBUTION_VERSION=[`cat /etc/debian_version`] +fi +]) +fi + + +if test "$ac_rpm_prefix" != "auto"; then + RPM_PREFIX=[$ac_rpm_prefix] +fi +if test "$ac_rpm_prefix" = "auto"; then +AC_CACHE_VAL(RPM_PREFIX, [ +if test "$DISTRIBUTION" = "SuSE"; then + RPM_PREFIX="/opt/kde3" +elif test "$DISTRIBUTION" = "Mandrake"; then + RPM_PREFIX="/usr" +elif test "$DISTRIBUTION" = "Red Hat"; then + RPM_PREFIX="/usr" +elif test "$DISTRIBUTION" = "Debian"; then + RPM_PREFIX="/usr" +fi +]) +fi + +if test "$ac_rpm_group" != "auto"; then + RPM_GROUP=[$ac_rpm_group] +fi +if test "$ac_rpm_prefix" = "auto"; then +AC_CACHE_VAL(RPM_GROUP, +[ +if test "$DISTRIBUTION" = "SuSE"; then + RPM_GROUP="X11/KDE/Applications" +elif test "$DISTRIBUTION" = "Mandrake"; then + RPM_GROUP="Graphical desktop/KDE" +elif test "$DISTRIBUTION" = "Red Hat"; then + RPM_GROUP="Graphical desktop/KDE" +elif test "$DISTRIBUTION" = "Debian"; then + RPM_GROUP="Graphical desktop/KDE" +fi +]) +fi + +if test -n "$DISTRIBUTION" && test "$DISTRIBUTION" != "unknown"; then + AC_DEFINE_UNQUOTED(DISTRIBUTION, ${DISTRIBUTION}, [The type of your distribution]) +fi + +if test -n "$DISTRIBUTION_VERSION" && test "$DISTRIBUTION_VERSION" != "unknown"; then + AC_DEFINE_UNQUOTED(DISTRIBUTION_VERSION, ${DISTRIBUTION_VERSION}, [The version of your distribution]) +fi + +AC_SUBST(DISTRIBUTION) +AC_SUBST(DISTRIBUTION_VERSION) +AC_SUBST(RPM_PREFIX) +AC_SUBST(RPM_GROUP) + +AC_MSG_RESULT([$DISTRIBUTION $DISTRIBUTION_VERSION]) + +AC_MSG_CHECKING([for RPM installation prefix]) +AC_MSG_RESULT([$RPM_PREFIX]) + +AC_MSG_CHECKING([for the correct RPM group]) +AC_MSG_RESULT([$RPM_GROUP]) +]) + + + + +dnl MY_CURL +dnl ------- +dnl set my_cv_curl_vers to the version of libcurl or NONE +dnl if libcurl is not found or is too old +dnl This function comes from cURL's webpage + +AC_DEFUN(AC_CHECK_CURL,[ + AC_CACHE_VAL(my_cv_curl_vers,[ + my_cv_curl_vers=NONE + dnl check is the plain-text version of the required version + check="7.9" + dnl check_hex must be UPPERCASE if any hex letters are present + check_hex="070900" + + AC_MSG_CHECKING([for curl >= $check]) + + if eval curl-config --version 2>/dev/null >/dev/null; then + ver=`curl-config --version | sed -e "s/libcurl //g"` + hex_ver=`curl-config --vernum | tr 'a-f' 'A-F'` + ok=`echo "ibase=16; if($hex_ver>=$check_hex) $hex_ver else 0" | bc` + + if test x$ok != x0; then + my_cv_curl_vers="$ver" + AC_MSG_RESULT([$my_cv_curl_vers]) + else + AC_MSG_RESULT(FAILED) + AC_MSG_ERROR([$ver is too old. Please install libcurl version $check or higher.]); + fi + else + AC_MSG_RESULT(FAILED) + AC_MSG_ERROR([curl-config was not found. Please install libcurl version $check or higher.]) + fi + ]) +]) diff --git a/bibletime.spec b/bibletime.spec new file mode 100644 index 0000000..e5bb4c7 --- /dev/null +++ b/bibletime.spec @@ -0,0 +1,234 @@ +%define name bibletime +%define version 1.6.5.1 + +# this needs to be changed depending on build number +%define release 1 + +# This should be set to your os. +# Possible values are Mandrake, Red Hat, Turbolinux, Caldera, SuSE, Debian, etc. +# In bibletime.spec.in this is automatically filled in by configure +%define ostype Debian + +# This should be set to the version of your OS (6.0, 6.1, 6.2, 7.0, 7.1, 7.2, 8.0, etc.) +# Done by configure in bibletime.spec.in +%define osversion lenny/sid + +# This is your cpu i486, i586, i686, ppc, sparc, alpha, etc. +%define buildarch i586 + +# This the RPM group on your system that this will installed into. +# Graphical desktop/KDE, X11/apps, etc. +%define rpmgroup Graphical desktop/KDE + +Summary: BibleTime %{version} is an easy to use Bible study tool for KDE. +Name: %{name} +Version: %{version} +Release: %{release} +Copyright: GPL +Vendor: BibleTime's developer (info@bibletime.info) +Url: http://www.bibletime.info/ +Packager: Brook Humphrey , Joachim Ansorg +Group: %{rpmgroup} +BuildArch: %{buildarch} +Source0: %{name}-%{version}.tar.bz2 +BuildRoot: %{_tmppath}/%{name}-%{version}--rootbibletime +Prefix: /usr +Requires: sword >= 1.5.8 +Distribution: %{ostype} %{osversion} +BuildRequires: kdelibs-devel +BuildRequires: sword-devel >= 1.5.8 + +%description +BibleTime %{version}-%{release} is a free and easy to use bible study tool for UNIX systems. + +BibleTime provides easy handling of digitalized texts (Bibles, commentaries and lexicons) and powerful features to work with these texts (search in texts, write own notes, save, print etc.). BibleTime is a frontend for the SWORD Bible Framework. + +This is a relocatable package, you can install it on different target with +rpm -Uvh bibletime-%{version}-%{release}.rpm --prefix /usr/local/opt/apps/noncommercial +default is %{_prefix} + +The SWORD Project is an effort to create an ever expanding software package for research and study of God and His Word. The SWORD Bible Framework allows easy manipulation of Bible texts, commentaries, lexicons, dictionaries, etc. Many frontends are build using this framework. An installed module set may be shared between any frontend using the framework. + +This rpm was compiled on a %{ostype} %{osversion} system for %{buildarch} class cpu's. + + +%prep +rm -rf $RPM_BUILD_ROOT +rm -rf $RPM_BUILD_DIR/%{name}-%{version} + +%setup -q +make -f Makefile.cvs + +# Look for common rpm-options: +if [ -f /etc/opt/kde3/common_options ]; then + . /etc/opt/kde3/common_options + ./configure $configkde +else + ./configure --prefix=${_prefix} +fi + +# Setup for parallel builds +numprocs=`egrep -c ^cpu[0-9]+ /proc/stat || :` +if [ "$numprocs" = "0" ]; then + numprocs=1 +fi + +make -j$numprocs + +%install +make DESTDIR=$RPM_BUILD_ROOT install-strip + +#cd $RPM_BUILD_ROOT +#find . -type d | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' > $RPM_BUILD_DIR/bt-files.list +#find . -type f | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/bt-files.list +#find . -type l | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/bt-files.list + + +%post +/sbin/ldconfig + +%postun +/sbin/ldconfig + +%clean +#rm -f $RPM_BUILD_DIR/master.list +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root) +%{prefix}/bin/* +%{prefix}/share/applnk/Applications/bibletime.desktop +%{prefix}/share/apps/bibletime/ +%{prefix}/share/doc/HTML/en/bibletime/ +%{prefix}/share/icons/* + +%changelog +* Sat Dec 27 2003 Joachim Ansorg + +-We require curl 7.10 or later now + +-Update to BibleTime 1.4 and Sword 1.5.7 + +* Sun Jun 22 2003 Joachim Ansorg + +-Cleanup. We require no an Sword RPM file to be installed. + +-Removed Mandrake menu stuff because there's an own SPEC file for this. + + +* Fri Feb 14 2003 Joachim Ansorg + +-Removed locales.d source and management of Sword files because we require a Sword RPM now. + + +* Mon Apr 8 2002 Brook Humphrey bibletime-1.1 + +- Added to the spec to better handle mandrake menus during compile. Now should be compatable with all os's. + +- added locals.d source to build. This removes dependecy on sword being installed. Will make seperate package for this later. + + +* Fri Mar 31 2002 Joachim Ansorg + +- Made including the book translations working finally. + +- Fixed SPEC files to work with SuSE + + +* Thu Feb 7 2002 Brook Humphrey bibletime-1.0.2 + +- changed compile time options to mach bibletime spec included with source files + +- compiled on mandrake 8.2 + + +* Fri Sep 7 2001 Joachim Ansorg + +- Added the bookname files in the file list + +* Tue Jul 10 2001 Brook Humphrey bibletime-1.0.1-Mandrake8.0.4mdk + +- Recompile because of dependecy problems. + +* Tue Jul 10 2001 Brook Humphrey bibletime-1.0.1-Mandrake8.0.1mdk + +- bug fix release bibletime-1.0.1 + +- adda extra compile options to spec file. + +- Merged in suse changes for compileing on SuSE + +* Sun May 27 2001 Brook Humphrey + +- Trying different variations of static compiles again. + +- Still using cvs sources while waiting for 1.0 release. + +* Thu May 24 2001 Brook Humphrey + +- Trying for x static and whatever else we can get into it. + +- No X for today Got libz to compile in but it causes segfault. + +* Wed May 23 2001 Brook Humphrey + +- Yet another try at static qt. + +- Qt static works now. + +* Mon May 21 2001 Brook Humphrey + +- Static is working for kde and a few other libs but not qt yet. + +- Testing another patch today to try to get qt compiled static. + +* Sun May 20 2001 Brook Humphrey + +- Cleaned up spec some more(stupid spelling error's) + +- static compile not working today so added option to compile kde and sword as static seperately + +* Sat May 19 2001 Brook Humphrey + +- Cleaned up spec some more and added a few more comments + +- Changed spec to automaticly do parts concerning static and Mandrake menus + +- All info can be set in defines at top of spec file no other changes should need to be made + +- Fixed patch to compile static should now compile static with kde libs + +- Test to compile with qt as static also + +* Sun May 13 2001 Brook Humphrey + +- cleaned up spec file and added more comments for easier reading. + +- changed sword.conf instelation to check for previous versions of sword.conf + +- If found a new sword.conf is not created + +- Made a patch to hopefully compile kde and other libs as atatic + +- static compile didn't work for today. + +* Tue May 8 2001 Brook Humphrey + +- Updated package to be relocatable + +- added sword directories and sword.conf to install + +* Mon Apr 30 2001 Brook Humphrey + +- Changed to build staticly + +- added more mandrake macros to spec file + +* Mon Apr 23 2001 Brook Humphrey + +- made changes to enable compile of cvs tree + +* Wed Mar 14 2001 Brook Humphrey + +- updated to use mandrake menu sysem + diff --git a/bibletime.spec.in b/bibletime.spec.in new file mode 100644 index 0000000..509f444 --- /dev/null +++ b/bibletime.spec.in @@ -0,0 +1,234 @@ +%define name @PACKAGE@ +%define version @VERSION@ + +# this needs to be changed depending on build number +%define release 1 + +# This should be set to your os. +# Possible values are Mandrake, Red Hat, Turbolinux, Caldera, SuSE, Debian, etc. +# In bibletime.spec.in this is automatically filled in by configure +%define ostype @DISTRIBUTION@ + +# This should be set to the version of your OS (6.0, 6.1, 6.2, 7.0, 7.1, 7.2, 8.0, etc.) +# Done by configure in bibletime.spec.in +%define osversion @DISTRIBUTION_VERSION@ + +# This is your cpu i486, i586, i686, ppc, sparc, alpha, etc. +%define buildarch i586 + +# This the RPM group on your system that this will installed into. +# Graphical desktop/KDE, X11/apps, etc. +%define rpmgroup @RPM_GROUP@ + +Summary: BibleTime %{version} is an easy to use Bible study tool for KDE. +Name: %{name} +Version: %{version} +Release: %{release} +Copyright: GPL +Vendor: BibleTime's developer (info@bibletime.info) +Url: http://www.bibletime.info/ +Packager: Brook Humphrey , Joachim Ansorg +Group: %{rpmgroup} +BuildArch: %{buildarch} +Source0: %{name}-%{version}.tar.bz2 +BuildRoot: %{_tmppath}/%{name}-%{version}--rootbibletime +Prefix: @RPM_PREFIX@ +Requires: sword >= 1.5.8 +Distribution: %{ostype} %{osversion} +BuildRequires: kdelibs-devel +BuildRequires: sword-devel >= 1.5.8 + +%description +BibleTime %{version}-%{release} is a free and easy to use bible study tool for UNIX systems. + +BibleTime provides easy handling of digitalized texts (Bibles, commentaries and lexicons) and powerful features to work with these texts (search in texts, write own notes, save, print etc.). BibleTime is a frontend for the SWORD Bible Framework. + +This is a relocatable package, you can install it on different target with +rpm -Uvh bibletime-%{version}-%{release}.rpm --prefix /usr/local/opt/apps/noncommercial +default is %{_prefix} + +The SWORD Project is an effort to create an ever expanding software package for research and study of God and His Word. The SWORD Bible Framework allows easy manipulation of Bible texts, commentaries, lexicons, dictionaries, etc. Many frontends are build using this framework. An installed module set may be shared between any frontend using the framework. + +This rpm was compiled on a %{ostype} %{osversion} system for %{buildarch} class cpu's. + + +%prep +rm -rf $RPM_BUILD_ROOT +rm -rf $RPM_BUILD_DIR/%{name}-%{version} + +%setup -q +make -f Makefile.cvs + +# Look for common rpm-options: +if [ -f /etc/opt/kde3/common_options ]; then + . /etc/opt/kde3/common_options + ./configure $configkde +else + ./configure --prefix=${_prefix} +fi + +# Setup for parallel builds +numprocs=`egrep -c ^cpu[0-9]+ /proc/stat || :` +if [ "$numprocs" = "0" ]; then + numprocs=1 +fi + +make -j$numprocs + +%install +make DESTDIR=$RPM_BUILD_ROOT install-strip + +#cd $RPM_BUILD_ROOT +#find . -type d | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' > $RPM_BUILD_DIR/bt-files.list +#find . -type f | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/bt-files.list +#find . -type l | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/bt-files.list + + +%post +/sbin/ldconfig + +%postun +/sbin/ldconfig + +%clean +#rm -f $RPM_BUILD_DIR/master.list +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root) +%{prefix}/bin/* +%{prefix}/share/applnk/Applications/bibletime.desktop +%{prefix}/share/apps/bibletime/ +%{prefix}/share/doc/HTML/en/bibletime/ +%{prefix}/share/icons/* + +%changelog +* Sat Dec 27 2003 Joachim Ansorg + +-We require curl 7.10 or later now + +-Update to BibleTime 1.4 and Sword 1.5.7 + +* Sun Jun 22 2003 Joachim Ansorg + +-Cleanup. We require no an Sword RPM file to be installed. + +-Removed Mandrake menu stuff because there's an own SPEC file for this. + + +* Fri Feb 14 2003 Joachim Ansorg + +-Removed locales.d source and management of Sword files because we require a Sword RPM now. + + +* Mon Apr 8 2002 Brook Humphrey bibletime-1.1 + +- Added to the spec to better handle mandrake menus during compile. Now should be compatable with all os's. + +- added locals.d source to build. This removes dependecy on sword being installed. Will make seperate package for this later. + + +* Fri Mar 31 2002 Joachim Ansorg + +- Made including the book translations working finally. + +- Fixed SPEC files to work with SuSE + + +* Thu Feb 7 2002 Brook Humphrey bibletime-1.0.2 + +- changed compile time options to mach bibletime spec included with source files + +- compiled on mandrake 8.2 + + +* Fri Sep 7 2001 Joachim Ansorg + +- Added the bookname files in the file list + +* Tue Jul 10 2001 Brook Humphrey bibletime-1.0.1-Mandrake8.0.4mdk + +- Recompile because of dependecy problems. + +* Tue Jul 10 2001 Brook Humphrey bibletime-1.0.1-Mandrake8.0.1mdk + +- bug fix release bibletime-1.0.1 + +- adda extra compile options to spec file. + +- Merged in suse changes for compileing on SuSE + +* Sun May 27 2001 Brook Humphrey + +- Trying different variations of static compiles again. + +- Still using cvs sources while waiting for 1.0 release. + +* Thu May 24 2001 Brook Humphrey + +- Trying for x static and whatever else we can get into it. + +- No X for today Got libz to compile in but it causes segfault. + +* Wed May 23 2001 Brook Humphrey + +- Yet another try at static qt. + +- Qt static works now. + +* Mon May 21 2001 Brook Humphrey + +- Static is working for kde and a few other libs but not qt yet. + +- Testing another patch today to try to get qt compiled static. + +* Sun May 20 2001 Brook Humphrey + +- Cleaned up spec some more(stupid spelling error's) + +- static compile not working today so added option to compile kde and sword as static seperately + +* Sat May 19 2001 Brook Humphrey + +- Cleaned up spec some more and added a few more comments + +- Changed spec to automaticly do parts concerning static and Mandrake menus + +- All info can be set in defines at top of spec file no other changes should need to be made + +- Fixed patch to compile static should now compile static with kde libs + +- Test to compile with qt as static also + +* Sun May 13 2001 Brook Humphrey + +- cleaned up spec file and added more comments for easier reading. + +- changed sword.conf instelation to check for previous versions of sword.conf + +- If found a new sword.conf is not created + +- Made a patch to hopefully compile kde and other libs as atatic + +- static compile didn't work for today. + +* Tue May 8 2001 Brook Humphrey + +- Updated package to be relocatable + +- added sword directories and sword.conf to install + +* Mon Apr 30 2001 Brook Humphrey + +- Changed to build staticly + +- added more mandrake macros to spec file + +* Mon Apr 23 2001 Brook Humphrey + +- made changes to enable compile of cvs tree + +* Wed Mar 14 2001 Brook Humphrey + +- updated to use mandrake menu sysem + diff --git a/bibletime/Makefile.am b/bibletime/Makefile.am new file mode 100644 index 0000000..4cd9bd9 --- /dev/null +++ b/bibletime/Makefile.am @@ -0,0 +1,70 @@ +bibletime_SOURCES = bibletime_init.cpp bibletime_slots.cpp bibletime.cpp \ + bibletimeapp.cpp main.cpp bibletime_dcop.cpp bibletimeinterface.skel + +bibletime_LDADD = \ +./frontend/displaywindow/libdisplaywindow.a \ +./frontend/display/libdisplay.a \ +./frontend/keychooser/libkeychooser.a \ +./frontend/mainindex/libmainindex.a \ +./frontend/searchdialog/libsearchdialog.a \ +./frontend/libfrontend.a \ +./frontend/util/libfrontendutil.a \ +./backend/libbackend.a \ +./util/libutil.a \ +-lXext \ +$(LIB_QT) \ +$(LIB_KDECORE) \ +$(LIB_KDEUI) \ +-lkdeprint \ +$(LIB_KFILE) \ +$(LIB_KHTML) \ +$(LIB_X11) \ +$(LIB_SWORD) \ +$(LIB_CLUCENE) \ +$(LIBSOCKET) + +SUBDIRS = display-templates backend frontend xml pics util + +all_headers = bibletime.h bibletimeapp.h +include_HEADERS = bibletimeinterface.h + +EXTRA_DIST = $(bibletime_SOURCES) $(all_headers) + +# this 10 paths are KDE specific. Use them: +# kde_htmldir Where your docs should go to. (contains lang subdirs) +# kde_appsdir Where your application file (.kdelnk) should go to. +# kde_icondir Where your icon should go to. +# kde_minidir Where your mini icon should go to. +# kde_datadir Where you install application data. (Use a subdir) +# kde_locale Where translation files should go to.(contains lang subdirs) +# kde_cgidir Where cgi-bin executables should go to. +# kde_confdir Where config files should go to. +# kde_mimedir Where mimetypes should go to. +# kde_toolbardir Where general toolbar icons should go to. +# kde_wallpaperdir Where general wallpapers should go to. + +# set the include path for X, qt, KDE and Sword +INCLUDES = $(all_includes) + +# claim, which subdirectories you want to install +# you can add here more. This one gets installed +bin_PROGRAMS = bibletime + +bibletime_METASOURCES = AUTO + +# the library search path. +bibletime_LDFLAGS = $(BT_LDFLAGS) $(all_libraries) $(KDE_RPATH) + +# them while "make clean", use CLEANFILES +DISTCLEANFILES = $(bibletime_METASOURCES) + +# make messages.po. Move this one to ../po/ and "make merge" in po +# the -x is for skipping messages already translated in kdelibs +#messages: +# $(XGETTEXT) -C -ki18n -x $(KDEDIR)/include/kde.pot `find . -name \*.h -o -name \*.cpp -o -name \*.cc` -o ../po/bibletime.pot + +install-data-local: + $(mkinstalldirs) $(DESTDIR)$(kde_confdir) + +rpm: dist +noinst_HEADERS = bibletimeinterface.h diff --git a/bibletime/Makefile.in b/bibletime/Makefile.in new file mode 100644 index 0000000..039515e --- /dev/null +++ b/bibletime/Makefile.in @@ -0,0 +1,993 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +bin_PROGRAMS = bibletime$(EXEEXT) +subdir = bibletime +DIST_COMMON = $(include_HEADERS) $(noinst_HEADERS) \ + $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(includedir)" +binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +PROGRAMS = $(bin_PROGRAMS) +am_bibletime_OBJECTS = bibletime_init.$(OBJEXT) \ + bibletime_slots.$(OBJEXT) bibletime.$(OBJEXT) \ + bibletimeapp.$(OBJEXT) main.$(OBJEXT) bibletime_dcop.$(OBJEXT) +#>- bibletime_OBJECTS = $(am_bibletime_OBJECTS) +#>+ 7 +bibletime_final_OBJECTS = bibletime.all_cpp.o +bibletime_nofinal_OBJECTS = bibletime_init.$(OBJEXT) \ + bibletime_slots.$(OBJEXT) bibletime.$(OBJEXT) \ + bibletimeapp.$(OBJEXT) main.$(OBJEXT) bibletime_dcop.$(OBJEXT) bibletimeinterface_skel.$(OBJEXT)\ +bibletime.moc.o +@KDE_USE_FINAL_FALSE@bibletime_OBJECTS = $(bibletime_nofinal_OBJECTS) +@KDE_USE_FINAL_TRUE@bibletime_OBJECTS = $(bibletime_final_OBJECTS) +am__DEPENDENCIES_1 = +bibletime_DEPENDENCIES = ./frontend/displaywindow/libdisplaywindow.a \ + ./frontend/display/libdisplay.a \ + ./frontend/keychooser/libkeychooser.a \ + ./frontend/mainindex/libmainindex.a \ + ./frontend/searchdialog/libsearchdialog.a \ + ./frontend/libfrontend.a ./frontend/util/libfrontendutil.a \ + ./backend/libbackend.a ./util/libutil.a $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +#>- bibletime_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ +#>- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ +#>- $(CXXFLAGS) $(bibletime_LDFLAGS) $(LDFLAGS) -o $@ +#>+ 3 +bibletime_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(KDE_CXXFLAGS) $(bibletime_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/admin/depcomp +am__depfiles_maybe = depfiles +#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 2 +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 3 +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +CXXLD = $(CXX) +#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ +#>- $(LDFLAGS) -o $@ +#>+ 3 +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(bibletime_SOURCES) +DIST_SOURCES = $(bibletime_SOURCES) +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +includeHEADERS_INSTALL = $(INSTALL_HEADER) +HEADERS = $(include_HEADERS) $(noinst_HEADERS) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +#>- bibletime_SOURCES = bibletime_init.cpp bibletime_slots.cpp bibletime.cpp \ +#>- bibletimeapp.cpp main.cpp bibletime_dcop.cpp bibletimeinterface.skel +#>+ 2 +bibletime_SOURCES=bibletime_init.cpp bibletime_slots.cpp bibletime.cpp \ + bibletimeapp.cpp main.cpp bibletime_dcop.cpp bibletimeinterface_skel.cpp + +bibletime_LDADD = \ +./frontend/displaywindow/libdisplaywindow.a \ +./frontend/display/libdisplay.a \ +./frontend/keychooser/libkeychooser.a \ +./frontend/mainindex/libmainindex.a \ +./frontend/searchdialog/libsearchdialog.a \ +./frontend/libfrontend.a \ +./frontend/util/libfrontendutil.a \ +./backend/libbackend.a \ +./util/libutil.a \ +-lXext \ +$(LIB_QT) \ +$(LIB_KDECORE) \ +$(LIB_KDEUI) \ +-lkdeprint \ +$(LIB_KFILE) \ +$(LIB_KHTML) \ +$(LIB_X11) \ +$(LIB_SWORD) \ +$(LIB_CLUCENE) \ +$(LIBSOCKET) + +SUBDIRS = display-templates backend frontend xml pics util +all_headers = bibletime.h bibletimeapp.h +include_HEADERS = bibletimeinterface.h +EXTRA_DIST = $(bibletime_SOURCES) $(all_headers) + +# this 10 paths are KDE specific. Use them: +# kde_htmldir Where your docs should go to. (contains lang subdirs) +# kde_appsdir Where your application file (.kdelnk) should go to. +# kde_icondir Where your icon should go to. +# kde_minidir Where your mini icon should go to. +# kde_datadir Where you install application data. (Use a subdir) +# kde_locale Where translation files should go to.(contains lang subdirs) +# kde_cgidir Where cgi-bin executables should go to. +# kde_confdir Where config files should go to. +# kde_mimedir Where mimetypes should go to. +# kde_toolbardir Where general toolbar icons should go to. +# kde_wallpaperdir Where general wallpapers should go to. + +# set the include path for X, qt, KDE and Sword +INCLUDES = $(all_includes) +#>- bibletime_METASOURCES = AUTO + +# the library search path. +bibletime_LDFLAGS = $(BT_LDFLAGS) $(all_libraries) $(KDE_RPATH) + +# them while "make clean", use CLEANFILES +DISTCLEANFILES = $(bibletime_METASOURCES) +noinst_HEADERS = bibletimeinterface.h +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(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) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ + 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 +bibletime$(EXEEXT): $(bibletime_OBJECTS) $(bibletime_DEPENDENCIES) + @rm -f bibletime$(EXEEXT) + $(bibletime_LINK) $(bibletime_OBJECTS) $(bibletime_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bibletime.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bibletime_dcop.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bibletime_init.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bibletime_slots.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bibletimeapp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-includeHEADERS: $(include_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" + @list='$(include_HEADERS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ + $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + done + +uninstall-includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(include_HEADERS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ + rm -f "$(DESTDIR)$(includedir)/$$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): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(PROGRAMS) $(HEADERS) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(includedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-metasources clean-idl clean-bcheck clean-final clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: install-data-local install-includeHEADERS + +install-dvi: install-dvi-recursive + +install-exec-am: install-binPROGRAMS + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-binPROGRAMS \ + clean-generic clean-libtool ctags ctags-recursive distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-binPROGRAMS install-data \ + install-data-am install-data-local install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-includeHEADERS install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am \ + uninstall-binPROGRAMS uninstall-includeHEADERS + + +# make messages.po. Move this one to ../po/ and "make merge" in po +# the -x is for skipping messages already translated in kdelibs +#messages: +# $(XGETTEXT) -C -ki18n -x $(KDEDIR)/include/kde.pot `find . -name \*.h -o -name \*.cpp -o -name \*.cc` -o ../po/bibletime.pot + +install-data-local: + $(mkinstalldirs) $(DESTDIR)$(kde_confdir) + +rpm: dist +# 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: + +#>+ 5 +bibletimeinterface.kidl: $(srcdir)/bibletimeinterface.h $(DCOP_DEPENDENCIES) + $(DCOPIDL) $(srcdir)/bibletimeinterface.h > bibletimeinterface.kidl || ( rm -f bibletimeinterface.kidl ; false ) +bibletimeinterface_skel.cpp: bibletimeinterface.kidl + $(DCOPIDL2CPP) --c++-suffix cpp --no-signals --no-stub bibletimeinterface.kidl + +#>+ 3 +bibletime.moc.cpp: $(srcdir)/bibletime.h + $(MOC) $(srcdir)/bibletime.h -o bibletime.moc.cpp + +#>+ 2 +mocs: bibletime.moc.cpp + +#>+ 3 +clean-metasources: + -rm -f bibletime.moc.cpp + +#>+ 2 +KDE_DIST=Makefile.in bibletime.h Makefile.am bibletimeapp.h + +#>+ 4 +clean-idl: + -rm -f \ + bibletimeinterface_skel.cpp bibletimeinterface_skel.h bibletimeinterface.kidl + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in $(include_HEADERS) ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 11 +bibletime.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/bibletime_init.cpp $(srcdir)/bibletime_slots.cpp $(srcdir)/bibletime.cpp $(srcdir)/bibletimeapp.cpp $(srcdir)/main.cpp $(srcdir)/bibletime_dcop.cpp bibletimeinterface_skel.cpp bibletime.moc.cpp + @echo 'creating bibletime.all_cpp.cpp ...'; \ + rm -f bibletime.all_cpp.files bibletime.all_cpp.final; \ + echo "#define KDE_USE_FINAL 1" >> bibletime.all_cpp.final; \ + for file in bibletime_init.cpp bibletime_slots.cpp bibletime.cpp bibletimeapp.cpp main.cpp bibletime_dcop.cpp bibletimeinterface_skel.cpp bibletime.moc.cpp ; do \ + echo "#include \"$$file\"" >> bibletime.all_cpp.files; \ + test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> bibletime.all_cpp.final; \ + done; \ + cat bibletime.all_cpp.final bibletime.all_cpp.files > bibletime.all_cpp.cpp; \ + rm -f bibletime.all_cpp.final bibletime.all_cpp.files + +#>+ 3 +clean-final: + -rm -f bibletime.all_cpp.cpp + +#>+ 3 +final: + $(MAKE) bibletime_OBJECTS="$(bibletime_final_OBJECTS)" all-am + +#>+ 3 +final-install: + $(MAKE) bibletime_OBJECTS="$(bibletime_final_OBJECTS)" install-am + +#>+ 3 +no-final: + $(MAKE) bibletime_OBJECTS="$(bibletime_nofinal_OBJECTS)" all-am + +#>+ 3 +no-final-install: + $(MAKE) bibletime_OBJECTS="$(bibletime_nofinal_OBJECTS)" install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/backend/Makefile.am b/bibletime/backend/Makefile.am new file mode 100644 index 0000000..85624f7 --- /dev/null +++ b/bibletime/backend/Makefile.am @@ -0,0 +1,44 @@ +libbackend_a_METASOURCES = AUTO +noinst_LIBRARIES = libbackend.a + +INCLUDES = $(all_includes) + +libbackend_a_SOURCES = bt_gbfhtml.cpp bt_osishtml.cpp bt_plainhtml.cpp \ + bt_thmlhtml.cpp bt_thmlplain.cpp btstringmgr.cpp cbookdisplay.cpp \ + cchapterdisplay.cpp cdisplayrendering.cpp cdisplaytemplatemgr.cpp centrydisplay.cpp \ + chtmlexportrendering.cpp clanguagemgr.cpp cplaintextexportrendering.cpp \ + creferencemanager.cpp cswordbackend.cpp cswordbiblemoduleinfo.cpp cswordbookmoduleinfo.cpp \ + cswordcommentarymoduleinfo.cpp cswordkey.cpp cswordldkey.cpp cswordlexiconmoduleinfo.cpp \ + cswordmoduleinfo.cpp cswordmodulesearch.cpp cswordtreekey.cpp cswordversekey.cpp \ + ctextrendering.cpp osismorphsegmentation.cpp + +all_headers = cswordbiblemoduleinfo.h \ +cswordcommentarymoduleinfo.h \ +cswordlexiconmoduleinfo.h \ +cswordkey.h \ +cswordversekey.h \ +cswordldkey.h \ +cswordbackend.h \ +cswordmoduleinfo.h \ +cswordmodulesearch.h \ +creferencemanager.h \ +cswordbookmoduleinfo.h \ +cswordtreekey.h \ +bt_thmlhtml.h \ +bt_osishtml.h \ +bt_gbfhtml.h \ +bt_plainhtml.h \ +bt_thmlplain.h \ +centrydisplay.h \ +clanguagemgr.h \ +cdisplaytemplatemgr.h \ +ctextrendering.h \ +btstringmgr.h \ +cbookdisplay.h \ +cchapterdisplay.h \ +chtmlexportrendering.h \ +cplaintextexportrendering.h \ +cdisplayrendering.h \ +osismorphsegmentation.h + +EXTRA_DIST = $(libbackend_a_SOURCES) $(all_headers) diff --git a/bibletime/backend/Makefile.in b/bibletime/backend/Makefile.in new file mode 100644 index 0000000..3187253 --- /dev/null +++ b/bibletime/backend/Makefile.in @@ -0,0 +1,794 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/backend +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) +ARFLAGS = cru +libbackend_a_AR = $(AR) $(ARFLAGS) +libbackend_a_LIBADD = +am_libbackend_a_OBJECTS = bt_gbfhtml.$(OBJEXT) bt_osishtml.$(OBJEXT) \ + bt_plainhtml.$(OBJEXT) bt_thmlhtml.$(OBJEXT) \ + bt_thmlplain.$(OBJEXT) btstringmgr.$(OBJEXT) \ + cbookdisplay.$(OBJEXT) cchapterdisplay.$(OBJEXT) \ + cdisplayrendering.$(OBJEXT) cdisplaytemplatemgr.$(OBJEXT) \ + centrydisplay.$(OBJEXT) chtmlexportrendering.$(OBJEXT) \ + clanguagemgr.$(OBJEXT) cplaintextexportrendering.$(OBJEXT) \ + creferencemanager.$(OBJEXT) cswordbackend.$(OBJEXT) \ + cswordbiblemoduleinfo.$(OBJEXT) cswordbookmoduleinfo.$(OBJEXT) \ + cswordcommentarymoduleinfo.$(OBJEXT) cswordkey.$(OBJEXT) \ + cswordldkey.$(OBJEXT) cswordlexiconmoduleinfo.$(OBJEXT) \ + cswordmoduleinfo.$(OBJEXT) cswordmodulesearch.$(OBJEXT) \ + cswordtreekey.$(OBJEXT) cswordversekey.$(OBJEXT) \ + ctextrendering.$(OBJEXT) osismorphsegmentation.$(OBJEXT) +#>- libbackend_a_OBJECTS = $(am_libbackend_a_OBJECTS) +#>+ 17 +libbackend_a_final_OBJECTS = libbackend_a.all_cpp.o +libbackend_a_nofinal_OBJECTS = bt_gbfhtml.$(OBJEXT) bt_osishtml.$(OBJEXT) \ + bt_plainhtml.$(OBJEXT) bt_thmlhtml.$(OBJEXT) \ + bt_thmlplain.$(OBJEXT) btstringmgr.$(OBJEXT) \ + cbookdisplay.$(OBJEXT) cchapterdisplay.$(OBJEXT) \ + cdisplayrendering.$(OBJEXT) cdisplaytemplatemgr.$(OBJEXT) \ + centrydisplay.$(OBJEXT) chtmlexportrendering.$(OBJEXT) \ + clanguagemgr.$(OBJEXT) cplaintextexportrendering.$(OBJEXT) \ + creferencemanager.$(OBJEXT) cswordbackend.$(OBJEXT) \ + cswordbiblemoduleinfo.$(OBJEXT) cswordbookmoduleinfo.$(OBJEXT) \ + cswordcommentarymoduleinfo.$(OBJEXT) cswordkey.$(OBJEXT) \ + cswordldkey.$(OBJEXT) cswordlexiconmoduleinfo.$(OBJEXT) \ + cswordmoduleinfo.$(OBJEXT) cswordmodulesearch.$(OBJEXT) \ + cswordtreekey.$(OBJEXT) cswordversekey.$(OBJEXT) \ + ctextrendering.$(OBJEXT) osismorphsegmentation.$(OBJEXT) +@KDE_USE_FINAL_FALSE@libbackend_a_OBJECTS = $(libbackend_a_nofinal_OBJECTS) +@KDE_USE_FINAL_TRUE@libbackend_a_OBJECTS = $(libbackend_a_final_OBJECTS) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/admin/depcomp +am__depfiles_maybe = depfiles +#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 2 +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 3 +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +CXXLD = $(CXX) +#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ +#>- $(LDFLAGS) -o $@ +#>+ 3 +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libbackend_a_SOURCES) +DIST_SOURCES = $(libbackend_a_SOURCES) +ETAGS = etags +CTAGS = ctags +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +#>- libbackend_a_METASOURCES = AUTO +noinst_LIBRARIES = libbackend.a +INCLUDES = $(all_includes) +libbackend_a_SOURCES = bt_gbfhtml.cpp bt_osishtml.cpp bt_plainhtml.cpp \ + bt_thmlhtml.cpp bt_thmlplain.cpp btstringmgr.cpp cbookdisplay.cpp \ + cchapterdisplay.cpp cdisplayrendering.cpp cdisplaytemplatemgr.cpp centrydisplay.cpp \ + chtmlexportrendering.cpp clanguagemgr.cpp cplaintextexportrendering.cpp \ + creferencemanager.cpp cswordbackend.cpp cswordbiblemoduleinfo.cpp cswordbookmoduleinfo.cpp \ + cswordcommentarymoduleinfo.cpp cswordkey.cpp cswordldkey.cpp cswordlexiconmoduleinfo.cpp \ + cswordmoduleinfo.cpp cswordmodulesearch.cpp cswordtreekey.cpp cswordversekey.cpp \ + ctextrendering.cpp osismorphsegmentation.cpp + +all_headers = cswordbiblemoduleinfo.h \ +cswordcommentarymoduleinfo.h \ +cswordlexiconmoduleinfo.h \ +cswordkey.h \ +cswordversekey.h \ +cswordldkey.h \ +cswordbackend.h \ +cswordmoduleinfo.h \ +cswordmodulesearch.h \ +creferencemanager.h \ +cswordbookmoduleinfo.h \ +cswordtreekey.h \ +bt_thmlhtml.h \ +bt_osishtml.h \ +bt_gbfhtml.h \ +bt_plainhtml.h \ +bt_thmlplain.h \ +centrydisplay.h \ +clanguagemgr.h \ +cdisplaytemplatemgr.h \ +ctextrendering.h \ +btstringmgr.h \ +cbookdisplay.h \ +cchapterdisplay.h \ +chtmlexportrendering.h \ +cplaintextexportrendering.h \ +cdisplayrendering.h \ +osismorphsegmentation.h + +EXTRA_DIST = $(libbackend_a_SOURCES) $(all_headers) +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/backend/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/backend/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/backend/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/backend/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/backend/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +libbackend.a: $(libbackend_a_OBJECTS) $(libbackend_a_DEPENDENCIES) + -rm -f libbackend.a + $(libbackend_a_AR) libbackend.a $(libbackend_a_OBJECTS) $(libbackend_a_LIBADD) + $(RANLIB) libbackend.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bt_gbfhtml.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bt_osishtml.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bt_plainhtml.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bt_thmlhtml.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bt_thmlplain.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btstringmgr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cbookdisplay.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cchapterdisplay.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cdisplayrendering.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cdisplaytemplatemgr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/centrydisplay.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chtmlexportrendering.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clanguagemgr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cplaintextexportrendering.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/creferencemanager.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cswordbackend.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cswordbiblemoduleinfo.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cswordbookmoduleinfo.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cswordcommentarymoduleinfo.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cswordkey.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cswordldkey.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cswordlexiconmoduleinfo.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cswordmoduleinfo.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cswordmodulesearch.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cswordtreekey.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cswordversekey.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctextrendering.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/osismorphsegmentation.Po@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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 $(LIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ +#>- mostlyclean-am +#>+ 2 +clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am + +# 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: + +#>+ 2 +KDE_DIST=cswordcommentarymoduleinfo.h clanguagemgr.h cswordmodulesearch.h bt_plainhtml.h ctextrendering.h cswordkey.h bt_gbfhtml.h cswordbiblemoduleinfo.h cswordbookmoduleinfo.h cswordversekey.h cswordtreekey.h bt_thmlhtml.h btstringmgr.h cswordlexiconmoduleinfo.h cplaintextexportrendering.h centrydisplay.h Makefile.in cdisplayrendering.h chtmlexportrendering.h cbookdisplay.h cswordldkey.h cdisplaytemplatemgr.h cchapterdisplay.h cswordmoduleinfo.h bt_osishtml.h bt_thmlplain.h cswordbackend.h osismorphsegmentation.h creferencemanager.h Makefile.am + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/backend/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/backend/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/backend/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 11 +libbackend_a.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/bt_gbfhtml.cpp $(srcdir)/bt_osishtml.cpp $(srcdir)/bt_plainhtml.cpp $(srcdir)/bt_thmlhtml.cpp $(srcdir)/bt_thmlplain.cpp $(srcdir)/btstringmgr.cpp $(srcdir)/cbookdisplay.cpp $(srcdir)/cchapterdisplay.cpp $(srcdir)/cdisplayrendering.cpp $(srcdir)/cdisplaytemplatemgr.cpp $(srcdir)/centrydisplay.cpp $(srcdir)/chtmlexportrendering.cpp $(srcdir)/clanguagemgr.cpp $(srcdir)/cplaintextexportrendering.cpp $(srcdir)/creferencemanager.cpp $(srcdir)/cswordbackend.cpp $(srcdir)/cswordbiblemoduleinfo.cpp $(srcdir)/cswordbookmoduleinfo.cpp $(srcdir)/cswordcommentarymoduleinfo.cpp $(srcdir)/cswordkey.cpp $(srcdir)/cswordldkey.cpp $(srcdir)/cswordlexiconmoduleinfo.cpp $(srcdir)/cswordmoduleinfo.cpp $(srcdir)/cswordmodulesearch.cpp $(srcdir)/cswordtreekey.cpp $(srcdir)/cswordversekey.cpp $(srcdir)/ctextrendering.cpp $(srcdir)/osismorphsegmentation.cpp + @echo 'creating libbackend_a.all_cpp.cpp ...'; \ + rm -f libbackend_a.all_cpp.files libbackend_a.all_cpp.final; \ + echo "#define KDE_USE_FINAL 1" >> libbackend_a.all_cpp.final; \ + for file in bt_gbfhtml.cpp bt_osishtml.cpp bt_plainhtml.cpp bt_thmlhtml.cpp bt_thmlplain.cpp btstringmgr.cpp cbookdisplay.cpp cchapterdisplay.cpp cdisplayrendering.cpp cdisplaytemplatemgr.cpp centrydisplay.cpp chtmlexportrendering.cpp clanguagemgr.cpp cplaintextexportrendering.cpp creferencemanager.cpp cswordbackend.cpp cswordbiblemoduleinfo.cpp cswordbookmoduleinfo.cpp cswordcommentarymoduleinfo.cpp cswordkey.cpp cswordldkey.cpp cswordlexiconmoduleinfo.cpp cswordmoduleinfo.cpp cswordmodulesearch.cpp cswordtreekey.cpp cswordversekey.cpp ctextrendering.cpp osismorphsegmentation.cpp ; do \ + echo "#include \"$$file\"" >> libbackend_a.all_cpp.files; \ + test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libbackend_a.all_cpp.final; \ + done; \ + cat libbackend_a.all_cpp.final libbackend_a.all_cpp.files > libbackend_a.all_cpp.cpp; \ + rm -f libbackend_a.all_cpp.final libbackend_a.all_cpp.files + +#>+ 3 +clean-final: + -rm -f libbackend_a.all_cpp.cpp + +#>+ 3 +final: + $(MAKE) libbackend_a_OBJECTS="$(libbackend_a_final_OBJECTS)" all-am + +#>+ 3 +final-install: + $(MAKE) libbackend_a_OBJECTS="$(libbackend_a_final_OBJECTS)" install-am + +#>+ 3 +no-final: + $(MAKE) libbackend_a_OBJECTS="$(libbackend_a_nofinal_OBJECTS)" all-am + +#>+ 3 +no-final-install: + $(MAKE) libbackend_a_OBJECTS="$(libbackend_a_nofinal_OBJECTS)" install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/backend/bt_gbfhtml.cpp b/bibletime/backend/bt_gbfhtml.cpp new file mode 100644 index 0000000..33d31a9 --- /dev/null +++ b/bibletime/backend/bt_gbfhtml.cpp @@ -0,0 +1,303 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "cswordmoduleinfo.h" +#include "cswordbackend.h" +#include "util/cpointers.h" + +#include "bt_gbfhtml.h" + +//sytsme includes +#include +#include + +//Sword includes +#include + +//Qt includes +#include +#include + +using namespace Filters; + +BT_GBFHTML::BT_GBFHTML() : sword::GBFHTML() { + + setEscapeStringCaseSensitive(true); + setPassThruUnknownEscapeString(true); //the HTML widget will render the HTML escape codes + + removeTokenSubstitute("Rf"); + // addTokenSubstitute("RB", ""); //start of a footnote with embedded text + + addTokenSubstitute("FI", ""); // italics begin + addTokenSubstitute("Fi", ""); + + addTokenSubstitute("FB", ""); // bold begin + addTokenSubstitute("Fb", ""); + + addTokenSubstitute("FR", ""); + addTokenSubstitute("Fr", ""); + + addTokenSubstitute("FU", ""); // underline begin + addTokenSubstitute("Fu", ""); + + addTokenSubstitute("FO", ""); // Old Testament quote begin + addTokenSubstitute("Fo", ""); + + + addTokenSubstitute("FS", ""); // Superscript begin// Subscript begin + addTokenSubstitute("Fs", ""); + + addTokenSubstitute("FV", ""); // Subscript begin + addTokenSubstitute("Fv", ""); + + addTokenSubstitute("TT", "
"); + addTokenSubstitute("Tt", "
"); + + addTokenSubstitute("TS", "
"); + addTokenSubstitute("Ts", "
"); + + //addTokenSubstitute("PP", ""); // poetry begin + //addTokenSubstitute("Pp", ""); + + + addTokenSubstitute("Fn", ""); // font end + addTokenSubstitute("CL", "
"); // new line + addTokenSubstitute("CM", "
"); // paragraph is a non showing comment that can be changed in the front end to

if desired + + addTokenSubstitute("CG", ">"); // literal greater-than sign + addTokenSubstitute("CT", "<"); // literal less-than sign + + addTokenSubstitute("JR", ""); // right align begin + addTokenSubstitute("JC", ""); // center align begin + addTokenSubstitute("JL", ""); // align end +} + +/** No descriptions */ +char BT_GBFHTML::processText(sword::SWBuf& buf, const sword::SWKey * key, const sword::SWModule * module) { + GBFHTML::processText(buf, key, module); + + if (!module->isProcessEntryAttributes()) { + return 1; //no processing should be done, may happen in a search + } + + CSwordModuleInfo* m = CPointers::backend()->findModuleByName( module->Name() ); + + if (m && !(m->has(CSwordModuleInfo::lemmas) || m->has(CSwordModuleInfo::morphTags) || m->has(CSwordModuleInfo::strongNumbers))) { //only parse if the module has strongs or lemmas + return 1; //WARNING: Return alread here + } + + //Am Anfang schuf Gott Himmel und Erde. + //A simple word means: No entry for this word "word" + QString result; + + QString t = QString::fromUtf8(buf.c_str()); + + QRegExp tag("([.,;:]?]*>\\s*)+"); + + QStringList list; + + int lastMatchEnd = 0; + + int pos = tag.search(t,0); + + if (pos == -1) { //no strong or morph code found in this text + return 1; //WARNING: Return already here + } + + //split the text into parts which end with the GBF tag marker for strongs/lemmas + while (pos != -1) { + list.append(t.mid(lastMatchEnd, pos+tag.matchedLength()-lastMatchEnd)); + + lastMatchEnd = pos + tag.matchedLength(); + pos = tag.search(t, pos + tag.matchedLength()); + } + + //append the trailing text to the list. + if (!t.right(t.length() - lastMatchEnd).isEmpty()) { + list.append(t.right(t.length() - lastMatchEnd)); + } + + //list is now a list of words with 1-n Strongs at the end, which belong to this word. + + //now create the necessary HTML in list entries and concat them to the result + tag = QRegExp("]*)>"); + tag.setMinimal(true); + + for (QStringList::iterator it = list.begin(); it != list.end(); ++it) { + QString e = (*it); //current entry to process + //qWarning(e.latin1()); + + //check if there is a word to which the strongs info belongs to. + //If yes, wrap that word with the strongs info + //If not, leave out the strongs info, because it can't be tight to a text + //Comparing the first char with < is not enough, because the tokenReplace is done already + //so there might be html tags already. + const bool textPresent = (e.stripWhiteSpace().remove(QRegExp("[.,;:]")).left(2) != ""); + pos += 7; + + //skip blanks, commas, dots and stuff at the beginning, it doesn't belong to the morph code + QString rep(""); + + hasMorphAttr = isMorph; + hasLemmaAttr = !isMorph; + + int startPos = 0; + QChar c = e[startPos]; + + while ((startPos < pos) && (c.isSpace() || c.isPunct())) { + ++startPos; + + c = e[startPos]; + } + + e.insert( startPos, rep ); + tagAttributeStart = startPos + 6; //to point to the start of the attributes + pos += rep.length(); + } + else { //add the attribute to the existing tag + e.remove(pos, tag.matchedLength()); + + if (tagAttributeStart == -1) { + continue; //nothing valid found + } + + if ((!isMorph && hasLemmaAttr) || (isMorph && hasMorphAttr)) { //we append another attribute value, e.g. 3000 gets 3000|5000 + //search the existing attribute start + QRegExp attrRegExp( isMorph ? "morph=\".+(?=\")" : "lemma=\".+(?=\")" ); + attrRegExp.setMinimal(true); + const int foundPos = e.find(attrRegExp, tagAttributeStart); + + if (foundPos != -1) { + e.insert(foundPos + attrRegExp.matchedLength(), QString("|").append(value)); + pos += value.length() + 1; + + hasLemmaAttr = !isMorph; + hasMorphAttr = isMorph; + } + } + else { //attribute was not yet inserted + QString attr; + attr.setLatin1(isMorph ? "morph" : "lemma").append("=\"").append(value).append("\" "); + + e.insert(tagAttributeStart, attr); + pos += attr.length(); + + hasMorphAttr = isMorph; + hasLemmaAttr = !isMorph; + } + + //tagAttributeStart remains the same + } + + insertedTag = true; + pos = tag.search(e, pos); + } + + result += e; + } + + if (list.count()) { + buf = (const char*)result.utf8(); + } + + return 1; +} + +bool BT_GBFHTML::handleToken(sword::SWBuf &buf, const char *token, sword::BasicFilterUserData *userData) { + if (!substituteToken(buf, token)) { //more than a simple replace + const unsigned int tokenLength = strlen(token); + unsigned long i; + sword::SWBuf value; + + BT_UserData* myUserData = dynamic_cast(userData); + sword::SWModule* myModule = const_cast(myUserData->module); //hack to be able to call stuff like Lang() + + if ( !strncmp(token, "WG", 2) + || !strncmp(token, "WH", 2) + || !strncmp(token, "WT", 2) ) { + buf.append('<'); + buf.append(token); + buf.append('>'); + } + else if (!strncmp(token, "RB", 2)) { + myUserData->hasFootnotePreTag = true; + buf.append(""); + } + else if (!strncmp(token, "RF", 2)) { + //we use several append calls because appendFormatted slows down filtering, which should be fast + + if (myUserData->hasFootnotePreTag) { + // qWarning("inserted footnotepre end"); + buf.append(""); + myUserData->hasFootnotePreTag = false; + } + + buf.append(" Name()); + buf.append('/'); + buf.append(myUserData->key->getShortText()); + buf.append('/'); + buf.append( QString::number(myUserData->swordFootnote++).latin1() ); + buf.append("\">* "); + + userData->suspendTextPassThru = true; + } + else if (!strncmp(token, "Rf", 2)) { //end of footnote + userData->suspendTextPassThru = false; + } + else if (!strncmp(token, "FN", 2)) { //the end tag is inserted in addTokenSubsitute + buf.append(""); + } + else if (!strncmp(token, "CA", 2)) { // ASCII value + buf.append( (char)atoi(&token[2]) ); + } + else { + return GBFHTML::handleToken(buf, token, userData); + } + } + + return true; +} diff --git a/bibletime/backend/bt_gbfhtml.h b/bibletime/backend/bt_gbfhtml.h new file mode 100644 index 0000000..4132047 --- /dev/null +++ b/bibletime/backend/bt_gbfhtml.h @@ -0,0 +1,60 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +/* $Header: /cvsroot/bibletime/bibletime/bibletime/backend/bt_gbfhtml.h,v 1.25 2007/06/29 22:47:14 joachim Exp $ */ +/* $Revision: 1.25 $ */ + +#ifndef BT_GBFHTML_H +#define BT_GBFHTML_H + +//Backend + +//Sword includes +#include +#include +#include +#include + +namespace Filters { + + /** GBF to HTML filter, + * This filter converts GBF Text into HTML + */ + +class BT_GBFHTML : public sword::GBFHTML/*, protected CFilterTool */ + { + +protected: + +class BT_UserData : public sword::GBFHTML::MyUserData { + +public: +BT_UserData(const sword::SWModule *module, const sword::SWKey *key) : sword::GBFHTML::MyUserData(module, key) { + swordFootnote = 1; + hasFootnotePreTag = false; + } + + short unsigned int swordFootnote; + }; + + virtual sword::BasicFilterUserData *createUserData(const sword::SWModule* module, const sword::SWKey* key) { + return new BT_UserData(module, key); + } + +public: + BT_GBFHTML(); + virtual bool handleToken(sword::SWBuf &buf, const char *token, sword::BasicFilterUserData *userData); + virtual char processText(sword::SWBuf& buf, const sword::SWKey*, const sword::SWModule * = 0); + }; + +} + +#endif diff --git a/bibletime/backend/bt_osishtml.cpp b/bibletime/backend/bt_osishtml.cpp new file mode 100644 index 0000000..efe8f3f --- /dev/null +++ b/bibletime/backend/bt_osishtml.cpp @@ -0,0 +1,621 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include +#include "bt_osishtml.h" +#include "versekey.h" + +#include "clanguagemgr.h" +#include "creferencemanager.h" +#include "cswordmoduleinfo.h" +#include "frontend/cbtconfig.h" +#include "util/cpointers.h" + +#include + +//Sword includes +#include +#include +#include + +//KDE includes +#include + +//Qt includes +#include + +using sword::SWBuf; +using sword::XMLTag; + +using namespace Filters; + +BT_OSISHTML::BT_OSISHTML() : sword::OSISHTMLHREF() { + setPassThruUnknownEscapeString(true); //the HTML widget will render the HTML escape codes + + addTokenSubstitute("inscription", ""); + addTokenSubstitute("/inscription",""); + + addTokenSubstitute("mentioned", ""); + addTokenSubstitute("/mentioned", ""); + +// addTokenSubstitute("divineName", ""); +// addTokenSubstitute("/divineName", ""); + + //TODO Move that down to the real tag handling, segs without the type morph would generate incorrect markup, as the end span is always inserted +// addTokenSubstitute("seg type=\"morph\"", ""); +// addTokenSubstitute("/seg", ""); + + // OSIS tables + addTokenSubstitute("table", ""); + addTokenSubstitute("/table", "
"); + addTokenSubstitute("row", ""); + addTokenSubstitute("/row", ""); + addTokenSubstitute("cell", ""); + addTokenSubstitute("/cell", ""); + +} + +bool BT_OSISHTML::handleToken(sword::SWBuf &buf, const char *token, sword::BasicFilterUserData *userData) { + // manually process if it wasn't a simple substitution + + if (!substituteToken(buf, token)) { + BT_UserData* myUserData = dynamic_cast(userData); + sword::SWModule* myModule = const_cast(myUserData->module); //hack + + XMLTag tag(token); + // qWarning("found %s", token); + const bool osisQToTick = ((!userData->module->getConfigEntry("OSISqToTick")) || (strcmp(userData->module->getConfigEntry("OSISqToTick"), "false"))); + + if (!tag.getName()) { + return false; + } + + //

tag + if (!strcmp(tag.getName(), "div")) { + //handle intro + + if ((!tag.isEmpty()) && (!tag.isEndTag())) { //start tag + SWBuf type( tag.getAttribute("type") ); + + if (type == "introduction") { + buf.append("
"); + } + else if (type == "chapter") { + buf.append("
"); //don't open a div here, that would lead to a broken XML structure + } + else { + buf.append("
"); + } + } + else if (tag.isEndTag()) { //end tag + buf.append("
"); + } + } + else if (!strcmp(tag.getName(), "w")) { + if ((!tag.isEmpty()) && (!tag.isEndTag())) { //start tag + const char *attrib; + const char *val; + + XMLTag outTag("span"); + SWBuf attrValue; + + if ((attrib = tag.getAttribute("xlit"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + outTag.setAttribute("xlit", val); + } + + if ((attrib = tag.getAttribute("gloss"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + outTag.setAttribute("gloss", val); + } + + if ((attrib = tag.getAttribute("lemma"))) { + char splitChar = '|'; + const int countSplit1 = tag.getAttributePartCount("lemma", '|'); + const int countSplit2 = tag.getAttributePartCount("lemma", ' '); //TODO: not allowed, remove soon + int count = 0; + + if (countSplit1 > countSplit2) { //| split char + splitChar = '|'; //TODO: not allowed, remove soon + count = countSplit1; + } + else { + splitChar = ' '; + count = countSplit2; + } + + int i = (count > 1) ? 0 : -1; // -1 for whole value cuz it's faster, but does the same thing as 0 + attrValue = ""; + + do { + if (attrValue.length()) { + attrValue.append( '|' ); + } + + attrib = tag.getAttribute("lemma", i, splitChar); + + if (i < 0) { // to handle our -1 condition + i = 0; + } + + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + + attrValue.append(val); + } + while (++i < count); + + if (attrValue.length()) { + outTag.setAttribute("lemma", attrValue.c_str()); + } + } + + if ((attrib = tag.getAttribute("morph"))) { + char splitChar = '|'; + const int countSplit1 = tag.getAttributePartCount("morph", '|'); + const int countSplit2 = tag.getAttributePartCount("morph", ' '); //TODO: not allowed, remove soon + int count = 0; + + if (countSplit1 > countSplit2) { //| split char + splitChar = '|'; + count = countSplit1; + } + else { + splitChar = ' '; + count = countSplit2; + } + + int i = (count > 1) ? 0 : -1; // -1 for whole value cuz it's faster, but does the same thing as 0 + + attrValue = ""; + + do { + if (attrValue.length()) { + attrValue.append('|'); + } + + attrib = tag.getAttribute("morph", i, splitChar); + + if (i < 0) { + i = 0; // to handle our -1 condition + } + + val = strchr(attrib, ':'); + + if (val) { //the prefix gives the modulename + //check the prefix + if (!strncmp("robinson:", attrib, 9)) { //robinson + attrValue.append( "Robinson:" ); //work is not the same as Sword's module name + attrValue.append( val+1 ); + } + //strongs is handled by BibleTime + /*else if (!strncmp("strongs", attrib, val-atrrib)) { + attrValue.append( !strncmp(attrib, "x-", 2) ? attrib+2 : attrib ); + }*/ + else { + attrValue.append( !strncmp(attrib, "x-", 2) ? attrib+2 : attrib ); + } + } + else { //no prefix given + const bool skipFirst = ((val[0] == 'T') && ((val[1] == 'H') || (val[1] == 'H'))); + attrValue.append( skipFirst ? val+1 : val ); + } + } + while (++i < count); + + if (attrValue.length()) { + outTag.setAttribute("morph", attrValue.c_str()); + } + } + + if ((attrib = tag.getAttribute("POS"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + outTag.setAttribute("pos", val); + } + + buf.append( outTag.toString() ); + } + else if (tag.isEndTag()) { // end or empty tag + buf.append(""); + } + } + + // tag + else if (!strcmp(tag.getName(), "note")) { + if (!tag.isEndTag()) { //start tag + const SWBuf type( tag.getAttribute("type") ); + + if (type == "crossReference") { //note containing cross references + myUserData->inCrossrefNote = true; + myUserData->noteType = BT_UserData::CrossReference; + myUserData->swordFootnote++; // cross refs count as notes, too + + /* //get the refList value of the right entry attribute + AttributeList notes = myModule->getEntryAttributes()["Footnote"]; + bool foundNote = false; + + SWBuf id( tag.getAttribute("osisID") ); + SWBuf refList; + + for (AttributeList::iterator list_it = notes.begin(); (list_it != notes.end()) && !foundNote; ++list_it ) { + for (AttributeValue::iterator val_it = list_it->second.begin(); (val_it != list_it->second.end()) && !foundNote; ++val_it ) { + if ((val_it->first == "osisID") && (val_it->second == id)) { + foundNote = true; //this break the loop + refList = list_it->second["refList"]; + } + } + } + + if (refList.length()) { + buf.append(" "); + + myUserData->noteType = BT_UserData::CrossReference; + } + else { + myUserData->noteType = BT_UserData::Unknown; + }*/ + + buf.append(""); + } + + /* else if (type == "explanation") { + } + */ + else if ((type == "strongsMarkup") || (type == "x-strongsMarkup")) { + /** + * leave strong's markup notes out, in the future we'll probably have + * different option filters to turn different note types on or off + */ + + myUserData->suspendTextPassThru = true; + myUserData->noteType = BT_UserData::StrongsMarkup; + } + else if (type == "alternative") { + // qWarning("found alternative"); + // buf.append(" "); + myUserData->noteType = BT_UserData::Alternative; + myUserData->suspendTextPassThru = true; + myUserData->swordFootnote++; // count as notes, too + } + else { + // qWarning("found note in %s", myUserData->key->getShortText()); + buf.append(" Name()); + buf.append('/'); + buf.append(myUserData->key->getShortText()); + buf.append('/'); + buf.append( QString::number(myUserData->swordFootnote++).latin1() ); //inefficient + + const SWBuf n = tag.getAttribute("n"); + + buf.append("\">"); + buf.append( (n.length() > 0) ? n.c_str() : "*" ); + buf.append(" "); + + myUserData->noteType = BT_UserData::Footnote; + myUserData->suspendTextPassThru = true; + } + } + else { //if (tag.isEndTag()) { + Q_ASSERT(myUserData->noteType != BT_UserData::Unknown); + + if (myUserData->noteType == BT_UserData::CrossReference) { + buf.append(" "); +// myUserData->suspendTextPassThru = false; + myUserData->inCrossrefNote = false; + } + else if (myUserData->noteType == BT_UserData::Alternative) { + buf.append(" lastTextNode); + buf.append("\" title=\""); + buf.append((const char*)i18n("Alternative text").utf8()); + buf.append("\" />"); + } + + myUserData->noteType = BT_UserData::Unknown; + myUserData->suspendTextPassThru = false; + } + } + // The

paragraph tag is handled by OSISHTMLHref + else if (!strcmp(tag.getName(), "reference")) { // tag + + if (!tag.isEndTag() && !tag.isEmpty()) { + QString ref( tag.getAttribute("osisRef") ); + QString hrefRef( ref ); + Q_ASSERT(!ref.isEmpty()); + + if (!ref.isEmpty()) { + //find out the mod, using the current module makes sense if it's a bible or commentary because the refs link into a bible by default. + //If the osisRef is something like "ModuleID:key comes here" then the + // modulename is given, so we'll use that one + + CSwordModuleInfo* mod = CPointers::backend()->findSwordModuleByPointer(myModule); + Q_ASSERT(mod); + if (!mod || (mod->type() != CSwordModuleInfo::Bible + && mod->type() != CSwordModuleInfo::Commentary)) { + + mod = CBTConfig::get( CBTConfig::standardBible ); + } + + Q_ASSERT(mod); + + //if the osisRef like "GerLut:key" contains a module, use that + int pos = ref.find(":"); + + if ((pos >= 0) && ref.at(pos-1).isLetter() && ref.at(pos+1).isLetter()) { + QString newModuleName = ref.left(pos); + hrefRef = ref.mid(pos+1); + + if (CPointers::backend()->findModuleByName(newModuleName)) { + mod = CPointers::backend()->findModuleByName(newModuleName); + } + } + + CReferenceManager::ParseOptions options; + options.refBase = QString::fromUtf8(myUserData->key->getText()); + options.refDestinationModule = QString(mod->name()); + options.sourceLanguage = QString(myModule->Lang()); + options.destinationLanguage = QString("en"); + + buf.append("name(), + CReferenceManager::parseVerseReference(hrefRef, options), + CReferenceManager::typeFromModule(mod->type()) + ).utf8() + ); + buf.append("\" crossrefs=\""); + buf.append((const char*)CReferenceManager::parseVerseReference(ref, options).utf8()); //ref must contain the osisRef module marker if there was any + buf.append("\">"); + } + } + else if (tag.isEndTag()) { + buf.append(""); + } + else { // empty reference marker + // -- what should we do? nothing for now. + } + } + + // is handled by OSISHTMLHref + // + else if (!strcmp(tag.getName(), "title")) { + if (!tag.isEndTag() && !tag.isEmpty()) { + buf.append("<div class=\"sectiontitle\">"); + } + else if (tag.isEndTag()) { + buf.append("</div>"); + } + else { // empty title marker + // what to do? is this even valid? + buf.append("<br/>"); + } + } + + // <hi> highlighted text + else if (!strcmp(tag.getName(), "hi")) { + const SWBuf type = tag.getAttribute("type"); + + if ((!tag.isEndTag()) && (!tag.isEmpty())) { + if (type == "bold") { + buf.append("<span class=\"bold\">"); + } + else if (type == "illuminated") { + buf.append("<span class=\"illuminated\">"); + } + else if (type == "italic") { + buf.append("<span class=\"italic\">"); + } + else if (type == "line-through") { + buf.append("<span class=\"line-through\">"); + } + else if (type == "normal") { + buf.append("<span class=\"normal\">"); + } + else if (type == "small-caps") { + buf.append("<span class=\"small-caps\">"); + } + else if (type == "underline") { + buf.append("<span class=\"underline\">"); + } + else { + buf.append("<span>"); //don't break markup, </span> is inserted later + } + } + else if (tag.isEndTag()) { //all hi replacements are html spans + buf.append("</span>"); + } + } + + //name + else if (!strcmp(tag.getName(), "name")) { + const SWBuf type = tag.getAttribute("type"); + + if ((!tag.isEndTag()) && (!tag.isEmpty())) { + if (type == "geographic") { + buf.append("<span class=\"name\"><span class=\"geographic\">"); + } + else if (type == "holiday") { + buf.append("<span class=\"name\"><span class=\"holiday\">"); + } + else if (type == "nonhuman") { + buf.append("<span class=\"name\"><span class=\"nonhuman\">"); + } + else if (type == "person") { + buf.append("<span class=\"name\"><span class=\"person\">"); + } + else if (type == "ritual") { + buf.append("<span class=\"name\"><span class=\"ritual\">"); + } + else { + buf.append("<span class=\"name\"><span>"); + } + } + else if (tag.isEndTag()) { //all hi replacements are html spans + buf.append("</span></span> "); + } + } + else if (!strcmp(tag.getName(), "transChange")) { + SWBuf type( tag.getAttribute("type") ); + + if ( !type.length() ) { + type = tag.getAttribute("changeType"); + } + + if ((!tag.isEndTag()) && (!tag.isEmpty())) { + if (type == "added") { + buf.append("<span class=\"transchange\" title=\""); + buf.append((const char*)i18n("Added text").utf8()); + buf.append("\"><span class=\"added\">"); + } + else if (type == "amplified") { + buf.append("<span class=\"transchange\"><span class=\"amplified\">"); + } + else if (type == "changed") { + buf.append("<span class=\"transchange\"><span class=\"changed\">"); + } + else if (type == "deleted") { + buf.append("<span class=\"transchange\"><span class=\"deleted\">"); + } + else if (type == "moved") { + buf.append("<span class=\"transchange\"><span class=\"moved\">"); + } + else if (type == "tenseChange") { + buf.append("<span class=\"transchange\"><span class=\"tenseChange\">"); + } + else { + buf.append("<span class=\"transchange\"><span>"); + } + } + else if (tag.isEndTag()) { //all hi replacements are html spans + buf.append("</span></span>"); + } + } + else if (!strcmp(tag.getName(), "p")) { + if (tag.isEmpty()) { + buf.append("<p/>"); + } + } + + // <q> quote + else if (!strcmp(tag.getName(), "q")) { + SWBuf type = tag.getAttribute("type"); + SWBuf who = tag.getAttribute("who"); + const char *lev = tag.getAttribute("level"); + int level = (lev) ? atoi(lev) : 1; + + if ((!tag.isEndTag()) && (!tag.isEmpty())) { + myUserData->quote.who = who; + + if(osisQToTick) //alternate " and ' + buf.append((level % 2) ? '\"' : '\''); + + if (who == "Jesus") { + buf.append("<span class=\"jesuswords\">"); + } + } + else if (tag.isEndTag()) { + if (myUserData->quote.who == "Jesus") { + buf.append("</span>"); + } + + if (osisQToTick) { //alternate " and ' + buf.append((level % 2) ? '\"' : '\''); + } + + myUserData->quote.who = ""; + } + } + + // abbr tag + else if (!strcmp(tag.getName(), "abbr")) { + if (!tag.isEndTag() && !tag.isEmpty()) { + const SWBuf expansion = tag.getAttribute("expansion"); + + buf.append("<span class=\"abbreviation\" expansion=\""); + buf.append(expansion); + buf.append("\">"); + } + else if (tag.isEndTag()) { + buf.append("</span>"); + } + } + + // <milestone> tag + else if (!strcmp(tag.getName(), "milestone")) { + const SWBuf type = tag.getAttribute("type"); + + if ((type == "screen") || (type == "line")) {//line break + buf.append("<br/>"); + userData->supressAdjacentWhitespace = true; + } + else if (type == "x-p") { //e.g. occurs in the KJV2006 module + //buf.append("<br/>"); + const SWBuf marker = tag.getAttribute("marker"); + if (marker.length() > 0) { + buf.append(marker); + } + } + } + //seg tag + else if (!strcmp(tag.getName(), "seg")) { + if (!tag.isEndTag() && !tag.isEmpty()) { + + const SWBuf type = tag.getAttribute("type"); + + if (type == "morph") {//line break + //This code is for WLC and MORPH (WHI) + XMLTag outTag("span"); + outTag.setAttribute("class", "morphSegmentation"); + const char* attrValue; + //Transfer the values to the span + //Problem: the data is in hebrew/aramaic, how to encode in HTML/BibleTime? + if ((attrValue = tag.getAttribute("lemma"))) outTag.setAttribute("lemma", attrValue); + if ((attrValue = tag.getAttribute("morph"))) outTag.setAttribute("morph", attrValue); + if ((attrValue = tag.getAttribute("homonym"))) outTag.setAttribute("homonym", attrValue); + + buf.append(outTag.toString()); + //buf.append("<span class=\"morphSegmentation\">"); + } + else{ + buf.append("<span>"); + } + } + else { // seg end tag + buf.append("</span>"); + } + //qWarning(QString("handled <seg> token. result: %1").arg(buf.c_str()).latin1()); + } + + //divine name, don't use simple tag replacing because it may have attributes + else if (!strcmp(tag.getName(), "divineName")) { + if (!tag.isEndTag()) { + buf.append("<span class=\"name\"><span class=\"divine\">"); + } + else { //all hi replacements are html spans + buf.append("</span></span>"); + } + } + + else { //all tokens handled by OSISHTMLHref will run through the filter now + return sword::OSISHTMLHREF::handleToken(buf, token, userData); + } + } + + return false; +} diff --git a/bibletime/backend/bt_osishtml.h b/bibletime/backend/bt_osishtml.h new file mode 100644 index 0000000..22e5b81 --- /dev/null +++ b/bibletime/backend/bt_osishtml.h @@ -0,0 +1,66 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef BT_OSISHTML_H +#define BT_OSISHTML_H + +//Sword includes +#include <osishtmlhref.h> + +namespace Filters { + + /** BibleTime's OSIS to HTMl filter. + * This filter works on OSIS tags and outputs HTML in the structure supported by BibleTime. + */ + +class BT_OSISHTML : public sword::OSISHTMLHREF { + +protected: + +class BT_UserData : public sword::OSISHTMLHREF::MyUserData { + +public: +BT_UserData(const sword::SWModule *module, const sword::SWKey *key) : sword::OSISHTMLHREF::MyUserData(module, key) { + noteType = Unknown; + swordFootnote = 1; + inCrossrefNote = false; + } + + unsigned short int swordFootnote; + bool inCrossrefNote; + + enum NoteType { + Unknown, + Alternative, + CrossReference, + Footnote, + StrongsMarkup + } noteType; + + struct { + sword::SWBuf who; + } + + quote; + }; + + virtual sword::BasicFilterUserData *createUserData(const sword::SWModule* module, const sword::SWKey* key) { + return new BT_UserData(module, key); + } + +public: + BT_OSISHTML(); + virtual bool handleToken(sword::SWBuf &buf, const char *token, sword::BasicFilterUserData *userData); + }; + +} //end of Filters namespace + +#endif diff --git a/bibletime/backend/bt_plainhtml.cpp b/bibletime/backend/bt_plainhtml.cpp new file mode 100644 index 0000000..703362a --- /dev/null +++ b/bibletime/backend/bt_plainhtml.cpp @@ -0,0 +1,92 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "cswordmoduleinfo.h" +#include "cswordbackend.h" +#include "util/cpointers.h" + +#include "bt_plainhtml.h" + +//system includes +#include <stdlib.h> +#include <stdio.h> + +//Sword includes +#include <utilxml.h> + +//Qt includes +#include <qregexp.h> +#include <qstring.h> + +using namespace Filters; + +BT_PLAINHTML::BT_PLAINHTML() : sword::SWFilter() { +} + +/** No descriptions */ +char BT_PLAINHTML::processText(sword::SWBuf& text, const sword::SWKey * key, const sword::SWModule * module) { + int count = 0; + + SWBuf orig = text; + const char *from = orig.c_str(); + for (text = ""; *from; from++) + { + if ((*from == '\n') && (from[1] == '\n')) // two newlinea are a paragraph + { + text += "<P>"; + from++; + continue; + } + //This is a special case: Newlines in the plaintext editor are stored as <br />, not as \n + //we need to let them through + else if ((*from == '<') && (from[1] == 'b') && (from[2] == 'r') && (from[3] == ' ') && (from[4] == '/') && (from[5] == '>')){ + text += "<br />"; + from += 5; + continue; + } + else if ((*from == '\n')){ // only one new line + text += "<BR>"; + continue; + } + else if (*from == '<') { + text += "<"; + continue; + } + else if (*from == '>') { + text += ">"; + continue; + } + else if (*from == '&'){ + text += "&"; + continue; + } + else if (*from == '{') { //footnote start + text += "<FONT COLOR=\"#80000\"><SMALL> ("; + continue; + } + else if (*from == '}') //footnote end + { + text += ") </SMALL></FONT>"; + continue; + } + else if ((*from == ' ') && (count > 5000)) + { + text += "<WBR>"; + count = 0; + continue; + } + + text += *from; + count++; + } + return 0; +} diff --git a/bibletime/backend/bt_plainhtml.h b/bibletime/backend/bt_plainhtml.h new file mode 100644 index 0000000..fec3a48 --- /dev/null +++ b/bibletime/backend/bt_plainhtml.h @@ -0,0 +1,41 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +/* $Header: /cvsroot/bibletime/bibletime/bibletime/backend/bt_plainhtml.h,v 1.3 2007/06/29 22:47:14 joachim Exp $ */ +/* $Revision: 1.3 $ */ + +#ifndef BT_PLAINHTML_H +#define BT_PLAINHTML_H + +//Sword includes +#include <swkey.h> +#include <swmodule.h> +#include <swfilter.h> +//#include <plainhtml.h> + +namespace Filters { + + /** Plain to HTML filter, + * This filter converts Plain Text into HTML + */ + +class BT_PLAINHTML : public sword::SWFilter{ + +protected: + +public: + BT_PLAINHTML(); + virtual char processText(sword::SWBuf& buf, const sword::SWKey*, const sword::SWModule * = 0); + }; + +} + +#endif diff --git a/bibletime/backend/bt_thmlhtml.cpp b/bibletime/backend/bt_thmlhtml.cpp new file mode 100644 index 0000000..7a00bd4 --- /dev/null +++ b/bibletime/backend/bt_thmlhtml.cpp @@ -0,0 +1,395 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + + +//BibleTime includes +#include "backend/bt_thmlhtml.h" +#include "backend/clanguagemgr.h" +#include "backend/cswordmoduleinfo.h" +#include "backend/creferencemanager.h" + +#include "frontend/cbtconfig.h" + +#include "util/cpointers.h" +#include "util/scoped_resource.h" + +#include <iostream> + +//Sword includes +#include <swmodule.h> +#include <utilxml.h> +#include "versekey.h" + +//Qt includes +#include <qstring.h> +#include <qregexp.h> + +//System includes +#include <stdlib.h> + +using namespace Filters; + +BT_ThMLHTML::BT_ThMLHTML() { + setEscapeStringCaseSensitive(true); + setPassThruUnknownEscapeString(true); //the HTML widget will render the HTML escape codes + + setTokenStart("<"); + setTokenEnd(">"); + setTokenCaseSensitive(true); + + addTokenSubstitute("/foreign", "</span>"); + + removeTokenSubstitute("note"); + removeTokenSubstitute("/note"); +} + +char BT_ThMLHTML::processText(sword::SWBuf& buf, const sword::SWKey* key, const sword::SWModule* module) { + ThMLHTML::processText(buf, key, module); + + CSwordModuleInfo* m = CPointers::backend()->findModuleByName( module->Name() ); + + if (m && !(m->has(CSwordModuleInfo::lemmas) || m->has(CSwordModuleInfo::strongNumbers))) { //only parse if the module has strongs or lemmas + return 1; + } + + QString result; + + QString t = QString::fromUtf8(buf.c_str()); + QRegExp tag("([.,;]?<sync[^>]+(type|value)=\"([^\"]+)\"[^>]+(type|value)=\"([^\"]+)\"([^<]*)>)+"); + + QStringList list; + int lastMatchEnd = 0; + int pos = tag.search(t,0); + + if (pos == -1) { //no strong or morph code found in this text + return 1; //WARNING: Return alread here + } + + while (pos != -1) { + list.append(t.mid(lastMatchEnd, pos+tag.matchedLength()-lastMatchEnd)); + + lastMatchEnd = pos+tag.matchedLength(); + pos = tag.search(t,pos+tag.matchedLength()); + } + + if (!t.right(t.length() - lastMatchEnd).isEmpty()) { + list.append(t.right(t.length() - lastMatchEnd)); + } + + tag = QRegExp("<sync[^>]+(type|value|class)=\"([^\"]+)\"[^>]+(type|value|class)=\"([^\"]+)\"[^>]+((type|value|class)=\"([^\"]+)\")*([^<]*)>"); + + for (QStringList::iterator it = list.begin(); it != list.end(); ++it) { + QString e( *it ); + + const bool textPresent = (e.stripWhiteSpace().remove(QRegExp("[.,;:]")).left(1) != "<"); + + if (!textPresent) { + continue; + } + + + bool hasLemmaAttr = false; + bool hasMorphAttr = false; + + int pos = tag.search(e, 0); + bool insertedTag = false; + QString value; + QString valueClass; + + while (pos != -1) { + bool isMorph = false; + bool isStrongs = false; + value = QString::null; + valueClass = QString::null; + + // check 3 attribute/value pairs + + for (int i = 1; i < 6; i += 2) { + if (i > 4) + i++; + + if (tag.cap(i) == "type") { + isMorph = (tag.cap(i+1) == "morph"); + isStrongs = (tag.cap(i+1) == "Strongs"); + } + else if (tag.cap(i) == "value") { + value = tag.cap(i+1); + } + else if (tag.cap(i) == "class") { + valueClass = tag.cap(i+1); + } + } + + // prepend the class qualifier to the value + if (!valueClass.isEmpty()) { + value = valueClass + ":" + value; + // value.append(":").append(value); + } + + if (value.isEmpty()) { + break; + } + + //insert the span + if (!insertedTag) { + e.replace(pos, tag.matchedLength(), "</span>"); + pos += 7; + + QString rep; + rep.setLatin1("<span lemma=\"").append(value).append("\">"); + int startPos = 0; + QChar c = e[startPos]; + + while ((startPos < pos) && (c.isSpace() || c.isPunct())) { + ++startPos; + c = e[startPos]; + } + + hasLemmaAttr = isStrongs; + hasMorphAttr = isMorph; + + e.insert( startPos, rep ); + pos += rep.length(); + } + else { //add the attribute to the existing tag + e.remove(pos, tag.matchedLength()); + + if ((!isMorph && hasLemmaAttr) || (isMorph && hasMorphAttr)) { //we append another attribute value, e.g. 3000 gets 3000|5000 + //search the existing attribute start + QRegExp attrRegExp( isMorph ? "morph=\".+(?=\")" : "lemma=\".+(?=\")" ); + attrRegExp.setMinimal(true); + const int foundAttrPos = e.find(attrRegExp, pos); + + if (foundAttrPos != -1) { + e.insert(foundAttrPos + attrRegExp.matchedLength(), QString("|").append(value)); + pos += value.length() + 1; + + hasLemmaAttr = !isMorph; + hasMorphAttr = isMorph; + } + } + else { //attribute was not yet inserted + const int attrPos = e.find(QRegExp("morph=|lemma="), 0); + + if (attrPos >= 0) { + QString attr; + attr.append(isMorph ? "morph" : "lemma").append("=\"").append(value).append("\" "); + e.insert(attrPos, attr); + + hasMorphAttr = isMorph; + hasLemmaAttr = !isMorph; + + pos += attr.length(); + } + } + } + + insertedTag = true; + pos = tag.search(e, pos); + } + + result.append( e ); + } + + if (list.count()) { + buf = (const char*)result.utf8(); + } + + return 1; +} + + +bool BT_ThMLHTML::handleToken(sword::SWBuf &buf, const char *token, sword::BasicFilterUserData *userData) { + if (!substituteToken(buf, token) && !substituteEscapeString(buf, token)) { + sword::XMLTag tag(token); + BT_UserData* myUserData = dynamic_cast<BT_UserData*>(userData); + sword::SWModule* myModule = const_cast<sword::SWModule*>(myUserData->module); //hack to be able to call stuff like Lang() + + if ( tag.getName() && !strcasecmp(tag.getName(), "foreign") ) { // a text part in another language, we have to set the right font + + if (tag.getAttribute("lang")) { + const char* abbrev = tag.getAttribute("lang"); + //const CLanguageMgr::Language* const language = CPointers::languageMgr()->languageForAbbrev( QString::fromLatin1(abbrev) ); + + buf.append("<span class=\"foreign\" lang=\""); + buf.append(abbrev); + buf.append("\">"); + } + } + else if (tag.getName() && !strcasecmp(tag.getName(), "sync")) { //lemmas, morph codes or strongs + + if (tag.getAttribute("type") && (!strcasecmp(tag.getAttribute("type"), "morph") || !strcasecmp(tag.getAttribute("type"), "Strongs") || !strcasecmp(tag.getAttribute("type"), "lemma"))) { // Morph or Strong + buf.append('<'); + buf.append(token); + buf.append('>'); + } + } + else if (tag.getName() && !strcasecmp(tag.getName(), "note")) { // <note> tag + + if (!tag.isEndTag() && !tag.isEmpty()) { + //appending is faster than appendFormatted + buf.append(" <span class=\"footnote\" note=\""); + buf.append(myModule->Name()); + buf.append('/'); + buf.append(myUserData->key->getShortText()); + buf.append('/'); + buf.append( QString::number(myUserData->swordFootnote++).latin1() ); + buf.append("\">*</span> "); + + myUserData->suspendTextPassThru = true; + myUserData->inFootnoteTag = true; + } + else if (tag.isEndTag() && !tag.isEmpty()) { //end tag + //buf += ")</span>"; + myUserData->suspendTextPassThru = false; + myUserData->inFootnoteTag = false; + } + } + else if (tag.getName() && !strcasecmp(tag.getName(), "scripRef")) { // a scripRef + //scrip refs which are embeded in footnotes may not be displayed! + + if (!myUserData->inFootnoteTag) { + if (tag.isEndTag()) { + if (myUserData->inscriptRef) { // like "<scripRef passage="John 3:16">See John 3:16</scripRef>" + buf.append("</a></span>"); + + myUserData->inscriptRef = false; + myUserData->suspendTextPassThru = false; + } + else { // like "<scripRef>John 3:16</scripRef>" + + CSwordModuleInfo* mod = CBTConfig::get(CBTConfig::standardBible); + Q_ASSERT(mod); + if (mod) { + CReferenceManager::ParseOptions options; + options.refBase = QString::fromUtf8(myUserData->key->getText()); //current module key + options.refDestinationModule = QString(mod->name()); + options.sourceLanguage = QString(myModule->Lang()); + options.destinationLanguage = QString("en"); + + //it's ok to split the reference, because to descriptive text is given + bool insertSemicolon = false; + buf.append("<span class=\"crossreference\">"); + QStringList refs = QStringList::split(";", QString::fromUtf8(myUserData->lastTextNode.c_str())); + QString oldRef; //the previous reference to use as a base for the next refs + for (QStringList::iterator it(refs.begin()); it != refs.end(); ++it) { + + if (! oldRef.isEmpty() ){ + options.refBase = oldRef; //use the last ref as a base, e.g. Rom 1,2-3, when the next ref is only 3:3-10 + } + const QString completeRef( CReferenceManager::parseVerseReference((*it), options) ); + + oldRef = completeRef; //use the parsed result as the base for the next ref. + + if (insertSemicolon) { //prepend a ref divider if we're after the first one + buf.append("; "); + } + + buf.append("<a href=\""); + buf.append( + CReferenceManager::encodeHyperlink( + mod->name(), + completeRef, + CReferenceManager::typeFromModule(mod->type()) + ).utf8() + ); + + buf.append("\" crossrefs=\""); + buf.append((const char*)completeRef.utf8()); + buf.append("\">"); + + buf.append((const char*)(*it).utf8()); + + buf.append("</a>"); + + insertSemicolon = true; + } + buf.append("</span>"); //crossref end + } + + myUserData->suspendTextPassThru = false; + } + } + else if (tag.getAttribute("passage") ) { //the passage was given as a parameter value + myUserData->inscriptRef = true; + myUserData->suspendTextPassThru = false; + + const char* ref = tag.getAttribute("passage"); + Q_ASSERT(ref); + + CSwordModuleInfo* mod = CBTConfig::get(CBTConfig::standardBible); + Q_ASSERT(mod); + + CReferenceManager::ParseOptions options; + options.refBase = QString::fromUtf8(myUserData->key->getText()); + options.refDestinationModule = QString(mod->name()); + options.sourceLanguage = myModule->Lang(); + options.destinationLanguage = QString("en"); + + const QString completeRef = CReferenceManager::parseVerseReference(QString::fromUtf8(ref), options); + + if (mod) { + buf.append("<span class=\"crossreference\">"); + buf.append("<a href=\""); + buf.append( + CReferenceManager::encodeHyperlink( + mod->name(), + completeRef, + CReferenceManager::typeFromModule(mod->type()) + ).utf8() + ); + buf.append("\" crossrefs=\""); + buf.append((const char*)completeRef.utf8()); + buf.append("\">"); + } + else { + buf.append("<span><a>"); + } + } + else if ( !tag.getAttribute("passage") ) { // we're starting a scripRef like "<scripRef>John 3:16</scripRef>" + myUserData->inscriptRef = false; + + // let's stop text from going to output, the text get's added in the -tag handler + myUserData->suspendTextPassThru = true; + } + } + } + else if (tag.getName() && !strcasecmp(tag.getName(), "div")) { + if (tag.isEndTag()) { + buf.append("</div>"); + } + else if ( tag.getAttribute("class") && !strcasecmp(tag.getAttribute("class"),"sechead") ) { + buf.append("<div class=\"sectiontitle\">"); + } + else if (tag.getAttribute("class") && !strcasecmp(tag.getAttribute("class"), "title")) { + buf.append("<div class=\"booktitle\">"); + } + } + else if (tag.getName() && !strcasecmp(tag.getName(), "img") && tag.getAttribute("src")) { + const char* value = tag.getAttribute("src"); + + if (value[0] == '/') { + value++; //strip the first / + } + + buf.append("<img src=\"file:"); + buf.append(myUserData->module->getConfigEntry("AbsoluteDataPath")); + buf.append('/'); + buf.append(value); + buf.append("\" />"); + } + else { // let unknown token pass thru + return sword::ThMLHTML::handleToken(buf, token, userData); + } + } + + return true; +} diff --git a/bibletime/backend/bt_thmlhtml.h b/bibletime/backend/bt_thmlhtml.h new file mode 100644 index 0000000..e5ac614 --- /dev/null +++ b/bibletime/backend/bt_thmlhtml.h @@ -0,0 +1,56 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef BT_THMLHTML_H +#define BT_THMLHTML_H + +#include <swbuf.h> +#include <thmlhtml.h> + +using sword::SWBuf; + +namespace Filters { + + /** ThML to HTML filter. + * This filter converts ThML text to HTML text + */ + +class BT_ThMLHTML : public sword::ThMLHTML { + +protected: + +class BT_UserData : public sword::ThMLHTML::MyUserData { + +public: +BT_UserData(const sword::SWModule *module, const sword::SWKey *key) : sword::ThMLHTML::MyUserData(module, key) { + inscriptRef = false; + swordFootnote = 1; + inFootnoteTag = false; + } + + bool inscriptRef; + bool inFootnoteTag; + unsigned short int swordFootnote; + }; + + virtual sword::BasicFilterUserData *createUserData(const sword::SWModule* module, const sword::SWKey* key) { + return new BT_UserData(module, key); + } + +public: + BT_ThMLHTML (); + virtual bool handleToken(sword::SWBuf &buf, const char *token, sword::BasicFilterUserData *userData); + virtual char processText(sword::SWBuf& buf, const sword::SWKey*, const sword::SWModule * = 0); + }; + +} + +#endif diff --git a/bibletime/backend/bt_thmlplain.cpp b/bibletime/backend/bt_thmlplain.cpp new file mode 100644 index 0000000..8c4d72d --- /dev/null +++ b/bibletime/backend/bt_thmlplain.cpp @@ -0,0 +1,221 @@ +/****************************************************************************** + * + * thmlplain - SWFilter descendant to strip out all ThML tags or convert to + * ASCII rendered symbols. + */ + +#include "bt_thmlplain.h" + +#include <stdlib.h> +#include <swbuf.h> + +using namespace sword; + +namespace Filters { + +BT_ThMLPlain::BT_ThMLPlain() { +} + +char BT_ThMLPlain::processText(SWBuf &text, const SWKey *key, const SWModule *module) +{ + char token[2048]; + int tokpos = 0; + bool intoken = false; + bool ampersand = false; + + const char *from; + SWBuf orig = text; + from = orig.c_str(); + for (text = ""; *from; from++) + { + if (*from == 10 || *from == 13) + from++; + if (*from == '<') { + intoken = true; + tokpos = 0; + token[0] = 0; + token[1] = 0; + token[2] = 0; + ampersand = false; + continue; + } + else if (*from == '&') { + intoken = true; + tokpos = 0; + token[0] = 0; + token[1] = 0; + token[2] = 0; + ampersand = true; + continue; + } + if (*from == ';' && ampersand) { + intoken = false; + ampersand = false; + + if (!strncmp("nbsp", token, 4)) text += " "; + else if (!strncmp("quot", token, 4)) text += "\""; + else if (!strncmp("amp", token, 3)) text += "&"; + else if (!strncmp("lt", token, 2)) text += "<"; + else if (!strncmp("gt", token, 2)) text += ">"; + else if (!strncmp("brvbar", token, 6)) text += "¦"; + else if (!strncmp("sect", token, 4)) text += "§"; + else if (!strncmp("copy", token, 4)) text += "©"; + else if (!strncmp("laquo", token, 5)) text += "«"; + else if (!strncmp("reg", token, 3)) text += "®"; + else if (!strncmp("acute", token, 5)) text += "´"; + else if (!strncmp("para", token, 4)) text += "¶"; + else if (!strncmp("raquo", token, 5)) text += "»"; + + else if (!strncmp("Aacute", token, 6)) text += "Á"; + else if (!strncmp("Agrave", token, 6)) text += "À"; + else if (!strncmp("Acirc", token, 5)) text += "Â"; + else if (!strncmp("Auml", token, 4)) text += "Ä"; + else if (!strncmp("Atilde", token, 6)) text += "Ã"; + else if (!strncmp("Aring", token, 5)) text += "Å"; + else if (!strncmp("aacute", token, 6)) text += "á"; + else if (!strncmp("agrave", token, 6)) text += "à"; + else if (!strncmp("acirc", token, 5)) text += "â"; + else if (!strncmp("auml", token, 4)) text += "ä"; + else if (!strncmp("atilde", token, 6)) text += "ã"; + else if (!strncmp("aring", token, 5)) text += "Ã¥"; + else if (!strncmp("Eacute", token, 6)) text += "É"; + else if (!strncmp("Egrave", token, 6)) text += "È"; + else if (!strncmp("Ecirc", token, 5)) text += "Ê"; + else if (!strncmp("Euml", token, 4)) text += "Ë"; + else if (!strncmp("eacute", token, 6)) text += "é"; + else if (!strncmp("egrave", token, 6)) text += "è"; + else if (!strncmp("ecirc", token, 5)) text += "ê"; + else if (!strncmp("euml", token, 4)) text += "ë"; + else if (!strncmp("Iacute", token, 6)) text += "Í"; + else if (!strncmp("Igrave", token, 6)) text += "Ì"; + else if (!strncmp("Icirc", token, 5)) text += "Î"; + else if (!strncmp("Iuml", token, 4)) text += "Ï"; + else if (!strncmp("iacute", token, 6)) text += "í"; + else if (!strncmp("igrave", token, 6)) text += "ì"; + else if (!strncmp("icirc", token, 5)) text += "î"; + else if (!strncmp("iuml", token, 4)) text += "ï"; + else if (!strncmp("Oacute", token, 6)) text += "Ó"; + else if (!strncmp("Ograve", token, 6)) text += "Ò"; + else if (!strncmp("Ocirc", token, 5)) text += "Ô"; + else if (!strncmp("Ouml", token, 4)) text += "Ö"; + else if (!strncmp("Otilde", token, 6)) text += "Õ"; + else if (!strncmp("oacute", token, 6)) text += "ó"; + else if (!strncmp("ograve", token, 6)) text += "ò"; + else if (!strncmp("ocirc", token, 5)) text += "ô"; + else if (!strncmp("ouml", token, 4)) text += "ö"; + else if (!strncmp("otilde", token, 6)) text += "õ"; + else if (!strncmp("Uacute", token, 6)) text += "Ú"; + else if (!strncmp("Ugrave", token, 6)) text += "Ù"; + else if (!strncmp("Ucirc", token, 5)) text += "Û"; + else if (!strncmp("Uuml", token, 4)) text += "Ü"; + else if (!strncmp("uacute", token, 6)) text += "ú"; + else if (!strncmp("ugrave", token, 6)) text += "ù"; + else if (!strncmp("ucirc", token, 5)) text += "û"; + else if (!strncmp("uuml", token, 4)) text += "ü"; + else if (!strncmp("Yacute", token, 6)) text += "Ý"; + else if (!strncmp("yacute", token, 6)) text += "ý"; + else if (!strncmp("yuml", token, 4)) text += "ÿ"; + + else if (!strncmp("deg", token, 3)) text += "°"; + else if (!strncmp("plusmn", token, 6)) text += "±"; + else if (!strncmp("sup2", token, 4)) text += "²"; + else if (!strncmp("sup3", token, 4)) text += "³"; + else if (!strncmp("sup1", token, 4)) text += "¹"; + else if (!strncmp("nbsp", token, 4)) text += "º"; + else if (!strncmp("pound", token, 5)) text += "£"; + else if (!strncmp("cent", token, 4)) text += "¢"; + else if (!strncmp("frac14", token, 6)) text += "¼"; + else if (!strncmp("frac12", token, 6)) text += "½"; + else if (!strncmp("frac34", token, 6)) text += "¾"; + else if (!strncmp("iquest", token, 6)) text += "¿"; + else if (!strncmp("iexcl", token, 5)) text += "¡"; + else if (!strncmp("ETH", token, 3)) text += "Ð"; + else if (!strncmp("eth", token, 3)) text += "ð"; + else if (!strncmp("THORN", token, 5)) text += "Þ"; + else if (!strncmp("thorn", token, 5)) text += "þ"; + else if (!strncmp("AElig", token, 5)) text += "Æ"; + else if (!strncmp("aelig", token, 5)) text += "æ"; + else if (!strncmp("Oslash", token, 6)) text += "Ø"; + else if (!strncmp("curren", token, 6)) text += "¤"; + else if (!strncmp("Ccedil", token, 6)) text += "Ç"; + else if (!strncmp("ccedil", token, 6)) text += "ç"; + else if (!strncmp("szlig", token, 5)) text += "ß"; + else if (!strncmp("Ntilde", token, 6)) text += "Ñ"; + else if (!strncmp("ntilde", token, 6)) text += "ñ"; + else if (!strncmp("yen", token, 3)) text += "Â¥"; + else if (!strncmp("not", token, 3)) text += "¬"; + else if (!strncmp("ordf", token, 4)) text += "ª"; + else if (!strncmp("uml", token, 3)) text += "¨"; + else if (!strncmp("shy", token, 3)) text += "­"; + else if (!strncmp("macr", token, 4)) text += "¯"; + else if (!strncmp("micro", token, 5)) text += "µ"; + else if (!strncmp("middot", token, 6)) text +="·"; + else if (!strncmp("cedil", token, 5)) text += "¸"; + else if (!strncmp("ordm", token, 4)) text += "º"; + else if (!strncmp("times", token, 5)) text += "×"; + else if (!strncmp("divide", token, 6)) text +="÷"; + else if (!strncmp("oslash", token, 6)) text +="ø"; + continue; + + } + else if (*from == '>' && !ampersand) { + intoken = false; + // process desired tokens + if (!strncmp(token, "sync type=\"Strongs\" value=\"", 27)) { + text += ' '; + text += '<'; + for (unsigned int i = 27; token[i] != '\"'; i++) + text += token[i]; + text += '>'; + continue; + } + if (!strncmp(token, "sync type=\"morph\" value=\"", 25)) { + text += ' '; + text += '('; + for (unsigned int i = 25; token[i] != '\"'; i++) + text += token[i]; + text += ')'; + continue; + } + if (!strncmp("note", token, 4)) { + text += ' '; + text += '('; + } + else if (!strncmp("br", token, 2)) + text += '\n'; + else if (!strncmp("/p", token, 2)) + text += '\n'; + else if (!strncmp("/note", token, 5)) { + text += ')'; + text += ' '; + } + continue; + } + if (intoken) { + if (tokpos < 2045) + token[tokpos++] = *from; + token[tokpos+2] = 0; + } + else text += *from; + } + + orig = text; + from = orig.c_str(); + for (text = ""; *from; from++) { //loop to remove extra spaces + if ((strchr(" \t\n\r", *from))) { + while (*(from+1) && (strchr(" \t\n\r", *(from+1)))) { + from++; + } + text += " "; + } + else { + text += *from; + } + } + text += (char)0; + + return 0; +} + + +} diff --git a/bibletime/backend/bt_thmlplain.h b/bibletime/backend/bt_thmlplain.h new file mode 100644 index 0000000..b510d33 --- /dev/null +++ b/bibletime/backend/bt_thmlplain.h @@ -0,0 +1,40 @@ +/****************************************************************************** + * + * $Id: bt_thmlplain.h,v 1.1 2007/03/14 21:32:47 joachim Exp $ + * + * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org) + * CrossWire Bible Society + * P. O. Box 2528 + * Tempe, AZ 85280-2528 + * + * 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 version 2. + * + * 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. + * + */ + +#ifndef BT_THMLPLAIN_H +#define BT_THMLPLAIN_H + +#include <swfilter.h> + +using namespace sword; + +namespace Filters { + +/** this filter converts ThML text to plain text + */ +class BT_ThMLPlain : public SWFilter { +protected: + virtual char processText(SWBuf &text, const SWKey *key = 0, const SWModule *module = 0); +public: + BT_ThMLPlain(); +}; + +} +#endif diff --git a/bibletime/backend/btstringmgr.cpp b/bibletime/backend/btstringmgr.cpp new file mode 100644 index 0000000..83c29c8 --- /dev/null +++ b/bibletime/backend/btstringmgr.cpp @@ -0,0 +1,145 @@ +// +// C++ Implementation: btstringmgr +// +// Description: +// +// +// Author: The BibleTime team <info@bibletime.info>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +#include "btstringmgr.h" + +//System includes +#include <ctype.h> + +char* BTStringMgr::upperUTF8(char* text, unsigned int maxlen) const { + const int max = (maxlen>0) ? maxlen : strlen(text); + + if (isUtf8(text)) { + strncpy(text, (const char*)QString::fromUtf8(text).upper().utf8(), max); + + return text; + } + else { + char* ret = text; + + while (*text) { + *text = toupper(*text); + text++; + } + + return ret; + } + + return text; +} + +char* BTStringMgr::upperLatin1(char* text, unsigned int max) const { + char* ret = text; + + while (*text) { + *text = toupper(*text); + text++; + } + + return ret; +} + +bool BTStringMgr::supportsUnicode() const { + return true; +} + +const bool BTStringMgr::isUtf8(const char *buf) const { + int i, n; + register unsigned char c; + bool gotone = false; + + #define F 0 /* character never appears in text */ + #define T 1 /* character appears in plain ASCII text */ + #define I 2 /* character appears in ISO-8859 text */ + #define X 3 /* character appears in non-ISO extended ASCII (Mac, IBM PC) */ + + static const unsigned char text_chars[256] = { + /* BEL BS HT LF FF CR */ + F, F, F, F, F, F, F, T, T, T, T, F, T, T, F, F, /* 0x0X */ + /* ESC */ + F, F, F, F, F, F, F, F, F, F, F, T, F, F, F, F, /* 0x1X */ + T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x2X */ + T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x3X */ + T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x4X */ + T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x5X */ + T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x6X */ + T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, F, /* 0x7X */ + /* NEL */ + X, X, X, X, X, T, X, X, X, X, X, X, X, X, X, X, /* 0x8X */ + X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, /* 0x9X */ + I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, /* 0xaX */ + I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, /* 0xbX */ + I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, /* 0xcX */ + I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, /* 0xdX */ + I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, /* 0xeX */ + I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I /* 0xfX */ + }; + + /* *ulen = 0; */ + + for (i = 0; (c = buf[i]); i++) { + if ((c & 0x80) == 0) { /* 0xxxxxxx is plain ASCII */ + /* + * Even if the whole file is valid UTF-8 sequences, + * still reject it if it uses weird control characters. + */ + + if (text_chars[c] != T) + return false; + + } + else if ((c & 0x40) == 0) { /* 10xxxxxx never 1st byte */ + return false; + } + else { /* 11xxxxxx begins UTF-8 */ + int following; + + if ((c & 0x20) == 0) { /* 110xxxxx */ + following = 1; + } + else if ((c & 0x10) == 0) { /* 1110xxxx */ + following = 2; + } + else if ((c & 0x08) == 0) { /* 11110xxx */ + following = 3; + } + else if ((c & 0x04) == 0) { /* 111110xx */ + following = 4; + } + else if ((c & 0x02) == 0) { /* 1111110x */ + following = 5; + } + else + return false; + + for (n = 0; n < following; n++) { + i++; + + if (!(c = buf[i])) + goto done; + + if ((c & 0x80) == 0 || (c & 0x40)) + return false; + } + + gotone = true; + } + } + +done: + return gotone; /* don't claim it's UTF-8 if it's all 7-bit */ +} + +#undef F +#undef T +#undef I +#undef X diff --git a/bibletime/backend/btstringmgr.h b/bibletime/backend/btstringmgr.h new file mode 100644 index 0000000..de5349d --- /dev/null +++ b/bibletime/backend/btstringmgr.h @@ -0,0 +1,57 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef BTSTRINGMGR_H +#define BTSTRINGMGR_H + +//Sword includes +#include <stringmgr.h> + +//Qt includes +#include <qstring.h> + +using namespace sword; + +/** Unicode string manager implementation. + * This is the StringManager implementation which works with QString. + * @author The BibleTime developers + */ + +class BTStringMgr : public StringMgr { + +public: + /** Converts the param to an upper case Utf8 string + * @param The text encoded in utf8 which should be turned into an upper case string + */ + virtual char *upperUTF8(char *text, unsigned int max = 0) const; + + /** Converts the param to an uppercase latin1 string + * @param The text encoded in latin1 which should be turned into an upper case string + */ + virtual char *upperLatin1(char *text, unsigned int max = 0) const; + +protected: + /** Enable Unicode support. + * Reimplementation to show unicode support. + */ + virtual bool supportsUnicode() const; + + /** CODE TAKEN FROM KDELIBS 3.2, which is licensed under the LGPL 2. + * + * This code was taken from KStringHandler, which is part of the KDE libraries. + * + * This function checks whether a string is utf8 or not. + * It was taken from kdelibs so we do not depend on KDE 3.2. + */ + const bool isUtf8(const char *buf) const; +}; + +#endif diff --git a/bibletime/backend/cbookdisplay.cpp b/bibletime/backend/cbookdisplay.cpp new file mode 100644 index 0000000..276c604 --- /dev/null +++ b/bibletime/backend/cbookdisplay.cpp @@ -0,0 +1,144 @@ +// +// C++ Implementation: cbookdisplay +// +// Description: +// +// +// Author: The BibleTime team <info@bibletime.info>, (C) 2004-2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +//Backend +#include "cbookdisplay.h" +#include "cdisplayrendering.h" +#include "cswordbookmoduleinfo.h" +#include "cswordtreekey.h" + +//Util +#include "util/scoped_resource.h" + +namespace Rendering { + + + /** Returns the rendered text using the modules in the list and using the key parameter. The displayoptions and filter options are used, too. */ + const QString CBookDisplay::text( const ListCSwordModuleInfo& modules, const QString& keyName, const CSwordBackend::DisplayOptions displayOptions, const CSwordBackend::FilterOptions filterOptions ) { + CSwordBookModuleInfo* book = dynamic_cast<CSwordBookModuleInfo*>(modules.first()); + Q_ASSERT(book); + + CSwordBackend::DisplayOptions dOpts = displayOptions; + dOpts.lineBreaks = true; //books should render with blocks, not with inlined sections + + CDisplayRendering render(dOpts, filterOptions); + CDisplayRendering::KeyTree tree; + CDisplayRendering::KeyTreeItem::Settings itemSettings; + + // the number of levels which should be display together, 1 means display no entries together + int displayLevel = book->config( CSwordModuleInfo::DisplayLevel ).toInt(); + + util::scoped_ptr<CSwordTreeKey> key ( + dynamic_cast<CSwordTreeKey*>( CSwordKey::createInstance(book) ) + ); + key->key(keyName); //set the key to position we'd like to get + + const unsigned long offset = key->getOffset(); + + // standard of DisplayLevel, display nothing together + // if the current key is the root entry don't display anything together! + + if ((displayLevel <= 1) || (key->key().isEmpty() || (key->key() == "/") )) { + tree.append( new CDisplayRendering::KeyTreeItem( key->key(), modules, itemSettings ) ); + + const QString renderedText = render.renderKeyTree(tree); + key->setOffset( offset ); + return renderedText; + }; + + /** + * Check whether displaying displayLevel levels together is possible. + * For this count the childs and parents + * of the required position + */ + + int possibleLevels = 1; //we start with the default value of displayLevel, which means no entries together + + while( key->parent() && (key->key() != "/") && !key->key().isEmpty() ) {//add parents + ++possibleLevels; + }; + + // key->key(keyName); //set the key to the start position + + key->setOffset( offset ); + + while( key->firstChild( )) { //add childs + ++possibleLevels; + }; + + if (possibleLevels < displayLevel) { //too few levels available! + //display current level, we could also decide to display the available levels together + tree.append( new CDisplayRendering::KeyTreeItem( key->key(), modules, itemSettings ) ); + + const QString renderedText = render.renderKeyTree(tree); + key->setOffset( offset ); + return renderedText; + }; + + if ((displayLevel > 2) && (displayLevel == possibleLevels)) { //fix not to diplay the whole module + --displayLevel; + } + + // at this point we're sure that we can display the required levels toogether + // at the moment we're at the lowest level, so we only have to go up! + for (int currentLevel = 1; currentLevel < displayLevel; ++currentLevel) { //we start again with 1 == standard of displayLevel + + if ( !key->parent() ) { //something went wrong although we checked before! Be safe and return entry's text + tree.append( new CDisplayRendering::KeyTreeItem( key->key(), modules, itemSettings ) ); + + const QString renderedText = render.renderKeyTree(tree); + key->setOffset( offset ); + return renderedText; + }; + }; + + // no we can display all sub levels together! We checked before that this is possible! + itemSettings.highlight = (key->key() == keyName); + + tree.append( new CDisplayRendering::KeyTreeItem( key->key(), modules, itemSettings ) ); + + //const bool hasToplevelText = !key->strippedText().isEmpty(); + key->firstChild(); //go to the first sibling on the same level + + setupRenderTree(key.get(), &tree, keyName); + + const QString renderedText = render.renderKeyTree(tree); + + key->setOffset( offset ); //restore key + + return renderedText; + } + + void CBookDisplay::setupRenderTree(CSwordTreeKey * swordTree, CTextRendering::KeyTree * renderTree, const QString& highlightKey) { +// const QString key = swordTree->getFullName(); + const QString key = swordTree->key(); + const unsigned long offset = swordTree->getOffset(); + + CTextRendering::KeyTreeItem::Settings settings; + settings.highlight = (key == highlightKey); + + CTextRendering::KeyTreeItem* item = new CTextRendering::KeyTreeItem(key, swordTree->module(0), settings ); + renderTree->append( item ); + + if (swordTree->hasChildren()) { //print tree for the child items + swordTree->firstChild(); + setupRenderTree(swordTree, item->childList(), highlightKey); + swordTree->setOffset( offset ); //go back where we came from + } + + if (swordTree->nextSibling()) { //print tree for next entry on the same depth + setupRenderTree(swordTree, renderTree, highlightKey); + swordTree->setOffset( offset ); //return to the value we had at the beginning of this block! + } + } + +}; diff --git a/bibletime/backend/cbookdisplay.h b/bibletime/backend/cbookdisplay.h new file mode 100644 index 0000000..56fc2f2 --- /dev/null +++ b/bibletime/backend/cbookdisplay.h @@ -0,0 +1,45 @@ +// +// C++ Interface: cbookdisplay +// +// Description: +// +// +// Author: The BibleTime team <info@bibletime.info>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef RENDERINGCBOOKDISPLAY_H +#define RENDERINGCBOOKDISPLAY_H + +#include "centrydisplay.h" + +class CSwordTreeKey; + +namespace Rendering { + + class CTextRendering::KeyTree; + + /** + * A CEntryDisplay implementation which works on tree-based GenBook modules + * of Sword. + * @short CEntryDisplay implementation for GenBook modules, + * @author The BibleTime team + */ + +class CBookDisplay : public CEntryDisplay { +public: // Public methods + virtual ~CBookDisplay() {} + + /** + * Returns the rendered text using the modules in the list and using the key parameter. + * The displayoptions and filter options are used, too. + */ + virtual const QString text( const ListCSwordModuleInfo& modules, const QString& key, const CSwordBackend::DisplayOptions displayOptions, const CSwordBackend::FilterOptions filterOptions); + +protected: + void setupRenderTree(CSwordTreeKey* swordTree, CTextRendering::KeyTree* renderTree, const QString& highlightKey); + }; +}; + +#endif diff --git a/bibletime/backend/cchapterdisplay.cpp b/bibletime/backend/cchapterdisplay.cpp new file mode 100644 index 0000000..02668e4 --- /dev/null +++ b/bibletime/backend/cchapterdisplay.cpp @@ -0,0 +1,67 @@ +// +// C++ Implementation: cchapterdisplay +// +// Description: +// +// +// Author: The BibleTime team <info@bibletime.info>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +//Backend +#include "cchapterdisplay.h" +#include "cdisplayrendering.h" +#include "cswordversekey.h" +#include "cswordbiblemoduleinfo.h" + + +namespace Rendering { + + const QString CChapterDisplay::text( const ListCSwordModuleInfo& modules, const QString& keyName, const CSwordBackend::DisplayOptions displayOptions, const CSwordBackend::FilterOptions filterOptions ) { + Q_ASSERT( modules.count() >= 1 ); + Q_ASSERT( !keyName.isEmpty() ); + + CSwordModuleInfo* module = modules.first(); + + if (modules.count() == 1) module->module()->setSkipConsecutiveLinks( true ); //skip empty, linked verses + + CTextRendering::KeyTreeItem::Settings settings; + settings.keyRenderingFace = + displayOptions.verseNumbers + ? CTextRendering::KeyTreeItem::Settings::SimpleKey + : CTextRendering::KeyTreeItem::Settings::NoKey; + + QString startKey = keyName; + QString endKey = startKey; + + //check whether there's an intro we have to include + Q_ASSERT((module->type() == CSwordModuleInfo::Bible)); + + if (module->type() == CSwordModuleInfo::Bible) { + ((VerseKey*)(module->module()->getKey()))->Headings(1); //HACK: enable headings for VerseKeys + + CSwordBibleModuleInfo* bible = dynamic_cast<CSwordBibleModuleInfo*>(module); + Q_ASSERT(bible); + + CSwordVerseKey k1(module); + k1.Headings(1); + k1.key(keyName); + + if (k1.Chapter() == 1) k1.Chapter(0); //Chapter 1, start with 0:0, otherwise X:0 + + k1.Verse(0); + + startKey = k1.key(); + + if (k1.Chapter() == 0) k1.Chapter(1); + k1.Verse(bible->verseCount(k1.book(), k1.Chapter())); + endKey = k1.key(); + } + + CDisplayRendering render(displayOptions, filterOptions); + return render.renderKeyRange( startKey, endKey, modules, keyName, settings ); + } + +}; diff --git a/bibletime/backend/cchapterdisplay.h b/bibletime/backend/cchapterdisplay.h new file mode 100644 index 0000000..891b16b --- /dev/null +++ b/bibletime/backend/cchapterdisplay.h @@ -0,0 +1,39 @@ +// +// C++ Interface: cchapterdisplay +// +// Description: +// +// +// Author: The BibleTime team <info@bibletime.info>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef RENDERINGCCHAPTERDISPLAY_H +#define RENDERINGCCHAPTERDISPLAY_H + +#include "centrydisplay.h" + +namespace Rendering { + +/** Chapter rendering. +* A CEntryDisplay implementation mde for Bibles to display whole chapters +* at once. +* @author The BibleTime team +*/ + +class CChapterDisplay : public CEntryDisplay { + +public: // Public methods + virtual ~CChapterDisplay() {} + + /** + * Returns the rendered text using the modules in the list and using the key parameter. + * The displayoptions and filter options are used, too. + */ + virtual const QString text( const ListCSwordModuleInfo& modules, const QString& key, const CSwordBackend::DisplayOptions displayOptions, const CSwordBackend::FilterOptions filterOptions); +}; + +}; + +#endif diff --git a/bibletime/backend/cdisplayrendering.cpp b/bibletime/backend/cdisplayrendering.cpp new file mode 100644 index 0000000..6b13114 --- /dev/null +++ b/bibletime/backend/cdisplayrendering.cpp @@ -0,0 +1,163 @@ +// +// C++ Implementation: cdisplayrendering +// +// Description: +// +// +// Author: The BibleTime team <info@bibletime.info>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +//Backend includes +#include "cdisplayrendering.h" + +#include "cdisplaytemplatemgr.h" +#include "creferencemanager.h" +#include "cswordkey.h" +#include "cswordversekey.h" + +//Qt includes +#include <qstring.h> +#include <qregexp.h> + +namespace Rendering { + + CDisplayRendering::CDisplayRendering(CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions) +: CHTMLExportRendering(CHTMLExportRendering::Settings(true), displayOptions, filterOptions) {} + + const QString CDisplayRendering::entryLink( const KeyTreeItem& item, CSwordModuleInfo* module ) { + QString linkText; + + const bool isBible = module && (module->type() == CSwordModuleInfo::Bible); + CSwordVerseKey vk(module); //only valid for bible modules, i.e. isBible == true + vk.Headings(true); + + if (isBible) { + vk = item.key(); + } + + if (isBible && (vk.Verse() == 0)) { + return QString::null; //Warning: return already here + } + + switch (item.settings().keyRenderingFace) { + + case KeyTreeItem::Settings::NoKey: { + linkText = QString::null; + break; //no key is valid for all modules + } + + case KeyTreeItem::Settings::CompleteShort: { + if (isBible) { + linkText = QString::fromUtf8(vk.getShortText()); + break; + } + + //fall through for non-Bible modules + } + + case KeyTreeItem::Settings::CompleteLong: { + if (isBible) { + linkText = vk.key(); + break; + } + + //fall through for non-Bible modules + } + + case KeyTreeItem::Settings::SimpleKey: { + if (isBible) { + linkText = QString::number(vk.Verse()); + break; + } + + //fall through for non-Bible modules + } + + default: { //default behaviour to return the passed key + linkText = item.key(); + break; + } + } + + if (linkText.isEmpty()) { + return QString("<a name=\"").append(keyToHTMLAnchor(item.key())).append("\" />"); + } + else { + return QString("<a name=\"").append(keyToHTMLAnchor(item.key())).append("\" ") + .append("href=\"") + .append(CReferenceManager::encodeHyperlink( + module->name(), item.key(), CReferenceManager::typeFromModule(module->type())) + ) + .append("\">").append(linkText).append("</a>\n"); + } + + return QString::null; + } + + const QString CDisplayRendering::keyToHTMLAnchor(const QString& key) { + QString ret = key; + ret = ret.stripWhiteSpace().remove(QRegExp("[^A-Za-z0-9]+")); + ret = ret.remove(QRegExp("^\\d+|")); + + return ret; + } + + const QString CDisplayRendering::finishText( const QString& oldText, KeyTree& tree ) { + ListCSwordModuleInfo modules = tree.collectModules(); + + + //marking words is very slow, we have to find a better solution + + /* + //mark all words by spans + + QString text = oldText; + + QRegExp re("(\\b)(?=\\w)"); //word begin marker + int pos = text.find(re, 0); + + while (pos != -1) { //word begin found + //qWarning("found word at %i in %i", pos, text.length()); + int endPos = pos + 1; + if (!CToolClass::inHTMLTag(pos+1, text)) { //the re has a positive look ahead which matches one char before the word start + //qWarning("matched %s", text.mid(pos+1, 4).latin1()); + + //find end of word and put a marker around it + endPos = text.find(QRegExp("\\b|[,.:]"), pos+1); + if ((endPos != -1) && !CToolClass::inHTMLTag(endPos, text) && (endPos - pos >= 3)) { //reuire wordslonger than 3 chars + text.insert(endPos, "</span>"); + text.insert(pos, "<span class=\"word\">"); + + endPos += 26; + } + } + pos = text.find(re, endPos); + } + */ + const CLanguageMgr::Language* const lang = + (modules.count() >= 1) + ? modules.first()->language() + : CPointers::languageMgr()->defaultLanguage(); + + CDisplayTemplateMgr* tMgr = CPointers::displayTemplateManager(); + + Q_ASSERT(modules.count() >= 1); + + CDisplayTemplateMgr::Settings settings; + settings.modules = modules; + settings.langAbbrev = ((modules.count() == 1) && lang->isValid()) + ? lang->abbrev() + : QString::null; + settings.pageDirection = (modules.count() == 1) + ? ((modules.first()->textDirection() == CSwordModuleInfo::LeftToRight) ? "ltr" : "rtl") + : QString::null; + + return tMgr->fillTemplate(CBTConfig::get + (CBTConfig::displayStyle), oldText, settings); + + + } +} diff --git a/bibletime/backend/cdisplayrendering.h b/bibletime/backend/cdisplayrendering.h new file mode 100644 index 0000000..b835ac6 --- /dev/null +++ b/bibletime/backend/cdisplayrendering.h @@ -0,0 +1,40 @@ +// +// C++ Interface: cdisplayrendering +// +// Description: +// +// +// Author: The BibleTime team <info@bibletime.info>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef RENDERINGCDISPLAYRENDERING_H +#define RENDERINGCDISPLAYRENDERING_H + +#include "chtmlexportrendering.h" + +namespace Rendering { + +/** HTML rendering for the text display widgets. + * @short Rendering for the html display widget. + * @author The BibleTime team + */ + +class CDisplayRendering : public CHTMLExportRendering { +public: + static const QString keyToHTMLAnchor(const QString& key); + + CDisplayRendering( + CSwordBackend::DisplayOptions displayOptions = CBTConfig::getDisplayOptionDefaults(), + CSwordBackend::FilterOptions filterOptions = CBTConfig::getFilterOptionDefaults() + ); + +protected: + virtual const QString entryLink( const KeyTreeItem& item, CSwordModuleInfo* const module ); + virtual const QString finishText( const QString&, KeyTree& tree ); +}; + +} + +#endif diff --git a/bibletime/backend/cdisplaytemplatemgr.cpp b/bibletime/backend/cdisplaytemplatemgr.cpp new file mode 100644 index 0000000..a0f5222 --- /dev/null +++ b/bibletime/backend/cdisplaytemplatemgr.cpp @@ -0,0 +1,191 @@ +// +// C++ Implementation: cdisplaytemplatemgr +// +// Description: +// +// +// Author: The BibleTime team <info@bibletime.info>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +//BibleTime includes +#include "cdisplaytemplatemgr.h" +#include "cswordmoduleinfo.h" +#include "clanguagemgr.h" + +#include "frontend/cbtconfig.h" + +#include "util/cpointers.h" + +#include "config.h" + +//Qt includes +#include <qstringlist.h> +#include <qfile.h> +#include <qfileinfo.h> + +//KDE includes +#include <klocale.h> +#include <kstandarddirs.h> + +#include <iostream> + +CDisplayTemplateMgr::CDisplayTemplateMgr() { + init(); + loadUserTemplates(); +} + +CDisplayTemplateMgr::~CDisplayTemplateMgr() {} + + +/*! + \fn CDisplayTemplateMgr::fillTemplate( const QString& name, const QString& title, const QString& content ) + */ +const QString CDisplayTemplateMgr::fillTemplate( const QString& name, const QString& content, Settings& settings ) { + const QString templateName = m_templateMap.contains(name) ? name : defaultTemplate(); + + QString displayTypeString; + + if (!settings.pageCSS_ID.isEmpty()) { + displayTypeString = settings.pageCSS_ID; + } + else { + if (settings.modules.count()) { + switch (settings.modules.first()->type()) { + + case CSwordModuleInfo::Bible: + displayTypeString = "bible"; + break; + + case CSwordModuleInfo::GenericBook: + displayTypeString = "book"; + break; + + case CSwordModuleInfo::Commentary: + + case CSwordModuleInfo::Lexicon: + + default: + displayTypeString = "singleentry"; + break; + }; + } + else { //use bible as default type if no modules are set + displayTypeString = "bible"; + }; + } + + QString newContent = content; + const int moduleCount = settings.modules.count(); + + if (moduleCount >= 2) { + //create header for the modules + QString header; + + ListCSwordModuleInfo::iterator end_it = settings.modules.end(); + + for (ListCSwordModuleInfo::iterator it(settings.modules.begin()); it != end_it; ++it) { + header.append("<th style=\"width:") + .append(QString::number(int( 100.0 / (float)moduleCount ))) + .append("%;\">") + .append((*it)->name()) + .append("</th>"); + } + + newContent.setLatin1("<table><tr>") + .append(header) + .append("</tr>") + .append(content) + .append("</table>"); + } + + QString langCSS; + CLanguageMgr::LangMap langMap = CPointers::languageMgr()->availableLanguages(); + + for ( CLanguageMgr::LangMapIterator it( langMap ); it.current(); ++it ) { + const CLanguageMgr::Language* lang = it.current(); + + + //if (lang->isValid() && CBTConfig::get(lang).first) { + if (!lang->abbrev().isEmpty() && CBTConfig::get(lang).first) { + const QFont f = CBTConfig::get(lang).second; + + //don't use important, because it would reset the title formatting, etc. to the setup font + QString css("{ "); + css.append("font-family:").append(f.family())/*.append(" !important")*/; + css.append("; font-size:").append(QString::number(f.pointSize())).append("pt /*!important*/"); + css.append("; font-weight:").append(f.bold() ? "bold" : "normal /*!important*/"); + css.append("; font-style:").append(f.italic() ? "italic" : "normal /*!important*/"); + css.append("; }\n"); + + langCSS += + QString("\n*[lang=%1] %2") + .arg(lang->abbrev()) + .arg(css); + } + } + + //at first append the font standard settings for all languages without configured font + CLanguageMgr::LangMapIterator it( langMap ); + + const CLanguageMgr::Language* lang = it.current(); + + if (lang && !lang->abbrev().isEmpty()/*&& lang->isValid()*/) { + const QFont standardFont = CBTConfig::getDefault(lang); //we just need a dummy lang param + langCSS.prepend( + QString("\n#content {font-family:%1; font-size:%2pt; font-weight:%3; font-style: %4;}\n") + .arg(standardFont.family()) + .arg(standardFont.pointSize()) + .arg(standardFont.bold() ? "bold" : "normal") + .arg(standardFont.italic() ? "italic" : "normal") + ); + } + +// qWarning("Outputing unformated text"); + const QString t = QString(m_templateMap[ templateName ]) //don't change the map's content directly, use a copy + .replace("#TITLE#", settings.title) + .replace("#LANG_ABBREV#", settings.langAbbrev.isEmpty() ? QString("en") : settings.langAbbrev) + .replace("#DISPLAYTYPE#", displayTypeString) + .replace("#LANG_CSS#", langCSS) + .replace("#PAGE_DIRECTION#", settings.pageDirection) + .replace("#CONTENT#", newContent); + //printf("%s\n\n", t.latin1()); + + return t; +/* QString(m_templateMap[ templateName ]) //don't change the map's content directly, use a copy + .replace("#TITLE#", settings.title) + .replace("#LANG_ABBREV#", settings.langAbbrev.isEmpty() ? QString("en") : settings.langAbbrev) + .replace("#DISPLAYTYPE#", displayTypeString) + .replace("#LANG_CSS#", langCSS) + .replace("#PAGE_DIRECTION#", settings.pageDirection) + .replace("#CONTENT#", newContent);*/ +} + + +/*! + \fn CDisplayTemplateMgr::loadUserTemplates + */ +void CDisplayTemplateMgr::loadUserTemplates() { + qDebug("Loading user templates"); + QStringList files = KGlobal::dirs()->findAllResources("BT_DisplayTemplates"); + + for ( QStringList::iterator it( files.begin() ); it != files.end(); ++it) { + qDebug("Found user template %s", (*it).latin1()); + + QFile f( *it ); + Q_ASSERT( f.exists() ); + + if (f.open( IO_ReadOnly )) { + QString fileContent = QTextStream( &f ).read(); + + if (!fileContent.isEmpty()) { + m_templateMap[ QFileInfo(*it).fileName() + QString(" ") + i18n("(user template)")] = fileContent; + } + } + } +} + +//Include the HTML templates which were put into a cpp file by a Perl script +#include "../display-templates/template-init.cpp" diff --git a/bibletime/backend/cdisplaytemplatemgr.h b/bibletime/backend/cdisplaytemplatemgr.h new file mode 100644 index 0000000..764fb69 --- /dev/null +++ b/bibletime/backend/cdisplaytemplatemgr.h @@ -0,0 +1,100 @@ +// +// C++ Interface: cdisplaytemplatemgr +// +// Description: +// +// +// Author: The BibleTime team <info@bibletime.info>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef CDISPLAYTEMPLATEMGR_H +#define CDISPLAYTEMPLATEMGR_H + +//BibleTime include +#include "cswordmoduleinfo.h" + +//Qt includes +#include <qmap.h> +#include <qstring.h> +#include <qstringlist.h> + +//KDE includes +#include <klocale.h> + +/** + * Manages the display templates used in the filters and display classes. + * @author The BibleTime team +*/ + +class CDisplayTemplateMgr { + +public: + /** Settings which are used to fill the content into the template. + */ + + struct Settings { + /** Constructor. Constructs the new settings object. The default values are empty. + */ + Settings() { + title = QString::null; + langAbbrev = QString::null; + pageCSS_ID = QString::null; + pageDirection = QString("ltr"); + }; + + ListCSwordModuleInfo modules; /**< the list of modules */ + QString title; /**< the title which is used for the new processed HTML page */ + QString langAbbrev; /**< the language for the HTML page. */ + QString pageDirection; /**< the language for the HTML page. */ + QString pageCSS_ID; /**< the CSS ID which is used in the content part of the page */ + }; + + /** Available templates. + * @return The list of templates, which are available. + */ + inline const QStringList availableTemplates(); + /** Fill template. Fill rendered content into the template given by the name. + * @param name The name of the template + * @param content The content which should be filled into the template + * @param settings The settings which are used to process the templating process + * @return The full HTML template HTML code including the CSS data. + */ + const QString fillTemplate( const QString& name, const QString& content, Settings& settings); + /** Default template. + * @return The i18n'ed name of the default template + */ + inline static const QString defaultTemplate(); + +protected: + + friend class CPointers; + /** Display template manager constructor. Protected to just allow CPointers to create objects. + */ + CDisplayTemplateMgr(); + /** Destructor. + */ + ~CDisplayTemplateMgr(); + + void loadUserTemplates(); + +private: + void init(); + QMap<QString, QString> m_templateMap; +}; + +inline const QString CDisplayTemplateMgr::defaultTemplate() { + return i18n("Default"); +} + +/** + * CDisplayTemplateMgr::availableTemplates() + */ +inline const QStringList CDisplayTemplateMgr::availableTemplates() { + return m_templateMap.keys(); +} + + + +#endif diff --git a/bibletime/backend/centrydisplay.cpp b/bibletime/backend/centrydisplay.cpp new file mode 100644 index 0000000..8fdcace --- /dev/null +++ b/bibletime/backend/centrydisplay.cpp @@ -0,0 +1,66 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "centrydisplay.h" + +#include "cswordkey.h" +#include "cswordversekey.h" +#include "cswordbookmoduleinfo.h" +#include "creferencemanager.h" +#include "cdisplaytemplatemgr.h" +#include "cdisplayrendering.h" + +#include "frontend/cbtconfig.h" + +#include "util/scoped_resource.h" + +//Qt includes +#include <qapplication.h> +#include <qregexp.h> + +using namespace Rendering; + +/** Returns the rendered text using the modules in the list and using the key parameter. + * The displayoptions and filter options are used, too. + */ +const QString CEntryDisplay::text( const ListCSwordModuleInfo& modules, const QString& keyName, const CSwordBackend::DisplayOptions displayOptions, const CSwordBackend::FilterOptions filterOptions ) { + CDisplayRendering render(displayOptions, filterOptions); + + //no highlighted key and no extra key link in the text + CTextRendering::KeyTreeItem::Settings normal_settings(false, CTextRendering::KeyTreeItem::Settings::CompleteShort); + CSwordModuleInfo* module = modules.first(); + QString result; + + //in Bibles and Commentaries we need to check if 0:0 and X:0 contain something + if (module->type() == CSwordModuleInfo::Bible || module->type() == CSwordModuleInfo::Commentary) { + ((VerseKey*)(module->module()->getKey()))->Headings(1); //HACK: enable headings for VerseKeys + + CSwordVerseKey k1(module); + k1.Headings(1); + k1.key(keyName); + + // don't print the key + CTextRendering::KeyTreeItem::Settings preverse_settings(false, CTextRendering::KeyTreeItem::Settings::NoKey); + + if (k1.Verse() == 1){ //X:1, prepend X:0 + if (k1.Chapter() == 1){ //1:1, also prepend 0:0 before that + k1.Chapter(0); + k1.Verse(0); + if ( k1.rawText().length() > 0 ) result.append( render.renderSingleKey(k1.key(), modules, preverse_settings ) ); + k1.Chapter(1); + } + k1.Verse(0); + if ( k1.rawText().length() > 0 ) result.append( render.renderSingleKey(k1.key(), modules, preverse_settings ) ); + } + } + return result.append( render.renderSingleKey(keyName, modules, normal_settings) ); +} diff --git a/bibletime/backend/centrydisplay.h b/bibletime/backend/centrydisplay.h new file mode 100644 index 0000000..141ed1d --- /dev/null +++ b/bibletime/backend/centrydisplay.h @@ -0,0 +1,53 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CENTRYDISPLAY_H +#define CENTRYDISPLAY_H + +//BibleTime includes +#include "ctextrendering.h" +#include "cswordmoduleinfo.h" +#include "cswordbackend.h" + +#include "util/cpointers.h" + +//Sword includes +#include <swdisp.h> + +//Qt includes +#include <qstring.h> + +class CSwordModuleInfo; + +namespace Rendering { + +/** +* The reimplementation of SWDisplay to fit our needs. +* @short Display implementation +* @author The BibleTime team +*/ + +class CEntryDisplay : public sword::SWDisplay, public CPointers { + +public: + virtual ~CEntryDisplay() {} + + /** + * Returns the rendered text using the modules in the list and using the key parameter. + * The displayoptions and filter options are used, too. + */ + virtual const QString text( const ListCSwordModuleInfo& modules, const QString& key, const CSwordBackend::DisplayOptions displayOptions, const CSwordBackend::FilterOptions filterOptions); +}; + + +} + +#endif diff --git a/bibletime/backend/chtmlexportrendering.cpp b/bibletime/backend/chtmlexportrendering.cpp new file mode 100644 index 0000000..a32d57c --- /dev/null +++ b/bibletime/backend/chtmlexportrendering.cpp @@ -0,0 +1,236 @@ +// +// C++ Implementation: chtmlexportrendering +// +// Description: +// +// +// Author: The BibleTime team <info@bibletime.info>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +//Backend +#include "chtmlexportrendering.h" + +#include "cdisplaytemplatemgr.h" +#include "clanguagemgr.h" +#include "cswordkey.h" +#include "cswordversekey.h" +#include "cswordmoduleinfo.h" + +//Util +#include "util/cpointers.h" +#include "util/scoped_resource.h" + +//KDE includes +#include <klocale.h> + +namespace Rendering { + + CHTMLExportRendering::CHTMLExportRendering(const CHTMLExportRendering::Settings& settings, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions) +: m_displayOptions(displayOptions), + m_filterOptions(filterOptions), + m_settings(settings) {} + + CHTMLExportRendering::~CHTMLExportRendering() {} + + const QString CHTMLExportRendering::renderEntry( const KeyTreeItem& i, CSwordKey* k) { + // qDebug("CHTMLExportRendering::renderEntry"); + + if (i.hasAlternativeContent()) { + QString ret; + ret.setLatin1(i.settings().highlight ? "<div class=\"currententry\">" : "<div class=\"entry\">"); + ret.append(i.getAlternativeContent()); + + // Q_ASSERT(i.hasChildItems()); + + if (i.hasChildItems()) { + KeyTree const * tree = i.childList(); + + const ListCSwordModuleInfo& modules( tree->collectModules() ); + + if (modules.count() == 1) { //insert the direction into the sorrounding div + ret.insert( 5, QString("dir=\"%1\" ").arg((modules.first()->textDirection() == CSwordModuleInfo::LeftToRight) ? "ltr" : "rtl" )); + } + + for ( KeyTreeItem* c = tree->first(); c; c = tree->next() ) { + ret.append( renderEntry( *c ) ); + } + } + + ret.append("</div>"); + return ret; //WARNING: Return already here! + } + + + const ListCSwordModuleInfo& modules( i.modules() ); + + Q_ASSERT(modules.count() >= 1); + + util::scoped_ptr<CSwordKey> scoped_key( !k ? CSwordKey::createInstance(modules.first()) : 0 ); + + CSwordKey* key = k ? k : scoped_key; + + Q_ASSERT(key); + + CSwordVerseKey* myVK = dynamic_cast<CSwordVerseKey*>(key); + + if ( myVK ) { + myVK->Headings(1); + } + + QString renderedText( (modules.count() > 1) ? "<tr>" : "" ); + + if (modules.count() == 0) { + return QString(""); //no module present for rendering + } + + // Only insert the table stuff if we are displaying parallel. + // Otherwise, strip out he table stuff -> the whole chapter will be rendered in one cell! + + //declarations out of the loop for optimization + QString entry; + + QString keyText; + + bool isRTL; + + //taken out of the loop for optimization + QString preverseHeading; + + QString langAttr; + + ListCSwordModuleInfo::const_iterator end_modItr = modules.end(); + + for (ListCSwordModuleInfo::const_iterator mod_Itr(modules.begin()); mod_Itr != end_modItr; ++mod_Itr) { + key->module(*mod_Itr); + key->key( i.key() ); + + keyText = key->key(); + isRTL = ((*mod_Itr)->textDirection() == CSwordModuleInfo::RightToLeft); + entry = QString::null; + + if ((*mod_Itr)->language()->isValid()) { + langAttr.setLatin1("xml:lang=\"") + .append((*mod_Itr)->language()->abbrev()) + .append("\" lang=\"") + .append((*mod_Itr)->language()->abbrev()) + .append("\""); + } + else { + langAttr.setLatin1("xml:lang=\"") + .append((*mod_Itr)->module()->Lang()) + .append("\" lang=\"") + .append((*mod_Itr)->module()->Lang()) + .append("\""); + } + + const QString key_renderedText = key->renderedText(); + + // qWarning(key_renderedText.latin1()); + + if (m_filterOptions.headings) { + AttributeValue::const_iterator it = + (*mod_Itr)->module()->getEntryAttributes()["Heading"]["Preverse"].begin(); + const AttributeValue::const_iterator end = + (*mod_Itr)->module()->getEntryAttributes()["Heading"]["Preverse"].end(); + + for (; it != end; ++it) { + preverseHeading = QString::fromUtf8(it->second.c_str()); + + //TODO: Take care of the heading type! + + if (!preverseHeading.isEmpty()) { + entry.append("<div ") + .append(langAttr) + .append(" class=\"sectiontitle\">") + .append(preverseHeading) + .append("</div>"); + } + } + } + + entry.append(m_displayOptions.lineBreaks ? "<div " : "<span "); + + if (modules.count() == 1) { //insert only the class if we're not in a td + entry.append( i.settings().highlight ? "class=\"currententry\" " : "class=\"entry\" " ); + } + + entry.append(langAttr).append(isRTL ? " dir=\"rtl\"" : " dir=\"ltr\"").append(">"); + + //keys should normally be left-to-right, but this doesn't apply in all cases + entry.append("<span class=\"entryname\" dir=\"ltr\">").append(entryLink(i, *mod_Itr)).append("</span>"); + + if (m_settings.addText) { + //entry.append( QString::fromLatin1("<span %1>%2</span>").arg(langAttr).arg(key_renderedText) ); + entry.append( key_renderedText ); + } + + if (i.hasChildItems()) { + KeyTree const * tree = i.childList(); + + for (KeyTreeItem* c = tree->first(); c; c = tree->next()) { + entry.append( renderEntry(*c) ); + } + } + + entry.append(m_displayOptions.lineBreaks ? "</div>\n" : "</span>\n"); + + if (modules.count() == 1) { + renderedText.append( entry ); + } + else { + renderedText.append("<td class=\"") + .append(i.settings().highlight ? "currententry" : "entry") + .append("\" ") + .append(langAttr) + .append(" dir=\"") + .append(isRTL ? "rtl" : "ltr") + .append("\">") + .append(entry) + .append("</td>\n"); + } + } + + if (modules.count() > 1) { + renderedText.append("</tr>\n"); + } + + // qDebug("CHTMLExportRendering: %s", renderedText.latin1()); + return renderedText; + } + + void CHTMLExportRendering::initRendering() { + CPointers::backend()->setDisplayOptions( m_displayOptions ); + CPointers::backend()->setFilterOptions( m_filterOptions ); + } + + const QString CHTMLExportRendering::finishText( const QString& text, KeyTree& tree ) { + ListCSwordModuleInfo modules = tree.collectModules(); + + const CLanguageMgr::Language* const lang = modules.first()->language(); + + CDisplayTemplateMgr* tMgr = CPointers::displayTemplateManager(); + CDisplayTemplateMgr::Settings settings; + settings.modules = modules; + settings.langAbbrev = ((modules.count() == 1) && lang->isValid()) + ? lang->abbrev() + : "unknown"; + settings.pageDirection = (modules.count() == 1) + ? ((modules.first()->textDirection() == CSwordModuleInfo::LeftToRight) ? "ltr" : "rtl") + : QString::null; + + return tMgr->fillTemplate(i18n("Export"), text, settings); + } + + /*! + \fn CHTMLExportRendering::entryLink( KeyTreeItem& item ) + */ + const QString CHTMLExportRendering::entryLink( const KeyTreeItem& item, CSwordModuleInfo* ) { + return item.key(); + } + +} + +; //end of namespace "Rendering" diff --git a/bibletime/backend/chtmlexportrendering.h b/bibletime/backend/chtmlexportrendering.h new file mode 100644 index 0000000..0526df9 --- /dev/null +++ b/bibletime/backend/chtmlexportrendering.h @@ -0,0 +1,60 @@ +// +// C++ Interface: chtmlexportrendering +// +// Description: +// +// +// Author: The BibleTime team <info@bibletime.info>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef RENDERINGCHTMLEXPORTRENDERING_H +#define RENDERINGCHTMLEXPORTRENDERING_H + +#include "cswordbackend.h" +#include "ctextrendering.h" + +#include "frontend/cbtconfig.h" + +namespace Rendering { + + /** + * This CTextRenerding implementation + * creates HTML specially made for export as HTML files. + * @short HTML rendering for export. + * @author The BibleTime team + */ + +class CHTMLExportRendering : public CTextRendering { + +public: + struct Settings { + Settings(const bool text = true) { + addText = text; + }; + + bool addText; + }; + + CHTMLExportRendering( + const Settings& settings, + CSwordBackend::DisplayOptions displayOptions = CBTConfig::getDisplayOptionDefaults(), + CSwordBackend::FilterOptions filterOptions = CBTConfig::getFilterOptionDefaults() + ); + virtual ~CHTMLExportRendering(); + +protected: + virtual const QString renderEntry( const KeyTreeItem&, CSwordKey* = 0 ); + virtual const QString finishText( const QString&, KeyTree& tree ); + virtual const QString entryLink( const KeyTreeItem& item, CSwordModuleInfo* module ); + virtual void initRendering(); + + CSwordBackend::DisplayOptions m_displayOptions; + CSwordBackend::FilterOptions m_filterOptions; + Settings m_settings; +}; + +} + +#endif diff --git a/bibletime/backend/clanguagemgr.cpp b/bibletime/backend/clanguagemgr.cpp new file mode 100644 index 0000000..ef05b3e --- /dev/null +++ b/bibletime/backend/clanguagemgr.cpp @@ -0,0 +1,499 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "clanguagemgr.h" + +#include "cswordmoduleinfo.h" +#include "cswordbackend.h" + +#include "util/cpointers.h" + + +//Qt includes +#include <qptrlist.h> + +//KDE includes +#include <klocale.h> + +//initialize static language list +CLanguageMgr::LanguageList CLanguageMgr::m_langList; +CLanguageMgr::LanguageList CLanguageMgr::m_cleanupLangPtrs; + +CLanguageMgr::Language::Language() : m_altAbbrevs(0) { + m_abbrev = QString::null; + m_englishName = QString::null; + m_translatedName = QString::null; +}; + +CLanguageMgr::Language::Language(const Language& l) { + m_abbrev = l.m_abbrev; + m_englishName = l.m_englishName; + m_translatedName = l.m_translatedName; + + if (l.m_altAbbrevs) { //copy alternative abbrevs in a new list + m_altAbbrevs = new QStringList(*l.m_altAbbrevs); + //*m_altAbbrevs = *l.m_altAbbrevs; + } + else { + m_altAbbrevs = 0; + } +} + +CLanguageMgr::Language::Language( const QString& abbrev, const QString& name, const QString& translatedName, const QStringList& altAbbrevs ) : m_altAbbrevs(0) { + m_abbrev = abbrev; + m_englishName = name; + m_translatedName = translatedName; + + if (altAbbrevs.count() > 0) { + m_altAbbrevs = new QStringList(); + *m_altAbbrevs = altAbbrevs; + } +}; + +CLanguageMgr::Language::~Language() { + delete m_altAbbrevs; +}; + + +/****************************************************/ +/******************** CLanguageMgr ******************/ +/****************************************************/ +CLanguageMgr::CLanguageMgr() : m_langMap(0) { + m_availableModulesCache.moduleCount = 0; + + init(); +} + +CLanguageMgr::~CLanguageMgr() { + m_cleanupLangPtrs.setAutoDelete(true); + m_cleanupLangPtrs.clear(); + + m_langList.setAutoDelete(true); + m_langList.clear(); +} + +const CLanguageMgr::LangMap& CLanguageMgr::availableLanguages() { + ListCSwordModuleInfo mods = CPointers::backend()->moduleList(); + + if ( m_availableModulesCache.moduleCount != mods.count() ) { //we have to refill the cached map + m_availableModulesCache.availableLanguages.clear(); + m_availableModulesCache.moduleCount = mods.count(); + + //collect the languages abbrevs of all modules + QStrList abbrevs; + char *abbrev; + + ListCSwordModuleInfo::iterator end_it = mods.end(); + + for (ListCSwordModuleInfo::iterator it(mods.begin()); it != end_it; ++it) { + // for (CSwordModuleInfo* m = mods.first(); m; m = mods.next()) { + abbrev = (*it)->module()->Lang(); + + if (abbrev && !abbrevs.contains(abbrev)) { + abbrevs.append( abbrev ); + } + }; + + //now create a map of available langs + for ( abbrev = abbrevs.first(); abbrev; abbrev = abbrevs.next() ) { + const Language* const lang = languageForAbbrev(abbrev); + + if (lang->isValid()) { + m_availableModulesCache.availableLanguages.insert( abbrev, lang ); + } + else { //invalid lang used by a modules, create a new language using the abbrev + Language* newLang = new Language(abbrev, abbrev, abbrev); + m_cleanupLangPtrs.append(newLang); + + m_availableModulesCache.availableLanguages.insert( abbrev, newLang ); + } + }; + } + + return m_availableModulesCache.availableLanguages; +}; + +const CLanguageMgr::Language* const CLanguageMgr::languageForAbbrev( const QString& abbrev ) const { + Language* lang = m_langMap.find(abbrev); + + if (lang) { + return lang; + } + + //try to search in the alternative abbrevs + //const LangMapIterator end = m_langMap.constEnd(); + for ( LangMapIterator it( m_langMap ); it.current(); ++it ) { + if (it.current()->alternativeAbbrevs() && it.current()->alternativeAbbrevs()->contains(abbrev)) { + return it.current(); + } + } + + // Invalid lang used by a modules, create a new language using the abbrev + Language* newLang = new Language(abbrev, abbrev, abbrev); //return a language which holds the valid abbrev + m_cleanupLangPtrs.append(newLang); + + return newLang; +}; + +const CLanguageMgr::Language* const CLanguageMgr::languageForName( const QString& name ) const { + for ( LangMapIterator it( m_langMap ); it.current(); ++it ) { + if (it.current()->name() == name) { + return it.current(); + } + } + + return &m_defaultLanguage;//invalid language +}; + +const CLanguageMgr::Language* const CLanguageMgr::languageForTranslatedName( const QString& name ) const { + for ( LangMapIterator it( m_langMap ); it.current(); ++it ) { + if (it.current()->translatedName() == name) { + return it.current(); + } + } + + return &m_defaultLanguage; //invalid language +}; + +void CLanguageMgr::init() { + //if we've already inserted all items we do not proceed + + if (m_langMap.count() > 0) { + return; + } + + /* + * Chris explained in an eMail how language codes are build: + + Preference order for locale codes are: + + ISO 639-1 + ISO 639-2 + Ethnologue (http://www.ethnologue.org/) + + We intend to always follow OSIS locale conventions, which state that + Ethnologue codes will be encoded in the format x-E-??? where ??? + represents the 3-letter Ethnologue code in capital letters (though + capitalization really doesn't matter here). + + Some older modules maintain a former format for Ethnolgoue codes of + xx-???, including the AleWiesler module. + + --Chris + + */ + + // m_langList.append( new Language("aa" , "Afar" , i18n("Afar")) ); + // m_langList.append( new Language("ab" , "Abkhazian" , i18n("Abkhazian")) ); + // m_langList.append( new Language("ae" , "Avestan" , i18n("Avestan")) ); + m_langList.append( new Language("af" , "Afrikaans" , i18n("Afrikaans")) ); + + // m_langList.append( new Language("am" , "Amharic" , i18n("Amharic")) ); + m_langList.append( new Language("ang", "English, Old (ca.450-1100)", i18n("English, Old (ca.450-1100)")) ); + + m_langList.append( new Language("ar" , "Arabic" , i18n("Arabic")) ); + + // m_langList.append( new Language("as" , "Assamese" , i18n("Assamese")) ); + m_langList.append( new Language("az" , "Azerbaijani" , i18n("Azerbaijani")) ); + + // m_langList.append( new Language("ba" , "Bashkir" , i18n("Bashkir")) ); + m_langList.append( new Language("be" , "Belarusian" , i18n("Belarusian")) ); + + m_langList.append( new Language("bg" , "Bulgarian" , i18n("Bulgarian")) ); + + // m_langList.append( new Language("bh" , "Bihari" , i18n("Bihari")) ); + // m_langList.append( new Language("bi" , "Bislama" , i18n("Bislama")) ); + // m_langList.append( new Language("bn" , "Bengali" , i18n("Bengali")) ); + // m_langList.append( new Language("bo" , "Tibetan" , i18n("Tibetan")) ); + m_langList.append( new Language("br" , "Breton" , i18n("Breton")) ); + + m_langList.append( new Language("bs" , "Bosnian" , i18n("Bosnian")) ); + + m_langList.append( new Language("ca" , "Catalan" , i18n("Catalan")) ); + + // m_langList.append( new Language("ce" , "Chechen" , i18n("Chechen")) ); + m_langList.append( new Language("ceb" , "Cebuano" , i18n("Cebuano")) ); + + m_langList.append( new Language("ch" , "Chamorro" , i18n("Chamorro")) ); + + // m_langList.append( new Language("co" , "Corsican" , i18n("Corsican")) ); + m_langList.append( new Language("cop" , "Coptic" , i18n("Coptic")) ); + + m_langList.append( new Language("cs" , "Czech" , i18n("Czech")) ); + + m_langList.append( new Language("cu" , "Church Slavic" , i18n("Church Slavic")) ); + + // m_langList.append( new Language("cv" , "Chuvash" , i18n("Chuvash")) ); + m_langList.append( new Language("cy" , "Welsh" , i18n("Welsh")) ); + + m_langList.append( new Language("da" , "Danish" , i18n("Danish")) ); + + m_langList.append( new Language("de" , "German" , i18n("German")) ); + + // m_langList.append( new Language("dz" , "Dzongkha" , i18n("Dzongkha")) ); + + m_langList.append( new Language("el" , "Greek, Modern (1453-)" , i18n("Greek, Modern (1453-)"), makeStringList("gre;ell")) ); + + m_langList.append( new Language("en" , "English" , i18n("English")) ); + + m_langList.append( new Language("en_US","American English" , i18n("American English")) ); + + m_langList.append( new Language("enm" , "English, Middle (1100-1500)", i18n("English, Middle (1100-1500)")) ); + + m_langList.append( new Language("eo" , "Esperanto" , i18n("Esperanto")) ); + + m_langList.append( new Language("es" , "Spanish" , i18n("Spanish")) ); + + m_langList.append( new Language("et" , "Estonian" , i18n("Estonian")) ); + + m_langList.append( new Language("eu" , "Basque" , i18n("Basque")) ); + + // m_langList.append( new Language("fa" , "Persian" , i18n("Persian")) ); + m_langList.append( new Language("fi" , "Finnish" , i18n("Finnish")) ); + + // m_langList.append( new Language("fj" , "Fijian" , i18n("Fijian")) ); + // m_langList.append( new Language("fo" , "Faroese" , i18n("Faroese")) ); + m_langList.append( new Language("fr" , "French" , i18n("French")) ); + + m_langList.append( new Language("fy" , "Frisian" , i18n("Frisian")) ); + + m_langList.append( new Language("ga" , "Irish" , i18n("Irish")) ); + + m_langList.append( new Language("gd" , "Gaelic (Scots)", i18n("Gaelic (Scots)")) ); + + // m_langList.append( new Language("gl" , "Gallegan" , i18n("Gallegan")) ); + // m_langList.append( new Language("gn" , "Guarani" , i18n("Guarani")) ); + // m_langList.append( new Language("gn" , "Gujarati" , i18n("Gujarati")) ); + m_langList.append( new Language("got" , "Gothic" , i18n("Gothic")) ); + + m_langList.append( new Language("gv" , "Manx" , i18n("Manx")) ); + + m_langList.append( new Language("grc" , "Greek, Ancient (to 1453)" , i18n("Greek, Ancient (to 1453)")) ); + + m_langList.append( new Language("he" , "Hebrew" , i18n("Hebrew")) ); + + m_langList.append( new Language("hau" , "Hausa" , i18n("Hausa")) ); + + m_langList.append( new Language("haw" , "Hawaiian" , i18n("Hawaiian")) ); + + // m_langList.append( new Language("hi" , "Hindi" , i18n("Hindi")) ); + // m_langList.append( new Language("ho" , "Hiri Motu" , i18n("Hiri Motu")) ); + m_langList.append( new Language("hr" , "Croatian" , i18n("Croatian")) ); + + m_langList.append( new Language("hu" , "Hungarian" , i18n("Hungarian")) ); + + m_langList.append( new Language("hy" , "Armenian" , i18n("Armenian")) ); + + // m_langList.append( new Language("hz" , "Herero" , i18n("Herero")) ); + + // m_langList.append( new Language("ia" , "Interlingua" , i18n("Interlingua")) ); + m_langList.append( new Language("id" , "Indonesian" , i18n("Indonesian")) ); + + // m_langList.append( new Language("ie" , "Interlingue" , i18n("Interlingue")) ); + // m_langList.append( new Language("ik" , "Inupiaq" , i18n("Inupiaq")) ); + m_langList.append( new Language("is" , "Icelandic" , i18n("Icelandic")) ); + + m_langList.append( new Language("it" , "Italian" , i18n("Italian")) ); + + // m_langList.append( new Language("iu" , "Inuktitut" , i18n("Inuktitut")) ); + + m_langList.append( new Language("ja" , "Japanese" , i18n("Japanese")) ); + + m_langList.append( new Language("ka" , "Georgian" , i18n("Georgian")) ); + + // m_langList.append( new Language("x-E-KAB" , "Kabyle" , i18n("Kabyle")) ); + // m_langList.append( new Language("ki" , "Kikuyu" , i18n("Kikuyu")) ); + // m_langList.append( new Language("kj" , "Kuanyama" , i18n("Kuanyama")) ); + // m_langList.append( new Language("kk" , "Kazakh" , i18n("Kazakh")) ); + // m_langList.append( new Language("kl" , "Kalaallisut" , i18n("Kalaallisut")) ); + // m_langList.append( new Language("km" , "Khmer" , i18n("Khmer")) ); + // m_langList.append( new Language("kn" , "Kannada" , i18n("Kannada")) ); + m_langList.append( new Language("ko" , "Korean" , i18n("Korean")) ); + + // m_langList.append( new Language("ks" , "Kashmiri" , i18n("Kashmiri")) ); + m_langList.append( new Language("ku" , "Kurdish" , i18n("Kurdish")) ); + + // m_langList.append( new Language("kv" , "Komi" , i18n("Komi")) ); + // m_langList.append( new Language("kw" , "Cornish" , i18n("Cornish")) ); + m_langList.append( new Language("ky" , "Kirghiz" , i18n("Kirghiz")) ); + + m_langList.append( new Language("la" , "Latin" , i18n("Latin")) ); + + // m_langList.append( new Language("lb" , "Letzeburgesch" , i18n("Letzeburgesch")) ); + // m_langList.append( new Language("ln" , "Lingala" , i18n("Lingala")) ); + // m_langList.append( new Language("lo" , "Lao" , i18n("Lao")) ); + m_langList.append( new Language("lt" , "Lithuanian" , i18n("Lithuanian")) ); + + m_langList.append( new Language("lv" , "Latvian" , i18n("Latvian")) ); + + // m_langList.append( new Language("mg" , "Malagasy" , i18n("Malagasy")) ); + // m_langList.append( new Language("mh" , "Marshall" , i18n("Marshall")) ); + m_langList.append( new Language("mi" , "Maori" , i18n("Maori")) ); + + m_langList.append( new Language("mk" , "Macedonian" , i18n("Macedonian")) ); + + // m_langList.append( new Language("ml" , "Malayalam" , i18n("Malayalam")) ); + // m_langList.append( new Language("mn" , "Mongolian" , i18n("Mongolian")) ); + // m_langList.append( new Language("mo" , "Moldavian" , i18n("Moldavian")) ); + m_langList.append( new Language("mos" , "More" , i18n("More")) ); + + // m_langList.append( new Language("mr" , "Marathi" , i18n("Marathi")) ); + m_langList.append( new Language("ms" , "Malay" , i18n("Malay")) ); + + m_langList.append( new Language("mt" , "Maltese" , i18n("Maltese")) ); + + // m_langList.append( new Language("my" , "Burmese" , i18n("Burmese")) ); + + // m_langList.append( new Language("na" , "Nauru" , i18n("Nauru")) ); + // m_langList.append( new Language("nb" , "Norwegian BokmÃ¥l" , i18n("Norwegian BokmÃ¥l")) ); + // m_langList.append( new Language("nd" , "Ndebele, North" , i18n("Ndebele, North")) ); + m_langList.append( new Language("nds" , "Low German; Low Saxon" , i18n("Low German; Low Saxon")) ); + + // m_langList.append( new Language("ne" , "Nepali" , i18n("Nepali")) ); + // m_langList.append( new Language("ng" , "Ndonga" , i18n("Ndonga")) ); + m_langList.append( new Language("nl" , "Dutch" , i18n("Dutch")) ); + + // m_langList.append( new Language("nn" , "Norwegian Nynorsk" , i18n("Norwegian Nynorsk")) ); + m_langList.append( new Language("no" , "Norwegian" , i18n("Norwegian")) ); + + // m_langList.append( new Language("nr" , "Ndebele, South" , i18n("Ndebele, South")) ); + // m_langList.append( new Language("nv" , "Navajo" , i18n("Navajo")) ); + // m_langList.append( new Language("ny" , "Chichewa; Nyanja" , i18n("Chichewa; Nyanja")) ); + + // m_langList.append( new Language("oc" , "Occitan (post 1500); Provençal" , i18n("Occitan (post 1500); Provençal")) ); + // m_langList.append( new Language("om" , "Oromo" , i18n("Oromo")) ); + // m_langList.append( new Language("or" , "Oriya" , i18n("Oriya")) ); + // m_langList.append( new Language("os" , "Ossetian; Ossetic" , i18n("Ossetian; Ossetic")) ); + + // m_langList.append( new Language("pa" , "Panjabi" , i18n("Panjabi")) ); + m_langList.append( new Language("pap" , "Papiamento" , i18n("Papiamento")) ); + + // m_langList.append( new Language("pi" , "Pali" , i18n("Pali")) ); + m_langList.append( new Language("pl" , "Polish" , i18n("Polish")) ); + + // m_langList.append( new Language("ps" , "Pushto" , i18n("Pushto")) ); + m_langList.append( new Language("pt" , "Portuguese" , i18n("Portuguese")) ); + + m_langList.append( new Language("pt_BR" , "Brasilian Portuguese" , i18n("Brasilian Portuguese")) );//added by ourself + + // m_langList.append( new Language("qu" , "Quechua" , i18n("Quechua")) ); + + // m_langList.append( new Language("rm" , "Raeto-Romance" , i18n("Raeto-Romance")) ); + // m_langList.append( new Language("rn" , "Rundi" , i18n("Rundi")) ); + + m_langList.append( new Language("ro" , "Romanian" , i18n("Romanian")) ); + + m_langList.append( new Language("ru" , "Russian" , i18n("Russian")) ); + + // m_langList.append( new Language("rw" , "Kinyarwanda" , i18n("Kinyarwanda")) ); + + // m_langList.append( new Language("sa" , "Sanskrit" , i18n("Sanskrit")) ); + // m_langList.append( new Language("sc" , "Sardinian" , i18n("Sardinian")) ); + m_langList.append( new Language("sco" , "Scots" , i18n("Scots")) ); + + // m_langList.append( new Language("sd" , "Sindhi" , i18n("Sindhi")) ); + // m_langList.append( new Language("se" , "Northern Sami" , i18n("Northern Sami")) ); + // m_langList.append( new Language("sg" , "Sango" , i18n("Sango")) ); + // m_langList.append( new Language("si" , "Sinhalese" , i18n("Sinhalese")) ); + m_langList.append( new Language("sk" , "Slovak" , i18n("Slovak")) ); + + m_langList.append( new Language("sl" , "Slovenian" , i18n("Slovenian")) ); + + // m_langList.append( new Language("sm" , "Samoan" , i18n("Samoan")) ); + // m_langList.append( new Language("sn" , "Shona" , i18n("Shona")) ); + m_langList.append( new Language("so" , "Somali" , i18n("Somali")) ); + + m_langList.append( new Language("sq" , "Albanian" , i18n("Albanian")) ); + + // m_langList.append( new Language("sr" , "Serbian" , i18n("Serbian")) ); + // m_langList.append( new Language("ss" , "Swati" , i18n("Swati")) ); + // m_langList.append( new Language("st" , "Sotho, Southern" , i18n("Sotho, Southern")) ); + // m_langList.append( new Language("su" , "Sundanese" , i18n("Sundanese")) ); + m_langList.append( new Language("sv" , "Swedish" , i18n("Swedish")) ); + + m_langList.append( new Language("sw" , "Swahili" , i18n("Swahili")) ); + + m_langList.append( new Language("syr" , "Syriac" , i18n("Syriac")) ); + + m_langList.append( new Language("ta" , "Tamil" , i18n("Tamil")) ); + + // m_langList.append( new Language("te" , "Telugu" , i18n("Telugu")) ); + // m_langList.append( new Language("tg" , "Tajik" , i18n("Tajik")) ); + m_langList.append( new Language("th" , "Thai" , i18n("Thai")) ); + + // m_langList.append( new Language("tk" , "Turkmen" , i18n("Turkmen")) ); + m_langList.append( new Language("tl" , "Tagalog" , i18n("Tagalog")) ); + + m_langList.append( new Language("tn" , "Tswana" , i18n("Tswana")) ); + + m_langList.append( new Language("tr" , "Turkish" , i18n("Turkish")) ); + + // m_langList.append( new Language("ts" , "Tsonga" , i18n("Tsonga")) ); + // m_langList.append( new Language("tt" , "Tatar" , i18n("Tatar")) ); + // m_langList.append( new Language("tw" , "Twi" , i18n("Twi")) ); + m_langList.append( new Language("ty" , "Tahitian" , i18n("Tahitian")) ); + + // + // m_langList.append( new Language("ug" , "Uighur" , i18n("Uighur")) ); + m_langList.append( new Language("uk" , "Ukrainian" , i18n("Ukrainian")) ); + + // m_langList.append( new Language("ur" , "Urdu" , i18n("Urdu")) ); + // m_langList.append( new Language("uz" , "Uzbek" , i18n("Uzbek")) ); + + m_langList.append( new Language("vi" , "Vietnamese" , i18n("Vietnamese")) ); + + // m_langList.append( new Language("vo" , "Volapük" , i18n("Volapük")) ); + // + // m_langList.append( new Language("wo" , "Wolof" , i18n("Wolof")) ); + + m_langList.append( new Language("xh" , "Xhosa" , i18n("Xhosa")) ); + + m_langList.append( new Language("x-E-BAR" , "Bavarian" , i18n("Bavarian")) ); + + m_langList.append( new Language("x-E-DJE" , "Zarma" , i18n("Zarma")) ); + + m_langList.append( new Language("x-E-GSW" , "Alemannisch" , i18n("Alemannisch")) ); + + m_langList.append( new Language("x-E-HAT" , "Haitian Creole French" , i18n("Haitian Creole French")) ); + + m_langList.append( new Language("x-E-ITZ" , QString::fromUtf8("Itzá") , i18n("Itzá")) ); + + m_langList.append( new Language("x-E-JIV" , "Shuar" , i18n("Shuar")) ); + + m_langList.append( new Language("x-E-KEK" , QString::fromUtf8("Kekchí") , i18n("Kekchí")) ); + + m_langList.append( new Language("x-E-KAB" , "Kabyle" , i18n("Kabyle")) ); + + m_langList.append( new Language("x-E-LMO" , "Lombard" , i18n("Lombard")) ); + + m_langList.append( new Language("x-E-MKJ" , "Macedonian" , i18n("Macedonian")) ); + + m_langList.append( new Language("x-E-PDG" , "Tok Pisin" , i18n("Tok Pisin")) ); + + m_langList.append( new Language("x-E-PPK" , "Uma" , i18n("Uma")) ); + + m_langList.append( new Language("x-E-RMY" , "Romani, Vlax" , i18n("Romani, Vlax")) ); + + m_langList.append( new Language("x-E-SAJ" , "Sango" , i18n("Sango")) ); + + m_langList.append( new Language("x-E-SRN" , "Sranan" , i18n("Sranan")) ); + + // m_langList.append( new Language("yi" , "Yiddish" , i18n("Yiddish")) ); + // + // m_langList.append( new Language("za" , "Zhuang" , i18n("Zhuang")) ); + m_langList.append( new Language("zh" , "Chinese" , i18n("Chinese")) ); + + m_langList.append( new Language("zu" , "Zulu" , i18n("Zulu")) ); + + for ( Language* lang = m_langList.first(); lang; lang = m_langList.next() ) { + m_langMap.insert( lang->abbrev(), lang); + }; +}; diff --git a/bibletime/backend/clanguagemgr.h b/bibletime/backend/clanguagemgr.h new file mode 100644 index 0000000..2acc4c7 --- /dev/null +++ b/bibletime/backend/clanguagemgr.h @@ -0,0 +1,172 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CLANGUAGEMGR_H +#define CLANGUAGEMGR_H + +//Qt includes +#include <qstring.h> +#include <qstringlist.h> +#include <qvaluelist.h> +#include <qmap.h> +#include <qdict.h> + +/** Manages the anguages of BibleTime and provides functions to work with them. + * @author The BibleTime team + */ + +class CLanguageMgr { + +public: + /** Language container. + * This class (Language) contains the information about the chosen language. + */ + class Language { + public: + /** Default constructor of a language object. + * Uses the abbreviation parameter to lookup the + * language name and to be able to return the name, flag etc. + * Possible values for abbrev are de, en, fr, it etc. + */ + Language(); + /** Copy constructor. + */ + Language(const Language&); + /** Constructor which takes all necessary data. + */ + Language(const QString& abbrev, const QString& englishName, const QString& translatedName, const QStringList& altAbbrevs = QStringList()); + /** Destructor. + */ + ~Language(); + /** Returns the abbreviation. + * @return The abbreviation of the chosen language. + */ + inline const QString& abbrev() const; + /** Returns the translated name. + * @return The translated name of the language. + */ + inline const QString& translatedName() const; + //always define inlines in the header file, or make them not inline. + /** The english name of the language. + * @return The english name of the chosen language. + */ + inline const QString& name() const { + return m_englishName; + } + + /** The alternative abbreviations which are avalable for this language. + * @return A pointer to the list of alternate abbreviations + */ + inline const QStringList* const alternativeAbbrevs() const { + return m_altAbbrevs; + }; + + /** + * Returns true if this language object is valid, i.e. has an abbrev and name. + * @return True if the data is valid for this language. + */ + inline const bool isValid() const; + + private: + QString m_abbrev; + QString m_englishName; + QString m_translatedName; + QStringList* m_altAbbrevs; + }; + + typedef QPtrList<CLanguageMgr::Language> LanguageList; + + typedef QDict<Language> LangMap; + typedef QDictIterator<Language> LangMapIterator; + + /** Constructor. + */ + CLanguageMgr(); + /** Destructor + */ + virtual ~CLanguageMgr(); + /** + * Returns the standard languages available as standard. Does nothing for Sword. + * @return A QDict<Language> map which contains all known languages + */ + inline const CLanguageMgr::LangMap* const languages() const; + /** + * Returns the languages which are available. The languages cover all available modules, but nothing more. + * @return A map of all languages with modules available for them + */ + const CLanguageMgr::LangMap& availableLanguages(); + /** Language for abbreviation. + * @param abbrev The language abbreviation + * @return Pointer to a language for the given string abbreviation. + */ + const CLanguageMgr::Language* const languageForAbbrev( const QString& abbrev ) const; + /** Language for english name. + * @param abbrev The english language name. + * @return Pointer to a language for the given name + */ + const CLanguageMgr::Language* const languageForName( const QString& language ) const; + /** Language for translated language name. + * @param abbrev The translated language name + * @return Pointer to a language for the given translated language name + */ + const CLanguageMgr::Language* const languageForTranslatedName( const QString& language ) const; + /** Default language so we don't return NULL pointers. + * @return Pointer to the default language + */ + inline const CLanguageMgr::Language* const defaultLanguage() const; + +private: + void init(); + inline const QStringList makeStringList(const QString& abbrevs) { + return QStringList::split( ";", abbrevs, false ); + } + + mutable LangMap m_langMap; + Language m_defaultLanguage; + + //typedef QPtrList<CLanguageMgr::Language> LanguageList; + static LanguageList m_langList; + static LanguageList m_cleanupLangPtrs; + + struct ModuleCache { + unsigned int moduleCount; + LangMap availableLanguages; + } + m_availableModulesCache; +}; + + +/** Returns true if this language object is valid, i.e. has an abbrev and name. */ +inline const bool CLanguageMgr::Language::isValid() const { + return (!abbrev().isEmpty() && !name().isEmpty()); +} + +inline const QString& CLanguageMgr::Language::abbrev() const { + if (m_altAbbrevs && m_abbrev.isEmpty() && m_altAbbrevs->count()) { //no standard abbrev but alternative ones + return m_altAbbrevs->first(); + } + + return m_abbrev; +} + +inline const QString& CLanguageMgr::Language::translatedName() const { + return m_translatedName; +} + +inline const CLanguageMgr::LangMap* const CLanguageMgr::languages() const { + return &m_langMap; +} + +inline const CLanguageMgr::Language* const CLanguageMgr::defaultLanguage() const { + return &m_defaultLanguage; +} + +#endif diff --git a/bibletime/backend/cplaintextexportrendering.cpp b/bibletime/backend/cplaintextexportrendering.cpp new file mode 100644 index 0000000..37d0fa0 --- /dev/null +++ b/bibletime/backend/cplaintextexportrendering.cpp @@ -0,0 +1,58 @@ +// +// C++ Implementation: cplaintextexportrendering +// +// Description: +// +// +// Author: The BibleTime team <info@bibletime.info>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +//Backend includes +#include "cplaintextexportrendering.h" +#include "cswordkey.h" + +//Util +#include "util/scoped_resource.h" + + + +namespace Rendering { + + CPlainTextExportRendering::CPlainTextExportRendering(const CPlainTextExportRendering::Settings& settings, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions) +: CHTMLExportRendering(settings, displayOptions, filterOptions) {} + + CPlainTextExportRendering::~CPlainTextExportRendering() {} + + const QString CPlainTextExportRendering::renderEntry( const KeyTreeItem& i, CSwordKey* ) { + if (!m_settings.addText) { + return QString(i.key()).append("\n"); + } + + ListCSwordModuleInfo modules = i.modules(); + util::scoped_ptr<CSwordKey> key( CSwordKey::createInstance(modules.first()) ); + QString renderedText = QString(i.key()).append(":\n"); + + QString entry; + // for (CSwordModuleInfo* m = modules.first(); m; m = modules.next()) { + ListCSwordModuleInfo::iterator end_it = modules.end(); + + for (ListCSwordModuleInfo::iterator it(modules.begin()); it != end_it; ++it) { + key->module(*it); + key->key( i.key() ); + + //ToDo: Check this code + entry.append(key->strippedText()).append("\n"); + renderedText.append( entry ); + } + + return renderedText; + } + + const QString CPlainTextExportRendering::finishText( const QString& oldText, KeyTree& ) { + return oldText; + } + +}; diff --git a/bibletime/backend/cplaintextexportrendering.h b/bibletime/backend/cplaintextexportrendering.h new file mode 100644 index 0000000..95a1cae --- /dev/null +++ b/bibletime/backend/cplaintextexportrendering.h @@ -0,0 +1,42 @@ +// +// C++ Interface: cplaintextexportrendering +// +// Description: +// +// +// Author: The BibleTime team <info@bibletime.info>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef RENDERINGCPLAINTEXTEXPORTRENDERING_H +#define RENDERINGCPLAINTEXTEXPORTRENDERING_H + +#include "chtmlexportrendering.h" + +namespace Rendering { + + /** + * This implementation can be used to export content as plain text. + * @short Text rendering as plain text. + * @author The BibleTime team + */ + +class CPlainTextExportRendering : public CHTMLExportRendering { + +public: + CPlainTextExportRendering( + const Settings& settings, + CSwordBackend::DisplayOptions displayOptions = CBTConfig::getDisplayOptionDefaults(), + CSwordBackend::FilterOptions filterOptions = CBTConfig::getFilterOptionDefaults() + ); + virtual ~CPlainTextExportRendering(); + +protected: + virtual const QString renderEntry( const KeyTreeItem&, CSwordKey* = 0 ); + virtual const QString finishText( const QString&, KeyTree& tree ); + }; + +}; + +#endif diff --git a/bibletime/backend/creferencemanager.cpp b/bibletime/backend/creferencemanager.cpp new file mode 100644 index 0000000..7b41e7f --- /dev/null +++ b/bibletime/backend/creferencemanager.cpp @@ -0,0 +1,434 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "creferencemanager.h" +#include "cswordversekey.h" + +#include "../frontend/cbtconfig.h" + +//QT includes +#include <qregexp.h> + +//stl includes +#include <algorithm> // STL algorithms class library + +/** Returns a hyperlink used to be imbedded in the display windows. At the moment the format is sword://module/key */ +const QString CReferenceManager::encodeHyperlink( const QString moduleName, const QString key, const CReferenceManager::Type type) { + QString ret = QString::null; + + switch (type) { + + case Bible: + ret.setLatin1("sword://Bible/"); + break; + + case Commentary: + ret.setLatin1("sword://Commentary/"); + break; + + case Lexicon: + ret.setLatin1("sword://Lexicon/"); + break; + + case GenericBook: + ret.setLatin1("sword://Book/"); + break; + + case MorphHebrew: + ret.setLatin1("morph://Hebrew/"); + break; + + case MorphGreek: + ret.setLatin1("morph://Greek/"); + break; + + case StrongsHebrew: + ret.setLatin1("strongs://Hebrew/"); + break; + + case StrongsGreek: + ret.setLatin1("strongs://Greek/"); + break; + + default: + break; + } + + if (!moduleName.isEmpty()) { + ret.append( moduleName ).append('/'); + } + else { //if module is empty use fallback module + ret.append( preferredModule(type) ).append('/'); + } + + if (type == GenericBook) { + const QString s = (!key.isEmpty() ? key : QString::null); + QString newKey = QString::null; + //replace all / of the key (e.g. of a CSwordTreeKey) with + // the escape sequence \/ so we know it's a link internal divider (e.g. of CSwordTreeKey)! + + QChar c; + + for(unsigned int i = 0; i < s.length(); ++i) { + c = s.at(i); + + if (c == '/') { + newKey.append("\\/"); + } + else { + newKey.append(c); + } + } + + ret.append( newKey ); + } + else { //slashes do not appear in verses and dictionary entries + + switch (type) { + + case Bible: //bibles or commentary keys need parsing + + case Commentary: { +/* CSwordModuleInfo* mod = CPointers::backend()->findModuleByName(moduleName); + + ParseOptions options; + options.refDestinationModule = mod->name(); + options.refBase = + options.sourceLanguage = mod->module()->Lang(); + options.destinationLanguage = "en"; + + ret.append( parseVerseReference(key, options) ); //we add the english key, so drag and drop will work in all cases*/ + ret.append(key); + break; + } + + default: + ret.append( key ); //use the standard key, no parsing required + break; + } + } + + return ret; +} + +/** Decodes the given hyperlink to module and key. */ +const bool CReferenceManager::decodeHyperlink( const QString& hyperlink, QString& module, QString& key, CReferenceManager::Type& type ) { + /** + * We have to decide between three types of URLS: sword://Type/Module/Key, morph://Testament/key and strongs://Testament/Key + */ + module = QString::null; + key = QString::null; + + type = Unknown; //not yet known + QString ref = hyperlink; + //remove the trailing slash + + if (ref.right(1)=="/" && ref.right(2) != "\\/") //trailing slash, but not escaped + ref = ref.left(ref.length()-1); + + //find out which type we have by looking at the beginning (protocoll section of URL) + if (ref.left(8).lower() == "sword://") { //Bible, Commentary or Lexicon + ref = ref.mid(8); + + if (ref.left(5).lower() == "bible") { //a bible hyperlink + type = CReferenceManager::Bible; + ref = ref.mid(6); //inclusive trailing slash + } + else if (ref.left(10).lower() == "commentary") { // a Commentary hyperlink + type = CReferenceManager::Commentary; + ref = ref.mid(11); //inclusive trailing slash + } + else if (ref.left(7).lower() == "lexicon") { // a Lexicon hyperlink + type = CReferenceManager::Lexicon; + ref = ref.mid(8); //inclusive trailing slash + } + else if (ref.left(4).lower() == "book") { // a Book hyperlink + type = CReferenceManager::GenericBook; + ref = ref.mid(5); //inclusive trailing slash + } + + // string up to next slash is the modulename + if (ref.at(0) != '/' ) { //we have a module given + + while (true) { + const int pos = ref.find("/"); + + if ((pos>0) && ref.at(pos-1) != '\\') { //found a slash which is not escaped + module = ref.mid(0,pos); + ref = ref.mid(pos+1); + break; + } + else if (pos == -1) { + break; + } + } + + // the rest is the key + key = ref; + } + else { + key = ref.mid(1); + } + + //the key may be an osis key like "NASBLex:Moses", which sets the module, too + // const int modPos = key.find(":"); + // if (modPos != -1 && key.at(modPos-1).isLetter() && key.at(modPos+1).isLetter()) { + // module = key.left(modPos); + // key = key.mid(modPos+1); + // + // qWarning("found the module name %s with key %s", module.latin1(), key.latin1()); + // } + + //replace \/ escapes with / + key.replace(QRegExp("\\\\/"), "/"); + } + else if (ref.left(8).lower() == "morph://" || ref.left(10).lower() == "strongs://") { //strongs or morph URL have the same format + enum PreType {IsMorph, IsStrongs}; + PreType preType = IsMorph; + + if (ref.left(8).lower() == "morph://") { //morph code hyperlink + ref = ref.mid(8); + preType = IsMorph; + } + else if (ref.left(10).lower() == "strongs://") { + ref = ref.mid(10); + preType = IsStrongs; + } + + //part up to next slash is the language + const int pos = ref.find("/"); + + if (pos>0) { //found + const QString language = ref.mid(0,pos); + + if (language.lower() == "hebrew") { + switch (preType) { + + case IsMorph: + type = CReferenceManager::MorphHebrew; + break; + + case IsStrongs: + type = CReferenceManager::StrongsHebrew; + break; + } + } + else if (language.lower() == "greek") { + switch (preType) { + + case IsMorph: + type = CReferenceManager::MorphGreek; + break; + + case IsStrongs: + type = CReferenceManager::StrongsGreek; + break; + } + } + + ref = ref.mid(pos+1); + key = ref; //the remaining part is the key + + module = preferredModule(type); + } + } + + if (key.isEmpty() && module.isEmpty()) + return false; + + return true; +} + +const QString CReferenceManager::encodeReference(const QString &module, const QString &reference) { + //return QString("(%1)%2").arg(module).arg(reference); + return QString("(").append(module).append(")").append(reference); +} + +void CReferenceManager::decodeReference(QString &dragreference, QString &module, QString &reference) { + const int pos = dragreference.find(")"); + const QString fallbackModule = dragreference.mid( 1, pos - 1); + dragreference = dragreference.mid(pos+1); + + module = fallbackModule; + reference = dragreference; +} + +/** Returns true if the parameter is a hyperlink. */ +const bool CReferenceManager::isHyperlink( const QString& hyperlink ) { + return ( hyperlink.left(8) == "sword://") + || (hyperlink.left(10) == "strongs://") + || (hyperlink.left(8) == "morph://"); +} + +/** Returns the preferred module name for the given type. */ +const QString CReferenceManager::preferredModule( const CReferenceManager::Type type ) { + QString moduleName = QString::null; + CSwordModuleInfo* module = 0; + + switch (type) { + + case CReferenceManager::Bible: + + module = CBTConfig::get + ( CBTConfig::standardBible ); + + break; + + case CReferenceManager::Commentary: + module = CBTConfig::get + ( CBTConfig::standardCommentary ); + + break; + + case CReferenceManager::Lexicon: + module = CBTConfig::get + ( CBTConfig::standardLexicon ); + + break; + + case CReferenceManager::StrongsHebrew: + module = CBTConfig::get + ( CBTConfig::standardHebrewStrongsLexicon ); + + break; + + case CReferenceManager::StrongsGreek: + module = CBTConfig::get + ( CBTConfig::standardGreekStrongsLexicon ); + + break; + + case CReferenceManager::MorphHebrew: + module = CBTConfig::get + ( CBTConfig::standardHebrewMorphLexicon ); + + break; + + case CReferenceManager::MorphGreek: + module = CBTConfig::get + ( CBTConfig::standardGreekMorphLexicon ); + + break; + + default: + module = 0; + + break; + } + + return module ? module->name() : QString::null; +} + +/** No descriptions */ +CReferenceManager::Type CReferenceManager::typeFromModule( const CSwordModuleInfo::ModuleType type) { + switch (type) { + + case CSwordModuleInfo::Bible: + return CReferenceManager::Bible; + + case CSwordModuleInfo::Commentary: + return CReferenceManager::Commentary; + + case CSwordModuleInfo::Lexicon: + return CReferenceManager::Lexicon; + + case CSwordModuleInfo::GenericBook: + return CReferenceManager::GenericBook; + + default: + return CReferenceManager::Unknown; + } +} + +/** Parses the given verse references using the given language and the module.*/ +const QString CReferenceManager::parseVerseReference( const QString& ref, const CReferenceManager::ParseOptions& options) { + + CSwordModuleInfo* const mod = CPointers::backend()->findModuleByName(options.refDestinationModule); + Q_ASSERT(mod); + + if (!mod) { + //parsing of non-verse based references is not supported + return ref; + } + + if ((mod->type() != CSwordModuleInfo::Bible) && (mod->type() != CSwordModuleInfo::Commentary)) { + qDebug("CReferenceManager: Only verse based modules are supported as ref destination module"); + return QString::null; + } + + QString sourceLanguage = options.sourceLanguage; + QString destinationLanguage = options.destinationLanguage; + + StringList locales = sword::LocaleMgr::getSystemLocaleMgr()->getAvailableLocales(); + if (/*options.sourceLanguage == "en" ||*/ std::find(locales.begin(), locales.end(), sourceLanguage) == locales.end()) { //sourceLanguage not available + sourceLanguage = "en_US"; + } + + if (/*options.destinationLanguage == "en" ||*/ std::find(locales.begin(), locales.end(), sourceLanguage) == locales.end()) { //destination not available + destinationLanguage = "en_US"; + } + + + QString ret; + QStringList refList = QStringList::split(";", ref); + + CSwordVerseKey baseKey(0); + baseKey.setLocale( sourceLanguage.latin1() ); + baseKey.key( options.refBase ); //probably in the sourceLanguage + baseKey.setLocale( "en_US" ); //english works in all environments as base + +// CSwordVerseKey dummy(0); + //HACK: We have to workaround a Sword bug, we have to set the default locale to the same as the sourceLanguage ! + const QString oldLocaleName = CPointers::backend()->booknameLanguage(); + CPointers::backend()->booknameLanguage(sourceLanguage); + + VerseKey dummy; + dummy.setLocale( sourceLanguage.latin1() ); + Q_ASSERT( !strcmp(dummy.getLocale(), sourceLanguage.latin1()) ); + +// qDebug("Parsing '%s' in '%s' using '%s' as base, source lang '%s', dest lang '%s'", ref.latin1(), options.refDestinationModule.latin1(), baseKey.key().latin1(), sourceLanguage.latin1(), destinationLanguage.latin1()); + + for (QStringList::iterator it = refList.begin(); it != refList.end(); it++) { + //The listkey may contain more than one item, because a ref lik "Gen 1:3,5" is parsed into two single refs + ListKey lk = dummy.ParseVerseList((const char*)(*it).utf8(), (const char*)baseKey.key().utf8(), true); + Q_ASSERT(!dummy.Error()); + + Q_ASSERT(lk.Count()); + if (!lk.Count()) { + ret.append( *it ); //don't change the original + continue; + } + + for (int i = 0; i < lk.Count(); ++i) { + if (dynamic_cast<VerseKey*>(lk.getElement(i))) { // a range + VerseKey* k = dynamic_cast<VerseKey*>(lk.getElement(i)); + Q_ASSERT(k); + k->setLocale( destinationLanguage.latin1() ); + + ret.append( QString::fromUtf8(k->getRangeText()) ).append("; "); + } + else { // a single ref + VerseKey vk; + vk.setLocale( sourceLanguage.latin1() ); + vk = lk.getElement(i)->getText(); + vk.setLocale( destinationLanguage.latin1() ); + + ret.append( QString::fromUtf8(vk.getText()) ).append("; "); + } + } + + } + + CPointers::backend()->booknameLanguage(oldLocaleName); +// qDebug(" %s", ret.latin1()); + + return ret; +} diff --git a/bibletime/backend/creferencemanager.h b/bibletime/backend/creferencemanager.h new file mode 100644 index 0000000..343e3ef --- /dev/null +++ b/bibletime/backend/creferencemanager.h @@ -0,0 +1,112 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CREFERENCEMANAGER_H +#define CREFERENCEMANAGER_H + +//Qt includes +#include <qstring.h> + +#include "cswordmoduleinfo.h" + +/** Contains static functions to work with referneces used for Drag & Drop and for hyperlinks used in our + * rendered HTML code. + * @author The BibleTime team + */ + +class CReferenceManager { + +public: + enum Type { + Bible, /**< Bibles */ + Commentary, /**< Commentary */ + Lexicon, /**< Lexicon */ + GenericBook, /**< Generic Book */ + MorphHebrew, /**< Module for hebrew morphology*/ + MorphGreek, /**< Module for greek morphology */ + StrongsHebrew, /**< Module for hebrew strongs */ + StrongsGreek, /**< Module for greek strongs */ + Unknown /**< Unknown */ + }; + + /** Turn a hyperlink into module, key and type. + * Decodes the given hyperlink into module, key and type. + * @param hyperlink The hyperlink to decode + * @param module The string which will contain the module name after decoding + * @param key The string which will contain the key after decoding + * @param type The type param will contain the reference type after decoding + */ + static const bool decodeHyperlink( const QString& hyperlink, QString& module, QString& key, Type& type); + /** + * Returns a hyperlink used to be imbedded in the display windows. + * At the moment the format is sword://module/key + * @param module The module which is used to encode the hyperlink + * @param key The key which is used to encode the hyperlink + * @param type The type which is used to encode the hyperlink + * @return The encoded hyperlink + */ + static const QString encodeHyperlink( const QString module, const QString key, const Type type); + /** + * Puts a module Name and a Reference together in the 'draggable' form + * (module)reference + * @param module The name of the module + * @param reference The key reference as text + * @return The encoded reference using module and reference + * @author Martin Gruner + */ + static const QString encodeReference(const QString &module, const QString &reference); + /** + * decodes a 'draggable' reference into a modulename and a reference + * @author Martin Gruner + */ + static void decodeReference(QString &dragreference, QString &module, QString &reference); + /** + * Returns true if the parameter is a hyperlink. + * @param hyperlink The string which is tested + * @return True if the passed string is a hyperlink + */ + static const bool isHyperlink( const QString& hyperlink ); + /** + * Returns the preferred module name for the given type. + * @param type The type which is used to find the module + * @return The default module name for the passed type + */ + static const QString preferredModule( const Type type ); + /** + * Returns the type of the passed module type + * @param type The CSwordModuleInfo module typpe + * @return The ReferenceManager type + */ + static CReferenceManager::Type typeFromModule( const CSwordModuleInfo::ModuleType type ); + + + struct ParseOptions { + QString refDestinationModule; + QString refBase; /* only valid for verse based destination modules*/ + QString sourceLanguage; /* only valid for verse based destination modules*/ + QString destinationLanguage; /* only valid for verse based destination modules*/ + + ParseOptions() { + destinationLanguage = "en"; + }; + }; + + /** Parses the given verse references using the given language and the module. + * @param moduleName The name of the module to use. Required for the language checking before parsing the key. + * @param ref The verse reference. + * @param lang The language of the verse reference + * @param newLang The language of the reference, which will be returned. For example: If BibleTime using an english environment parses a spanish ref (lang=es) the returned ref should be in english (newLang=en), because his english standard module only understands en. + */ + static const QString parseVerseReference( const QString& ref, const ParseOptions& options); +}; + +#endif + diff --git a/bibletime/backend/cswordbackend.cpp b/bibletime/backend/cswordbackend.cpp new file mode 100644 index 0000000..f46b444 --- /dev/null +++ b/bibletime/backend/cswordbackend.cpp @@ -0,0 +1,692 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "cswordbackend.h" +#include "centrydisplay.h" +#include "cbookdisplay.h" +#include "cchapterdisplay.h" +#include "cswordbiblemoduleinfo.h" +#include "cswordcommentarymoduleinfo.h" +#include "cswordlexiconmoduleinfo.h" +#include "cswordbookmoduleinfo.h" + +#include "bt_thmlhtml.h" +#include "bt_thmlplain.h" +#include "bt_osishtml.h" +#include "bt_gbfhtml.h" +#include "bt_plainhtml.h" +#include "osismorphsegmentation.h" + +#include "frontend/cbtconfig.h" + +#include <dirent.h> +#include <unistd.h> +#include <ctype.h> + +//Qt includes +#include <qdir.h> +#include <qfileinfo.h> + +//KDE includes +#include <klocale.h> +#include <kstringhandler.h> + +//Sword includes +#include <swdisp.h> +#include <swfiltermgr.h> +#include <encfiltmgr.h> +#include <rtfhtml.h> +#include <filemgr.h> +#include <utilstr.h> +#include <swfilter.h> + +using std::string; + +using namespace Filters; + +using namespace Rendering; + +CSwordBackend::CSwordBackend() +: sword::SWMgr(0, 0, false, new sword::EncodingFilterMgr( sword::ENC_UTF8 ), true) { + m_displays.entry = 0; + m_displays.chapter = 0; + m_displays.book = 0; + + m_filters.gbf = 0; + m_filters.thml = 0; + m_filters.osis = 0; + m_filters.plain = 0; + + filterInit(); +} + +CSwordBackend::CSwordBackend(const QString& path, const bool augmentHome) +: sword::SWMgr(!path.isEmpty() ? (const char*)path.local8Bit() : 0, false, new sword::EncodingFilterMgr( sword::ENC_UTF8 ), false, augmentHome) // don't allow module renaming, because we load from a path +{ + qDebug("CSwordBackend::CSwordBackend for %s, using %s", path.latin1(), configPath); + m_displays.entry = 0; + m_displays.chapter = 0; + m_displays.book = 0; + + m_filters.gbf = 0; + m_filters.thml = 0; + m_filters.osis = 0; + m_filters.plain = 0; + + filterInit(); +} + +CSwordBackend::~CSwordBackend() { + shutdownModules(); + + delete m_filters.gbf; + delete m_filters.plain; + delete m_filters.thml; + delete m_filters.osis; + + delete m_displays.book; + delete m_displays.chapter; + delete m_displays.entry; +} + +/** Initializes the Sword modules. */ +const CSwordBackend::LoadError CSwordBackend::initModules() { + // qWarning("globalSwordConfigPath is %s", globalConfPath); + LoadError ret = NoError; + + shutdownModules(); //remove previous modules + m_moduleList.clear(); + + sword::ModMap::iterator end = Modules.end(); + ret = LoadError( Load() ); + + for (sword::ModMap::iterator it = Modules.begin(); it != end; it++) { + sword::SWModule* const curMod = (*it).second; + CSwordModuleInfo* newModule = 0; + + if (!strcmp(curMod->Type(), "Biblical Texts")) { + newModule = new CSwordBibleModuleInfo(curMod, this); + newModule->module()->Disp( + m_displays.chapter + ? m_displays.chapter + : (m_displays.chapter = new CChapterDisplay) + ); + } + else if (!strcmp(curMod->Type(), "Commentaries")) { + newModule = new CSwordCommentaryModuleInfo(curMod, this); + newModule->module()->Disp( + m_displays.entry + ? m_displays.entry + : (m_displays.entry = new CEntryDisplay) + ); + } + else if (!strcmp(curMod->Type(), "Lexicons / Dictionaries")) { + newModule = new CSwordLexiconModuleInfo(curMod, this); + newModule->module()->Disp( + m_displays.entry + ? m_displays.entry + : (m_displays.entry = new CEntryDisplay) + ); + } + else if (!strcmp(curMod->Type(), "Generic Books")) { + newModule = new CSwordBookModuleInfo(curMod, this); + newModule->module()->Disp( + m_displays.book + ? m_displays.book + : (m_displays.book = new CBookDisplay) + ); + } + + if (newModule) { + //append the new modules to our list, but only if it's supported + //the constructor of CSwordModuleInfo prints a waring on stdout + if (!newModule->hasVersion() || (newModule->minimumSwordVersion() <= sword::SWVersion::currentVersion)) { + m_moduleList.append( newModule ); + } + } + } + + ListCSwordModuleInfo::iterator end_it = m_moduleList.end(); + + for (ListCSwordModuleInfo::iterator it = m_moduleList.begin() ; it != end_it; ++it) { + // for (m_moduleList.first(); m_moduleList.current(); m_moduleList.next()) { + m_moduleDescriptionMap.insert( (*it)->config(CSwordModuleInfo::Description), (*it)->name() ); + } + + //unlock modules if keys are present + // ListCSwordModuleInfo::iterator end_it = m_moduleList.end(); + for (ListCSwordModuleInfo::iterator it = m_moduleList.begin() ; it != end_it; ++it) { + // for (m_moduleList.first(); m_moduleList.current(); m_moduleList.next()) { + + if ( (*it)->isEncrypted() ) { + const QString unlockKey = CBTConfig::getModuleEncryptionKey( (*it)->name() ).latin1(); + + if (!unlockKey.isNull()) { + setCipherKey( (*it)->name().latin1(), unlockKey.latin1() ); + } + } + } + + return ret; +} + +void CSwordBackend::AddRenderFilters(sword::SWModule *module, sword::ConfigEntMap §ion) { + sword::SWBuf moduleDriver; + sword::SWBuf sourceformat; + sword::ConfigEntMap::iterator entry; + bool noDriver = true; + + sourceformat = ((entry = section.find("SourceType")) != section.end()) ? (*entry).second : (sword::SWBuf) ""; + moduleDriver = ((entry = section.find("ModDrv")) != section.end()) ? (*entry).second : (sword::SWBuf) ""; + + if (sourceformat == "GBF") { + if (!m_filters.gbf) { + m_filters.gbf = new BT_GBFHTML(); + } + module->AddRenderFilter(m_filters.gbf); + noDriver = false; + } + else if (sourceformat == "PLAIN") { + if (!m_filters.plain) { + m_filters.plain = new BT_PLAINHTML(); + } + module->AddRenderFilter(m_filters.plain); + noDriver = false; + } + else if (sourceformat == "ThML") { + if (!m_filters.thml) { + m_filters.thml = new BT_ThMLHTML(); + } + module->AddRenderFilter(m_filters.thml); + noDriver = false; + } + else if (sourceformat == "OSIS") { + if (!m_filters.osis) { + m_filters.osis = new BT_OSISHTML(); + } + + module->AddRenderFilter(m_filters.osis); + noDriver = false; + } + + if (noDriver) { //no driver found + if ( (moduleDriver == "RawCom") || (moduleDriver == "RawLD") ) { + if (!m_filters.plain) { + m_filters.plain = new BT_PLAINHTML(); + } + module->AddRenderFilter(m_filters.plain); + noDriver = false; + } + } +} + +/** This function deinitializes the modules and deletes them. */ +const bool CSwordBackend::shutdownModules() { + ListCSwordModuleInfo::iterator it = m_moduleList.begin(); + ListCSwordModuleInfo::iterator end = m_moduleList.end(); + + while (it != end) { + CSwordModuleInfo* current = (*it); + it = m_moduleList.remove(it); + + delete current; + } + + Q_ASSERT(m_moduleList.count() == 0); + + //BT mods are deleted now, delete Sword mods, too. + DeleteMods(); + + return true; +} + +/** Returns true if the given option is enabled. */ +const bool CSwordBackend::isOptionEnabled( const CSwordModuleInfo::FilterTypes type) { + return (getGlobalOption( optionName(type).latin1() ) == "On"); +} + +/** Sets the given options enabled or disabled depending on the second parameter. */ +void CSwordBackend::setOption( const CSwordModuleInfo::FilterTypes type, const int state ) { + sword::SWBuf value; + + switch (type) { + + case CSwordModuleInfo::textualVariants: + + if (state == 0) { + value = "Primary Reading"; + } + else if (state == 1) { + value = "Secondary Reading"; + } + else { + value = "All Readings"; + } + + break; + + default: + value = state ? "On": "Off"; + break; + }; + + if (value.length()) + setGlobalOption(optionName(type).latin1(), value.c_str()); +} + +void CSwordBackend::setFilterOptions( const CSwordBackend::FilterOptions options) { + setOption( CSwordModuleInfo::footnotes, options.footnotes ); + setOption( CSwordModuleInfo::strongNumbers, options.strongNumbers ); + setOption( CSwordModuleInfo::headings, options.headings ); + setOption( CSwordModuleInfo::morphTags, options.morphTags ); + setOption( CSwordModuleInfo::lemmas, options.lemmas ); + setOption( CSwordModuleInfo::hebrewPoints, options.hebrewPoints ); + setOption( CSwordModuleInfo::hebrewCantillation, options.hebrewCantillation ); + setOption( CSwordModuleInfo::greekAccents, options.greekAccents ); + setOption( CSwordModuleInfo::redLetterWords, options.redLetterWords ); + setOption( CSwordModuleInfo::textualVariants, options.textualVariants ); + setOption( CSwordModuleInfo::morphSegmentation, options.morphSegmentation ); + // setOption( CSwordModuleInfo::transliteration, options.transliteration ); + setOption( CSwordModuleInfo::scriptureReferences, options.scriptureReferences); +} + +void CSwordBackend::setDisplayOptions( const CSwordBackend::DisplayOptions ) { + /* if (m_displays.entry) { + m_displays.entry->setDisplayOptions(options); + } + if (m_displays.chapter) { + m_displays.chapter->setDisplayOptions(options); + } + if (m_displays.book) { + m_displays.book->setDisplayOptions(options); + } + */ +} + +/** This function searches for a module with the specified description */ +CSwordModuleInfo* const CSwordBackend::findModuleByDescription(const QString& description) { + CSwordModuleInfo* ret = 0; + ListCSwordModuleInfo::iterator end_it = m_moduleList.end(); + + for (ListCSwordModuleInfo::iterator it = m_moduleList.begin() ; it != end_it; ++it) { + if ( (*it)->config(CSwordModuleInfo::Description) == description ) { + ret = *it; + break; + } + } + + return ret; +} + +/** This function searches for a module with the specified description */ +const QString CSwordBackend::findModuleNameByDescription(const QString& description) { + if (m_moduleDescriptionMap.contains(description)) { + return m_moduleDescriptionMap[description]; + } + + return QString::null; +} + +/** This function searches for a module with the specified name */ +CSwordModuleInfo* const CSwordBackend::findModuleByName(const QString& name) { + CSwordModuleInfo* ret = 0; + + ListCSwordModuleInfo::iterator end_it = m_moduleList.end(); + + for (ListCSwordModuleInfo::iterator it = m_moduleList.begin() ; it != end_it; ++it) { + if ( (*it)->name() == name ) { + ret = *it; + break; + } + } + + return ret; +} + +CSwordModuleInfo* const CSwordBackend::findSwordModuleByPointer(const sword::SWModule* const swmodule) { + CSwordModuleInfo* ret = 0; + ListCSwordModuleInfo::iterator end_it = m_moduleList.end(); + + for (ListCSwordModuleInfo::iterator it = m_moduleList.begin() ; it != end_it; ++it) { + if ( (*it)->module() == swmodule ) { + ret = *it; + break; + } + } + + return ret; +} + +CSwordModuleInfo* const CSwordBackend::findModuleByPointer(const CSwordModuleInfo* const module) { + CSwordModuleInfo* ret = 0; + + ListCSwordModuleInfo::iterator end_it = m_moduleList.end(); + + for (ListCSwordModuleInfo::iterator it = m_moduleList.begin() ; it != end_it; ++it) { + if ( (*it) == module ) { + ret = *it; + break; + } + } + + return ret; +} + +/** Returns our local config object to store the cipher keys etc. locally for each user. The values of the config are merged with the global config. */ +const bool CSwordBackend::moduleConfig(const QString& module, sword::SWConfig& moduleConfig) { + sword::SectionMap::iterator section; + DIR *dir = opendir(configPath); + + struct dirent *ent; + + bool foundConfig = false; + QString modFile; + + if (dir) { // find and update .conf file + rewinddir(dir); + + while ((ent = readdir(dir)) && !foundConfig) { + if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) { + modFile.setLatin1(configPath); + modFile.append("/"); + modFile.append( QString::fromLocal8Bit(ent->d_name) ); + + moduleConfig = sword::SWConfig( (const char*)modFile.local8Bit() ); + section = moduleConfig.Sections.find( (const char*)module.local8Bit() ); + foundConfig = ( section != moduleConfig.Sections.end() ); + } + } + + closedir(dir); + } + else { //try to read mods.conf + moduleConfig = sword::SWConfig("");//global config + section = config->Sections.find( (const char*)module.local8Bit() ); + foundConfig = ( section != config->Sections.end() ); + + sword::ConfigEntMap::iterator entry; + + if (foundConfig) { //copy module section + + for (entry = (*section).second.begin(); entry != (*section).second.end(); entry++) { + moduleConfig.Sections[(*section).first].insert(sword::ConfigEntMap::value_type((*entry).first, (*entry).second)); + } + } + } + + if (!foundConfig && configType != 2) { //search in $HOME/.sword/ + QString myPath(getenv("HOME")); + myPath.append("/.sword/mods.d"); + dir = opendir(myPath.latin1()); + + if (dir) { + rewinddir(dir); + + while ((ent = readdir(dir)) && !foundConfig) { + if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) { + modFile = myPath; + modFile.append('/'); + modFile.append(ent->d_name); + moduleConfig = sword::SWConfig( (const char*)modFile.local8Bit() ); + section = moduleConfig.Sections.find( (const char*)module.local8Bit() ); + foundConfig = ( section != moduleConfig.Sections.end() ); + } + } + + closedir(dir); + } + } + + return foundConfig; +} + +/** Returns the text used for the option given as parameter. */ +const QString CSwordBackend::optionName( const CSwordModuleInfo::FilterTypes option ) { + switch (option) { + + case CSwordModuleInfo::footnotes: + return QString("Footnotes"); + + case CSwordModuleInfo::strongNumbers: + return QString("Strong's Numbers"); + + case CSwordModuleInfo::headings: + return QString("Headings"); + + case CSwordModuleInfo::morphTags: + return QString("Morphological Tags"); + + case CSwordModuleInfo::lemmas: + return QString("Lemmas"); + + case CSwordModuleInfo::hebrewPoints: + return QString("Hebrew Vowel Points"); + + case CSwordModuleInfo::hebrewCantillation: + return QString("Hebrew Cantillation"); + + case CSwordModuleInfo::greekAccents: + return QString("Greek Accents"); + + case CSwordModuleInfo::redLetterWords: + return QString("Words of Christ in Red"); + + case CSwordModuleInfo::textualVariants: + return QString("Textual Variants"); + + case CSwordModuleInfo::scriptureReferences: + return QString("Cross-references"); + + case CSwordModuleInfo::morphSegmentation: + return QString("Morph Segmentation"); + // case CSwordModuleInfo::transliteration: + // return QString("Transliteration"); + } + + return QString::null; +} + +/** Returns the translated name of the option given as parameter. */ +const QString CSwordBackend::translatedOptionName(const CSwordModuleInfo::FilterTypes option) { + switch (option) { + + case CSwordModuleInfo::footnotes: + return i18n("Footnotes"); + + case CSwordModuleInfo::strongNumbers: + return i18n("Strong's numbers"); + + case CSwordModuleInfo::headings: + return i18n("Headings"); + + case CSwordModuleInfo::morphTags: + return i18n("Morphological tags"); + + case CSwordModuleInfo::lemmas: + return i18n("Lemmas"); + + case CSwordModuleInfo::hebrewPoints: + return i18n("Hebrew vowel points"); + + case CSwordModuleInfo::hebrewCantillation: + return i18n("Hebrew cantillation marks"); + + case CSwordModuleInfo::greekAccents: + return i18n("Greek accents"); + + case CSwordModuleInfo::redLetterWords: + return i18n("Red letter words"); + + case CSwordModuleInfo::textualVariants: + return i18n("Textual variants"); + + case CSwordModuleInfo::scriptureReferences: + return i18n("Scripture cross-references"); + + case CSwordModuleInfo::morphSegmentation: + return i18n("Morph segmentation"); + // case CSwordModuleInfo::transliteration: + // return i18n("Transliteration between scripts"); + } + + return QString::null; +} + + +const QString CSwordBackend::configOptionName( const CSwordModuleInfo::FilterTypes option ) { + switch (option) { + + case CSwordModuleInfo::footnotes: + return QString("Footnotes"); + + case CSwordModuleInfo::strongNumbers: + return QString("Strongs"); + + case CSwordModuleInfo::headings: + return QString("Headings"); + + case CSwordModuleInfo::morphTags: + return QString("Morph"); + + case CSwordModuleInfo::lemmas: + return QString("Lemma"); + + case CSwordModuleInfo::hebrewPoints: + return QString("HebrewPoints"); + + case CSwordModuleInfo::hebrewCantillation: + return QString("Cantillation"); + + case CSwordModuleInfo::greekAccents: + return QString("GreekAccents"); + + case CSwordModuleInfo::redLetterWords: + return QString("RedLetterWords"); + + case CSwordModuleInfo::textualVariants: + return QString("Variants"); + + case CSwordModuleInfo::scriptureReferences: + return QString("Scripref"); + + case CSwordModuleInfo::morphSegmentation: + return QString("MorphSegmentation"); + + default: + return QString::null; + } + + return QString::null; +} + +const QString CSwordBackend::booknameLanguage( const QString& language ) { + if (!language.isEmpty()) { + sword::LocaleMgr::getSystemLocaleMgr()->setDefaultLocaleName( language.latin1() ); + + //refresh the locale of all Bible and commentary modules! + const ListCSwordModuleInfo::iterator end_it = m_moduleList.end(); + + //use what sword returns, language may be different + QString newLocaleName( sword::LocaleMgr::getSystemLocaleMgr()->getDefaultLocaleName() ); + + for (ListCSwordModuleInfo::iterator it = m_moduleList.begin(); it != end_it; ++it) { + if ( ((*it)->type() == CSwordModuleInfo::Bible) || ((*it)->type() == CSwordModuleInfo::Commentary) ) { + //Create a new key, it will get the default bookname language + ((sword::VerseKey*)((*it)->module()->getKey()))->setLocale( newLocaleName.latin1() ); + } + } + + } + + return QString( sword::LocaleMgr::getSystemLocaleMgr()->getDefaultLocaleName() ); +} + + +/** Reload all Sword modules. */ +void CSwordBackend::reloadModules() { + shutdownModules(); + + //delete Sword's config to make Sword reload it! + + if (myconfig) { // force reload on config object because we may have changed the paths + delete myconfig; + config = myconfig = 0; + loadConfigDir(configPath); + } + else if (config) { + config->Load(); + } + + initModules(); +} + +const QStringList CSwordBackend::swordDirList() { + QStringList ret; + const QString home = QString(getenv("HOME")); + + //return a list of used Sword dirs. Useful for the installer + QString configPath = QString("%1/.sword/sword.conf").arg(home); + + if (!QFile(configPath).exists()) { + configPath = globalConfPath; //e.g. /etc/sword.conf, /usr/local/etc/sword.conf + + + } + + + QStringList configs = QStringList::split(":", configPath); + + /*ToDo: Use the const iterator as soon as we switch to Qt > 3.1 + for (QStringList::const_iterator it = configs.constBegin(); it != configs.constEnd(); ++it) {*/ + + for (QStringList::const_iterator it = configs.begin(); it != configs.end(); ++it) { + if (!QFileInfo(*it).exists()) { + continue; + } + + //get all DataPath and AugmentPath entries from the config file and add them to the list + sword::SWConfig conf( (*it).latin1() ); + + ret << conf["Install"]["DataPath"].c_str(); + + sword::ConfigEntMap group = conf["Install"]; + + sword::ConfigEntMap::iterator start = group.equal_range("AugmentPath").first; + + sword::ConfigEntMap::iterator end = group.equal_range("AugmentPath").second; + + for (sword::ConfigEntMap::const_iterator it = start; it != end; ++it) { + ret << it->second.c_str(); //added augment path + } + } + + if (!home.isEmpty()) { + ret << home + "/.sword/"; + } + + return ret; +} + +void CSwordBackend::filterInit() { + // qWarning("## INIT"); + + SWOptionFilter* tmpFilter = new OSISMorphSegmentation(); + optionFilters.insert(OptionFilterMap::value_type("OSISMorphSegmentation", tmpFilter)); + cleanupFilters.push_back(tmpFilter); + + //HACK: replace Sword's ThML strip filter with our own version + //remove this hack as soon as Sword is fixed + cleanupFilters.remove(thmlplain); + delete thmlplain; + thmlplain = new BT_ThMLPlain(); + cleanupFilters.push_back(thmlplain); +} diff --git a/bibletime/backend/cswordbackend.h b/bibletime/backend/cswordbackend.h new file mode 100644 index 0000000..90d7031 --- /dev/null +++ b/bibletime/backend/cswordbackend.h @@ -0,0 +1,266 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSWORDBACKEND_H +#define CSWORDBACKEND_H + +//BibleTime includes +#include "cswordmoduleinfo.h" +//#include "centrydisplay.h" + +//Qt includes +#include <qptrlist.h> +#include <qmap.h> +#include <qstring.h> +#include <qstringlist.h> + +//Sword includes +#include <swmgr.h> +#include <swbuf.h> +#include <swmodule.h> +#include <swversion.h> +#include <localemgr.h> +#include <utilstr.h> + +using namespace sword; + +namespace Rendering { + + class CEntryDisplay; + + class CChapterDisplay; + + class CBookDisplay; +} + +/** The backend layer main class. + * This is the implementation of CBackend for Sword. It's additionally derived from SWMgr + * to provide functions of Sword. + * + * @short The backend implementation of Sword + * @author The BibleTime team + * @version $Id: cswordbackend.h,v 1.58 2007/03/14 21:32:47 joachim Exp $ + */ + +class CSwordBackend : public sword::SWMgr { + +public: + /** Filter options. Filter options to + * control the text display of modules. Uses int and not bool because not all + * options have just two toggle values. + */ + + struct FilterOptions { + int footnotes; /**< 0 for disabled, 1 for enabled */ + int strongNumbers; /**< 0 for disabled, 1 for enabled */ + int headings; /**< 0 for disabled, 1 for enabled */ + int morphTags; /**< 0 for disabled, 1 for enabled */ + int lemmas; /**< 0 for disabled, 1 for enabled */ + int hebrewPoints; /**< 0 for disabled, 1 for enabled */ + int hebrewCantillation; /**< 0 for disabled, 1 for enabled */ + int greekAccents; /**< 0 for disabled, 1 for enabled */ + int textualVariants; /**< Number n to enabled the n-th variant */ + int redLetterWords; /**< 0 for disabled, 1 for enabled */ + int scriptureReferences; /**< 0 for disabled, 1 for enabled */ + int morphSegmentation; /**< 0 for disabled, 1 for enabled */ + }; + + /** Control the display of a text. + */ + + struct DisplayOptions { + int lineBreaks; + int verseNumbers; + }; + + /** The error codes which may be returned by the @ref Load() call. + */ + enum LoadError { // the values exist to cast from the char return of SWMgr::Load + NoSwordConfig = -1, + NoError = 0, + NoModules = 1 + }; + /** + * The constructor of the Sword backend. + * It creates the SWModule objects using SWMgr's methods, it adds the necessary + * filters for the module format. + */ + CSwordBackend(); + /** + * The constructor of the Sword backend. + * @param path The path which is used to load modules + * @param augmentHome True if the $HOME/.sword/ modules should be augmented with the other modules + */ + CSwordBackend( const QString& path, const bool augmentHome = true ); + + /** + * The destrctor of this backend. This function shuts the modules down using @ref shutdownModules. + */ + virtual ~CSwordBackend(); + + /** + * This function returns the list of available modules managed by this backend. + * You have to call initModules() first; + * + * @return The list of modules managed by this backend + */ + inline virtual ListCSwordModuleInfo& moduleList(); + /** + * Initializes the Sword modules. + * + * @return True if the initializiation was succesful, otherwise return false. + */ + virtual const CSwordBackend::LoadError initModules(); + /** + * This function deinitializes the modules and deletes them. + * + * @return True if it was succesful, otherwise return false + */ + virtual const bool shutdownModules(); + /** + * Sets the given options enabled or disabled depending on the second parameter. + * + * @param type This is the type this function should set enabled or disabled + * @param enable If this is true the option will be enabled, otherwise it will be disabled. + */ + void setOption( const CSwordModuleInfo::FilterTypes type, const int state ); + void setFilterOptions( const CSwordBackend::FilterOptions options ); + void setDisplayOptions( const CSwordBackend::DisplayOptions options ); + /** + * Returns true if the given option is enabled. + * + * @return Returns true if the options given as aparameter is switched on at this time, otherwise return false. + */ + virtual const bool isOptionEnabled( const CSwordModuleInfo::FilterTypes type); + /** + * Sets the language for the international booknames of Sword. + * @param langName The abbreviation string which should be used for the Sword backend + */ + const QString booknameLanguage( const QString& langName = QString::null ); + /** + * This function searches for a module with the specified description + * @param description The description of the desired module + * @return pointer to the desired module; null if no module has the specified description + */ + virtual CSwordModuleInfo* const findModuleByDescription(const QString& description); + /** + * This function searches for a module with the specified description + * @param description The description of the desired module + * @return pointer to the desired module; null if no module has the specified description + */ + const QString findModuleNameByDescription(const QString& description); + /** + * This function searches for a module with the specified name + * @param name The name of the desired module + * @return Pointer to the desired module; null if no module has the specified name + */ + CSwordModuleInfo* const findModuleByName(const QString& name); + /** + * This function searches for a module with the specified sword module as module() object! + * @param swmodule to a Sword module + * @return pointer to the desired module; null if no module has the specified name + */ + CSwordModuleInfo* const findSwordModuleByPointer(const sword::SWModule* const swmodule); + /** + * This function searches for a module which is the same as the passed module. + * @param module The module which should be used for searching the new one. May be child of a different backend. + * @return Pointer to the desired module; null if no module has the specified name + */ + CSwordModuleInfo* const findModuleByPointer(const CSwordModuleInfo* const module); + /** + * @return Our global config object which contains the configs of all modules merged together. + */ + inline sword::SWConfig* const getConfig() const; + /** + * Tries to find the config object for the module. The second paramter will be the found config. + * @return True if the config was found, false if not. If false is returned the moduleConfig object is in undefined/unknwon state. + */ + const bool moduleConfig(const QString& module, sword::SWConfig& moduleConfig ); + /** + * Returns the text used for the option given as parameter. + * @param The paramter enum + * @return The name of the option given by the parameter + */ + static const QString optionName( const CSwordModuleInfo::FilterTypes option ); + /** + * Returns the text used for the option given as parameter. + */ + static const QString configOptionName( const CSwordModuleInfo::FilterTypes option ); + /** + * Returns the translated name of the option given as parameter. + * @param The translated option name + */ + static const QString translatedOptionName(const CSwordModuleInfo::FilterTypes option ); + /** + * Returns the version of the Sword library. + * @return The version used by this backend + */ + inline virtual const sword::SWVersion Version(); + /** + * Reload all Sword modules. + */ + void reloadModules(); + /** Sword prefix list. + * @return A list of all known Sword prefix dirs + */ + const QStringList swordDirList(); + +protected: + /** + * Adds a render filter to the module. + * @param module Add a render filter to this module! + */ + virtual void AddRenderFilters(sword::SWModule *module, sword::ConfigEntMap §ion); + /** + * Initializes the filters provided by BibleTime. + */ + virtual void filterInit(); + +private: + // Filters + + struct Filters { + sword::SWFilter *gbf; + sword::SWFilter *plain; + sword::SWFilter *thml; + sword::SWFilter *osis; + } + + m_filters; + + struct Displays { + Rendering::CChapterDisplay* chapter; + Rendering::CEntryDisplay* entry; + Rendering::CBookDisplay* book; + } + + m_displays; + + ListCSwordModuleInfo m_moduleList; + QMap<QString, QString> m_moduleDescriptionMap; +}; + +/**Returns The list of modules managed by this backend*/ +inline ListCSwordModuleInfo& CSwordBackend::moduleList() { + return m_moduleList; +} + +/** Returns our local config object to store the cipher keys etc. locally for each user. The values of the config are merged with the global config. */ +inline sword::SWConfig* const CSwordBackend::getConfig() const { + return config; +} + +/** Returns the version of the Sword library. */ +inline const sword::SWVersion CSwordBackend::Version() { + return sword::SWVersion::currentVersion; +} + +#endif diff --git a/bibletime/backend/cswordbiblemoduleinfo.cpp b/bibletime/backend/cswordbiblemoduleinfo.cpp new file mode 100644 index 0000000..d4a35e8 --- /dev/null +++ b/bibletime/backend/cswordbiblemoduleinfo.cpp @@ -0,0 +1,262 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "cswordbiblemoduleinfo.h" +#include "cswordbackend.h" +#include "cswordversekey.h" + +// #include "util/cpointers.h" + +//Qt includes +#include <qfile.h> + +//Sword includes +#include <versekey.h> + +static sword::VerseKey staticKey; + +CSwordBibleModuleInfo::CSwordBibleModuleInfo( sword::SWModule* module, CSwordBackend* const usedBackend ) +: CSwordModuleInfo(module, usedBackend), +m_lowerBound(0), +m_upperBound(0), +m_bookList(0), +m_cachedLocale("unknown"), +m_hasOT(-1), +m_hasNT(-1) {} + +CSwordBibleModuleInfo::CSwordBibleModuleInfo( const CSwordBibleModuleInfo& m ) : +CSwordModuleInfo(m), +m_lowerBound(0), +m_upperBound(0), +m_bookList(0) { + if (m.m_bookList) { + m_bookList = new QStringList(); + *m_bookList = *m.m_bookList; + } + + m_hasOT = m.m_hasOT; + m_hasNT = m.m_hasNT; + m_cachedLocale = m.m_cachedLocale; +} + +CSwordModuleInfo* CSwordBibleModuleInfo::clone() { + return new CSwordBibleModuleInfo(*this); +} + +CSwordBibleModuleInfo::~CSwordBibleModuleInfo() { + delete m_bookList; +} + +void CSwordBibleModuleInfo::initBounds() { + if (m_hasOT == -1) { + m_hasOT = hasTestament(OldTestament); + } + + if (m_hasNT == -1) { + m_hasNT = hasTestament(NewTestament); + } + + if (m_hasOT) { + m_lowerBound.key("Genesis 1:1"); + } + else { + m_lowerBound.key("Matthew 1:1"); + } + + if (!m_hasNT) { + m_upperBound.key("Malachi 4:6"); + } + else { + m_upperBound.key("Revelation of John 22:21"); + } +} + + +/** Returns the books available in this module */ +QStringList* const CSwordBibleModuleInfo::books() { + if (m_cachedLocale != backend()->booknameLanguage()) { //if the locale has changed + delete m_bookList; + m_bookList = 0; + } + + if (!m_bookList) { + m_bookList = new QStringList(); + + initBounds(); + int min = 0; + int max = 1; + + //find out if we have ot and nt, only ot or only nt + + if (m_hasOT>0 && m_hasNT>0) { //both + min = 0; + max = 1; + } + else if (m_hasOT>0 && !m_hasNT) { //only OT + min = 0; + max = 0; + } + else if (!m_hasOT && m_hasNT>0) { //only NT + min = 1; + max = 1; + } + else if (!m_hasOT && !m_hasNT) { //somethings wrong here! - no OT and no NT + qWarning("CSwordBibleModuleInfo (%s) no OT and not NT! Check your config!", module()->Name()); + min = 0; + max = -1; + } + + staticKey.setLocale(sword::LocaleMgr::getSystemLocaleMgr()->getDefaultLocaleName()); + + for (int i = min; i <= max; ++i) { + for ( int j = 0; j < staticKey.BMAX[i]; ++j) { + // if (backend()->useICU()) + // m_bookList->append( QString::fromUtf8(staticKey.books[i][j].name) ); + // else + // m_bookList->append( QString::fromLocal8Bit(staticKey.books[i][j].name) ); + m_bookList->append( QString::fromUtf8(staticKey.books[i][j].name) ); + } + } + + m_cachedLocale = backend()->booknameLanguage(); + } + + return m_bookList; +} + +/** Returns the number of chapters for the given book. */ +const unsigned int CSwordBibleModuleInfo::chapterCount(const unsigned int book) { + int result = 0; + + if ( (book >= 1) && book <= (unsigned int)staticKey.BMAX[0] && hasTestament(OldTestament)) { //Is the book in the old testament? + result = (staticKey.books[0][book-1].chapmax); + } + else if ((book >= 1) && (book - staticKey.BMAX[0]) <= (unsigned int)staticKey.BMAX[1] && hasTestament(NewTestament) ) { //is the book in the new testament? + result = (staticKey.books[1][book-1-staticKey.BMAX[0]].chapmax); + } + + return result; +} + +const unsigned int CSwordBibleModuleInfo::chapterCount(const QString& book) { + return chapterCount( bookNumber(book) ); +} + +/** Returns the number of verses for the given chapter. */ + +const unsigned int CSwordBibleModuleInfo::verseCount( const unsigned int book, const unsigned int chapter ) { + unsigned int result = 0; + + if (book>=1 && (book <= (unsigned int)staticKey.BMAX[0]) && hasTestament(OldTestament) ) { //Is the book in the old testament? + + if (chapter <= chapterCount(book) ) //does the chapter exist? + result = (staticKey.books[0][book-1].versemax[chapter-1]); + } + else if (book>=1 && (book - staticKey.BMAX[0]) <= (unsigned int)staticKey.BMAX[1] && hasTestament(NewTestament)) { //is the book in the new testament? + + if (chapter <= chapterCount(book) ) //does the chapter exist? + result = staticKey.books[1][book-1-staticKey.BMAX[0]].versemax[chapter-1]; + } + + return result; +} + +const unsigned int CSwordBibleModuleInfo::verseCount( const QString& book, const unsigned int chapter ) { + return verseCount( bookNumber(book), chapter ); +} + +const unsigned int CSwordBibleModuleInfo::bookNumber(const QString &book) { + unsigned int bookNumber = 0; + bool found = false; + staticKey.setLocale(sword::LocaleMgr::getSystemLocaleMgr()->getDefaultLocaleName()); + int min = 0; + int max = 1; + + //find out if we have ot and nt, only ot or only nt + initBounds(); + + if ((m_hasOT>0 && m_hasNT>0) || (m_hasOT == m_hasNT == -1)) { + min = 0; + max = 1; + bookNumber = 0; + } + else if (m_hasOT>0 && !m_hasNT) { + min = 0; + max = 0; + bookNumber = 0; + } + else if (!m_hasOT && m_hasNT>0) { + min = 1; + max = 1; + bookNumber = staticKey.BMAX[0]; + } + else if (!m_hasOT && !m_hasNT) { + min = 0; + max = -1; //no loop + bookNumber = 0; + } + + for (int i = min; i <= max && !found; ++i) { + for ( int j = 0; j < staticKey.BMAX[i] && !found; ++j) { + ++bookNumber; + // if (book == QString::fromLocal8Bit( staticKey.books[i][j].name) ) + + if (book == QString::fromUtf8( staticKey.books[i][j].name) ) + found = true; + } + } + + return bookNumber; +} + +/** Returns true if his module has the text of desired type of testament */ +const bool CSwordBibleModuleInfo::hasTestament( CSwordBibleModuleInfo::Testament type ) { + if (m_hasOT == -1 || m_hasNT == -1) { + const bool oldStatus = module()->getSkipConsecutiveLinks(); + module()->setSkipConsecutiveLinks(true); + + *module() = sword::TOP; //position to first entry + sword::VerseKey key( module()->KeyText() ); + + if (key.Testament() == 1) { // OT && NT + m_hasOT = 1; + } + else if (key.Testament() == 2) { //no OT + m_hasOT = 0; + } + + *module() = sword::BOTTOM; + key = module()->KeyText(); + + if (key.Testament() == 1) { // only OT, no NT + m_hasNT = 0; + } + else if (key.Testament() == 2) { //has NT + m_hasNT = 1; + } + + module()->setSkipConsecutiveLinks(oldStatus); + } + + switch (type) { + + case OldTestament: + return m_hasOT>0; + + case NewTestament: + return m_hasNT>0; + + default: + return false; + } +} + diff --git a/bibletime/backend/cswordbiblemoduleinfo.h b/bibletime/backend/cswordbiblemoduleinfo.h new file mode 100644 index 0000000..1cd3784 --- /dev/null +++ b/bibletime/backend/cswordbiblemoduleinfo.h @@ -0,0 +1,132 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSWORDBIBLEMODULEINFO_H +#define CSWORDBIBLEMODULEINFO_H + +//own includes +#include "cswordmoduleinfo.h" +#include "cswordversekey.h" + +//Qt includes +#include <qstringlist.h> + +//Sword includes + + +/** + * This is the CModuleInfo imlementation for Bible modules managed by Sword. + * + * @short Implementation for Sword Bibles + * @author The BibleTime team + * @version $Id: cswordbiblemoduleinfo.h,v 1.18 2006/02/25 11:38:15 joachim Exp $ + */ + +class CSwordBibleModuleInfo : public CSwordModuleInfo { + +public: + enum Testament { + OldTestament = 1, + NewTestament = 2 + }; + + /** + * The constructor of this class + */ + CSwordBibleModuleInfo( sword::SWModule* module, CSwordBackend* const = CPointers::backend() ); + /** The copy constructor for this Bible module. + */ + CSwordBibleModuleInfo( const CSwordBibleModuleInfo& m ); + /** + * The destructor of this class + */ + ~CSwordBibleModuleInfo(); + /** + * Returns the number of avalable verses for the given chapter and book. + * + * @param book The number book we should use + * @param chapter The chapter we should use + * @return The number of verses for the given book and chapter + */ + virtual const unsigned int verseCount( const unsigned int book, const unsigned int chapter ); + /** + * Returns the number of avalable verses for the given chapter and book. + * + * @param book The name of the book we use + * @param chapter The number of the chapter we use + * @return The number of verses for the given book and chapter + */ + virtual const unsigned int verseCount( const QString& book, const unsigned int chapter ); + /** Information about the chapters in a book. + * @return The number of available chapters of the given book. + * @return The number of chapters for the given book + */ + virtual const unsigned int chapterCount( const unsigned int book ); + /** Information about the chapters in a book. + * @return The number of available chapters of the given book. + */ + virtual const unsigned int chapterCount( const QString& book ); + /** Return all book of this module. + * @return A QStringList containing the books which are available in this module. + */ + virtual QStringList* const books(); + /** + * Reimplementation, Returns the type + */ + virtual const CSwordModuleInfo::ModuleType type() const; + /** + * @return the book number, values starting with 1; 0 if not found + */ + const unsigned int bookNumber(const QString &book); + /** + * Returns true if his module has the text of desired type of testament + */ + const bool hasTestament( CSwordBibleModuleInfo::Testament ); + /** Reimplementation to clone this object. */ + virtual CSwordModuleInfo* clone(); + /** + * Returns the key which represents the lower bound of this module. + */ + inline const CSwordVerseKey& lowerBound(); + /** + * Returns the key which represents the upper bound of this module. + */ + inline const CSwordVerseKey& upperBound(); + +private: + void initBounds(); + + CSwordVerseKey m_lowerBound; + CSwordVerseKey m_upperBound; + + QStringList* m_bookList; //This booklist is cached + QString m_cachedLocale; + short int m_hasOT; + short int m_hasNT; +}; + +inline const CSwordModuleInfo::ModuleType CSwordBibleModuleInfo::type() const { + return CSwordModuleInfo::Bible; +} + +/** Returns the key which represents the lower bound of this module. */ +inline const CSwordVerseKey& CSwordBibleModuleInfo::lowerBound() { + initBounds(); + return m_lowerBound; +} + +/** Returns the key which represents the lower bound of this module. */ +inline const CSwordVerseKey& CSwordBibleModuleInfo::upperBound() { + initBounds(); + return m_upperBound; +} + +#endif diff --git a/bibletime/backend/cswordbookmoduleinfo.cpp b/bibletime/backend/cswordbookmoduleinfo.cpp new file mode 100644 index 0000000..17cfb28 --- /dev/null +++ b/bibletime/backend/cswordbookmoduleinfo.cpp @@ -0,0 +1,75 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "cswordbookmoduleinfo.h" +#include "cswordtreekey.h" + +//Sword includes +#include <treekeyidx.h> +#include <treekey.h> + +#include <iostream> +#include <string> +using std::cout; +using std::endl; + +CSwordBookModuleInfo::CSwordBookModuleInfo( sword::SWModule* module, CSwordBackend* const usedBackend ) +: CSwordModuleInfo(module, usedBackend), +m_depth(-1) {} + +CSwordBookModuleInfo::CSwordBookModuleInfo( const CSwordBookModuleInfo& module ) +: CSwordModuleInfo(module) { + m_depth = module.m_depth; +} + +CSwordBookModuleInfo::~CSwordBookModuleInfo() {} + +const int CSwordBookModuleInfo::depth() { + if (m_depth == -1) { + sword::TreeKeyIdx* key = tree(); + + if (key) { + key->root(); + computeDepth(key, 0); + } + } + + return m_depth; +} + +void CSwordBookModuleInfo::computeDepth(sword::TreeKeyIdx* key, int level ) { + std::string savedKey; + // savedKey = key->getFullName(); //sword 1.5.8 + savedKey = key->getText(); + + if (level > m_depth) { + m_depth = level; + } + + if (key->hasChildren()) { + key->firstChild(); + computeDepth(key, level+1); + + key->setText( savedKey.c_str() );//return to the initial value + } + + if (key->nextSibling()) { + computeDepth(key, level); + } +} + +/** Returns a treekey filled with the structure of this module */ +sword::TreeKeyIdx* const CSwordBookModuleInfo::tree() const { + sword::TreeKeyIdx* treeKey = dynamic_cast<sword::TreeKeyIdx*>((sword::SWKey*)*(module())); + Q_ASSERT(treeKey); + return treeKey; +} diff --git a/bibletime/backend/cswordbookmoduleinfo.h b/bibletime/backend/cswordbookmoduleinfo.h new file mode 100644 index 0000000..28e9d75 --- /dev/null +++ b/bibletime/backend/cswordbookmoduleinfo.h @@ -0,0 +1,67 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSWORDGENBOOKMODULEINFO_H +#define CSWORDGENBOOKMODULEINFO_H + +//BibleTime includes +#include "cswordmoduleinfo.h" + +//Sword includes +#include <treekeyidx.h> + +/** Class for generic book support + * @author The BibleTime team + */ + +class CSwordBookModuleInfo : public CSwordModuleInfo { + +public: + /** Constructor. + * @param module The module which belongs to this object + * @param backend The parent backend for this book module. + */ + CSwordBookModuleInfo( sword::SWModule* module, CSwordBackend* const backend = CPointers::backend() ); + /** Copy constructor. + * Copy constructor to copy the passed parameter. + * @param module The module which should be copied. + */ + CSwordBookModuleInfo( const CSwordBookModuleInfo& module ); + /** Destructor. + */ + ~CSwordBookModuleInfo(); + /** + * Returns the type of the module. + */ + virtual const CSwordModuleInfo::ModuleType type() const; + /** + * Returns the maximal depth of sections and subsections. + */ + const int depth(); + /** + * @return A treekey filled with the structure of this module. Don't delete the returned key because it's casted from the module object. + */ + sword::TreeKeyIdx* const tree() const; + +private: + /** + * A recursive helper function to help computng the module depth! + */ + void computeDepth(sword::TreeKeyIdx* key, int level = 0 ); + int m_depth; +}; + +inline const CSwordBookModuleInfo::ModuleType CSwordBookModuleInfo::type() const { + return CSwordModuleInfo::GenericBook; +} + + +#endif diff --git a/bibletime/backend/cswordcommentarymoduleinfo.cpp b/bibletime/backend/cswordcommentarymoduleinfo.cpp new file mode 100644 index 0000000..187ac65 --- /dev/null +++ b/bibletime/backend/cswordcommentarymoduleinfo.cpp @@ -0,0 +1,36 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cswordcommentarymoduleinfo.h" + +#include <string> + +CSwordCommentaryModuleInfo::CSwordCommentaryModuleInfo( sword::SWModule* module, CSwordBackend* const usedBackend) +: CSwordBibleModuleInfo(module, usedBackend) {} + +CSwordCommentaryModuleInfo::~CSwordCommentaryModuleInfo() {} + +/** No descriptions */ +CSwordModuleInfo* CSwordCommentaryModuleInfo::clone() { + return new CSwordCommentaryModuleInfo(*this); +} + +/** Returns true if this module may be written by the write display windows. */ +const bool CSwordCommentaryModuleInfo::isWritable() const { + // qWarning(module()->getConfigEntry("ModDrv")); + //a module is only writable if it's a RawFiles module with writable returning true + + if ( (std::string(module()->getConfigEntry("ModDrv")) == std::string("RawFiles")) && module()->isWritable()) { + return true; + }; + + return false; +} diff --git a/bibletime/backend/cswordcommentarymoduleinfo.h b/bibletime/backend/cswordcommentarymoduleinfo.h new file mode 100644 index 0000000..c387ede --- /dev/null +++ b/bibletime/backend/cswordcommentarymoduleinfo.h @@ -0,0 +1,45 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSWORDCOMMENTARYMODULEINFO_H +#define CSWORDCOMMENTARYMODULEINFO_H + +//own includes +#include "cswordbiblemoduleinfo.h" + +/** Commentary module implementation. + * This CSwordModule implementation provides access to Sword's commentary modules. + * @author The BibleTime team + * @version $Id: cswordcommentarymoduleinfo.h,v 1.13 2006/02/25 11:38:15 joachim Exp $ + */ + +class CSwordCommentaryModuleInfo : public CSwordBibleModuleInfo { + +public: + CSwordCommentaryModuleInfo( sword::SWModule* module, CSwordBackend* const = CPointers::backend() ); + ~CSwordCommentaryModuleInfo(); + /** Reimplementation to return the commentary type. + */ + virtual const CSwordModuleInfo::ModuleType type() const; + /** Reimplementation to clone the current object. + */ + virtual CSwordModuleInfo* clone(); + /** + * Returns true if this module may be written by the write display windows. + */ + virtual const bool isWritable() const; +}; + +inline const CSwordModuleInfo::ModuleType CSwordCommentaryModuleInfo::type() const { + return CSwordModuleInfo::Commentary; +} + +#endif diff --git a/bibletime/backend/cswordkey.cpp b/bibletime/backend/cswordkey.cpp new file mode 100644 index 0000000..a939162 --- /dev/null +++ b/bibletime/backend/cswordkey.cpp @@ -0,0 +1,193 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + + +//own includes +#include "cswordkey.h" +#include "cswordmoduleinfo.h" + +#include "cswordversekey.h" +#include "cswordldkey.h" +#include "cswordtreekey.h" + +#include "util/ctoolclass.h" + +//Sword includes +#include <swmodule.h> +#include <swkey.h> +#include <versekey.h> +#include <treekey.h> +#include <treekeyidx.h> + +//Qt includes +#include <qregexp.h> +#include <qstring.h> +#include <qtextcodec.h> + +CSwordKey::CSwordKey(CSwordModuleInfo* const module) : m_module(module) {} + +CSwordKey::CSwordKey(const CSwordKey& k) { + m_module = k.m_module; +} + +const QString CSwordKey::rawText() { + if (!m_module) { + return QString::null; + } + + if (dynamic_cast<sword::SWKey*>(this)) { + char * buffer = new char[strlen(rawKey()) + 1]; + strcpy(buffer, rawKey()); + m_module->module()->getKey()->setText( buffer ); + delete buffer; + } + + if (key().isNull()) { + return QString::null; + } + +// qWarning("rawText: %s", m_module->module()->getRawEntry()); + return QString::fromUtf8( m_module->module()->getRawEntry() ); +} + +const QString CSwordKey::renderedText( const CSwordKey::TextRenderType mode ) { + Q_ASSERT(m_module); + if (!m_module) { + return QString::null; + } + + using namespace sword; + SWKey* const k = dynamic_cast<SWKey*>(this); + + if (k) { + char * buffer = new char[strlen(rawKey()) + 1]; + strcpy(buffer, rawKey()); + VerseKey* vk_mod = dynamic_cast<VerseKey*>(m_module->module()->getKey()); + + if (vk_mod) { + vk_mod->Headings(1); + } + + m_module->module()->getKey()->setText( buffer ); + + if (m_module->type() == CSwordModuleInfo::Lexicon) { + m_module->snap(); + /* In lexicons make sure that our key (e.g. 123) was successfully set to the module, + i.e. the module key contains this key (e.g. 0123 contains 123) */ + + if ( strcasecmp(m_module->module()->getKey()->getText(), buffer) + && !strstr(m_module->module()->getKey()->getText(), buffer) + ) { + qDebug("return an empty key for %s", m_module->module()->getKey()->getText()); + return QString::null; + } + } + delete buffer; + } + + Q_ASSERT(!key().isNull()); + if (!key().isNull()) { //we have valid text + QString text = QString::fromUtf8( m_module->module()->RenderText() ); + + // This is yucky, but if we want strong lexicon refs we have to do it here. + if (m_module->type() == CSwordModuleInfo::Lexicon) { + QString t(text); + QRegExp rx("(GREEK|HEBREW) for 0*([1-9]\\d*)"); // ignore 0's before number + int pos = 0; + while( (pos = rx.search(t, pos)) != -1 ) { + QString language = rx.cap(1); + QString langcode = QString(language.at(0)); // "G" or "H" + QString number = rx.cap(2); + QString paddednumber = number.rightJustify(5, '0'); // Form 00123 + + text.replace( + QRegExp( QString( + "(>[^<>]+)" // Avoid replacing inside tags + "\\b(0*%1)\\b").arg(number) ), // And span around 0's + QString("\\1<span lemma=\"%1%2\"><a href=\"strongs://%3/%4\">\\2</a></span>") + .arg(langcode, paddednumber, language, paddednumber) + ); + pos += rx.matchedLength(); + } + } + + if (mode == HTMLEscaped) { + //we have to encode all UTF-8 in HTML escapes + // go though every character and write down the escaped HTML unicode entity + // form is &#<decimal unicode value here>; + QString ret; + QChar c; + const unsigned int length = text.length(); + + for (unsigned int i = 0; i < length; ++i) { + c = text.at(i); + + if (c.latin1()) { //normal latin1 character + ret.append(c); + } + else {//unicode character, needs to be escaped + ret.append("&#") + .append(c.unicode()) + .append(";"); + } + } + + return ret; + } + else { + return text; + } + } + + return QString::null; +} + +const QString CSwordKey::strippedText() { + if (!m_module) { + return QString::null; + } + + if (/*sword::SWKey* k =*/ dynamic_cast<sword::SWKey*>(this)) { + // m_module->module()->SetKey(k); + //m_module->module()->getKey()->setText( (const char*)key().utf8() ); + char * buffer = new char[strlen(rawKey()) + 1]; + strcpy(buffer, rawKey()); + m_module->module()->getKey()->setText(buffer); + delete buffer; + } + + return QString::fromUtf8( m_module->module()->StripText() ); +} + + +/** This will create a proper key object from a given module */ +CSwordKey* CSwordKey::createInstance( CSwordModuleInfo* const module ) { + if (!module) { + return 0; + } + + switch( module->type() ) { + + case CSwordModuleInfo::Bible://fall through + + case CSwordModuleInfo::Commentary: + return new CSwordVerseKey( (sword::VerseKey *) ( (sword::SWKey *)(*module->module()) ), module ); + + case CSwordModuleInfo::Lexicon: + return new CSwordLDKey( (sword::SWKey *)(*module->module()), module); + + case CSwordModuleInfo::GenericBook: + return new CSwordTreeKey( (sword::TreeKeyIdx*)((sword::SWKey *)(*module->module())), module ); + + default: + return 0; + } +} diff --git a/bibletime/backend/cswordkey.h b/bibletime/backend/cswordkey.h new file mode 100644 index 0000000..2b549f8 --- /dev/null +++ b/bibletime/backend/cswordkey.h @@ -0,0 +1,121 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSWORDKEY_H +#define CSWORDKEY_H + +//Own includes + + +//Qt includes +#include <qstring.h> +//forward declarations + +class CSwordModuleInfo; + +/** Base class for all keys. + * The base class for all Sword based keys. + * @author The BibleTime team + * @version $Id: cswordkey.h,v 1.28 2007/10/26 18:26:23 jerickson314 Exp $ + */ + +class CSwordKey { + +protected: + /** Constructor. May not be called because this class contains pure virtual methods. + * @param module The module which belongs to this key, may be NULL + */ + CSwordKey(CSwordModuleInfo* const module = 0); //protected constructor, because CSwordKey shouldn't be used (it's an abstract base class). + /** Copy constructor. + */ + CSwordKey(const CSwordKey&); //copy constructor + +public: + enum TextRenderType { + Normal = 0, + HTMLEscaped + }; + /** Destructor. + * Public, not protected like the constructor, because CSwordKey pointers may be deleted by all others. + */ + virtual ~CSwordKey() {} + + ; + + //pure virtual functions + /** Returns the current key. + * @return The current key which belongs to the current object. + */ + virtual const QString key() const = 0; + /** Sets the current key. Sets the key using a utf8 enabled QString. + * @param key The key which should be used to set the current one + */ + virtual const bool key(const QString& key) = 0; + /** Set the key using a utf8-decoded c-string + * @param key The key which should be used to set the current one + */ + virtual const bool key(const char* key) = 0; + /** Clone this object. Clone this current object and return it. + * @return A clone of the current object. + */ + virtual CSwordKey* copy() const = 0; + + //implemented functions + /** Set/get the module. Set and get the module which belongs to this key. + * @return The module which belongs to this key. + */ + inline virtual CSwordModuleInfo* const module(CSwordModuleInfo* const newModule = 0); + /** Returns the raw, unchanged text. Returns the text without any filter modifications, + * just in the way it comes out of the module. + */ + virtual const QString rawText(); + /** Returns the rendered text. Returns the text of the current key after passign it through the + * modules filters. + */ + virtual const QString renderedText( const CSwordKey::TextRenderType mode = CSwordKey::Normal ); + /** Stripped down text. Returns the text after removing all markup tags from it. + */ + virtual const QString strippedText(); + /** + * This returns a new object of the right CSwordKey* implementation + * (e.g. CSwordVerseKey or CSwordLDKey) + * The type is determined by the type of the module. + * @see CSwordModuleInfo, CSwordBibleModuleInfo, CSwordCommentaryModuleInfo, CSwordLexiconModukleInfo + */ + static CSwordKey* createInstance(CSwordModuleInfo * const module); + /** + * The assignment operator for more easy use of the key classes. + */ + inline virtual CSwordKey& operator = ( const QString& ); + +protected: + /** Returns the current key in raw format, for Sword. + * @return The current key which belongs to the current object. + */ + virtual const char* rawKey() const = 0; + CSwordModuleInfo* m_module; //module pointer used by all keys +}; + + +/** The assignment operator for more easy use of the key classes. */ +inline CSwordKey& CSwordKey::operator = ( const QString& newKey ) { + key(newKey); + return *this; +} + +inline CSwordModuleInfo* const CSwordKey::module(CSwordModuleInfo* const newModule) { + if (newModule) { + m_module = newModule; + } + return m_module; +} + +#endif diff --git a/bibletime/backend/cswordldkey.cpp b/bibletime/backend/cswordldkey.cpp new file mode 100644 index 0000000..0f189e9 --- /dev/null +++ b/bibletime/backend/cswordldkey.cpp @@ -0,0 +1,130 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2007 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "cswordldkey.h" +#include "cswordlexiconmoduleinfo.h" + +//Qt includes +#include <qtextcodec.h> + +//Sword includes +#include <swmodule.h> +#include <swld.h> +#include <utilstr.h> + + +CSwordLDKey::CSwordLDKey( CSwordModuleInfo* module ) { + if ((m_module = dynamic_cast<CSwordLexiconModuleInfo*>(module))) { + // *(m_module->module()) = TOP; + } + + SWKey::operator = (" "); +} + +/** No descriptions */ +CSwordLDKey::CSwordLDKey( const CSwordLDKey &k ) : CSwordKey(k), SWKey((const char*)k) {} + +/** No descriptions */ +CSwordLDKey::CSwordLDKey( const SWKey *k, CSwordModuleInfo* module) : CSwordKey(module), SWKey(*k) {} + +/** Clones this object by copying the members. */ +CSwordLDKey* CSwordLDKey::copy() const { + return new CSwordLDKey(*this); +} + +/** Sets the module of this key. */ +CSwordModuleInfo* const CSwordLDKey::module(CSwordModuleInfo* const newModule) { + if (newModule && newModule->type() == CSwordModuleInfo::Lexicon) { + const QString oldKey = key(); + m_module = newModule; + key(oldKey); + } + + return m_module; +} + +/** Sets the key of this instance */ +const QString CSwordLDKey::key() const { + + if (!m_module || m_module->isUnicode()) { + return QString::fromUtf8((const char*)*this); + } else { + QTextCodec *codec = QTextCodec::codecForName("CP1252"); + return codec->toUnicode((const char*)*this); + } +} + +const char * CSwordLDKey::rawKey() const { + return (const char*)*this; +} + +const bool CSwordLDKey::key( const QString& newKey ) { + + Q_ASSERT(m_module); + + if (!m_module || m_module->isUnicode()) { + return key((const char*)newKey.utf8()); + } else { + QTextCodec *codec = QTextCodec::codecForName("CP1252"); + return key((const char*)codec->fromUnicode(newKey)); + } +} + + +/** Sets the key of this instance */ +const bool CSwordLDKey::key( const char* newKey ) { + Q_ASSERT(newKey); + + if (newKey) { + SWKey::operator = (newKey); //set the key + + m_module->module()->SetKey(this); + // m_module->module()->getKey()->setText( (const char*)key().utf8() ); + m_module->snap(); + // SWKey::operator = (m_module->module()->KeyText()); + } + + return !Error(); +} + +/** Uses the parameter to returns the next entry afer this key. */ +CSwordLDKey* CSwordLDKey::NextEntry() { + m_module->module()->SetKey(this); //use this key as base for the next one! + + m_module->module()->setSkipConsecutiveLinks(true); + ( *( m_module->module() ) )++; + m_module->module()->setSkipConsecutiveLinks(false); + + key(m_module->module()->KeyText()); + SWKey::operator = (m_module->module()->KeyText()); + + return this; +} + +/** Uses the parameter to returns the next entry afer this key. */ +CSwordLDKey* CSwordLDKey::PreviousEntry() { + m_module->module()->SetKey(this); //use this key as base for the next one! + + m_module->module()->setSkipConsecutiveLinks(true); + ( *( m_module->module() ) )--; + m_module->module()->setSkipConsecutiveLinks(false); + + SWKey::operator = (m_module->module()->KeyText()); + + return this; +} + +/** Assignment operator for more ease of use of this class. */ +CSwordLDKey& CSwordLDKey::operator = (const QString& keyname ) { + key(keyname); + return *this; +} diff --git a/bibletime/backend/cswordldkey.h b/bibletime/backend/cswordldkey.h new file mode 100644 index 0000000..bd6b6ce --- /dev/null +++ b/bibletime/backend/cswordldkey.h @@ -0,0 +1,110 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSWORDLDKEY_H +#define CSWORDLDKEY_H + + +//own includes +#include "cswordkey.h" +#include "cswordmoduleinfo.h" + +//Qt includes +#include <qstring.h> + +//Sword includes +#include <swkey.h> + +/** + * This class is the implementation of CSwordKey used for dictionaries and lexicons. + * + * CSwordLDKey is the implementation of CKey for Lexicons and dictionaries. + * It provides a simple interface to set the current key, + * to get the text for the key and functions to get the next and previous items + * of the used module in comparision to the current key.<BR> + * Here's an example how to use this class:<BR> + * @code + * CSwordLexiconModuleInfo* m_module = backend()->findModuleByName("ISBE"); + * CSwordLDKey ldKey(m_module); + * ldKey.key("Adam"); + * ldKey.nextEntry(); + * qDebug( QString("The current key is: %1").arg(ldKey.key())); + * @endcode + * + * Please not, that the result will be invalid if use the operator const char* + * on the adress of the object, use something like this + * + * @code + * CSwordLDKey* key = new CSwordLDKey( lexicon_module ); + * const QString keyname = key->getKey(); + * @endcode + * + * @author The BibleTime team + * @version $Id: cswordldkey.h,v 1.25 2007/10/26 18:26:23 jerickson314 Exp $ + */ + +class CSwordLDKey : public CSwordKey, public sword::SWKey { + +public: + /** + * Constructor of CSwordLDKey + */ + CSwordLDKey( CSwordModuleInfo* module ); + /** + * Copy constructor for this key class. + */ + CSwordLDKey( const CSwordLDKey &k ); + /** + * Copy constructor for this key class. + */ + CSwordLDKey( const sword::SWKey *k, CSwordModuleInfo* module); + /** + * Clones this object by copying the members. + */ + virtual CSwordLDKey* copy() const; + /** + * Uses the parameter to returns the next entry afer this key. + */ + CSwordLDKey* NextEntry( void ); + /** + * Uses the parameter to returns the previous entry afer this key. + */ + CSwordLDKey* PreviousEntry( void ); + /** + * Sets the module of this key. + */ + virtual CSwordModuleInfo* const module( CSwordModuleInfo* const module = 0 ); + /** + * Returns the current key as a QString + */ + virtual const QString key() const; + /** + * Set the current key + */ + virtual const bool key( const QString& newKey ); + /** + * Returns the current key as a QString + */ + virtual const bool key( const char* ); + /** + * Assignment operator for more ease of use of this class. + */ + virtual CSwordLDKey& operator = (const QString& keyname ); +protected: + /** + * The raw key for direct use with Sword. + */ + virtual const char * rawKey() const; +}; + + +#endif + diff --git a/bibletime/backend/cswordlexiconmoduleinfo.cpp b/bibletime/backend/cswordlexiconmoduleinfo.cpp new file mode 100644 index 0000000..26da0e7 --- /dev/null +++ b/bibletime/backend/cswordlexiconmoduleinfo.cpp @@ -0,0 +1,183 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "cswordlexiconmoduleinfo.h" +//#include "frontend/cbtconfig.h" + +//Qt includes +#include <qfile.h> +#include <qdatastream.h> +#include <qtextcodec.h> + +//Sword includes +#include <swmodule.h> + +#include <kglobal.h> +#include <kstandarddirs.h> + +//STL includes +#include <algorithm> + +//Change it once the format changed to make all +//systems rebuild their caches +#define CACHE_FORMAT "2" + +CSwordLexiconModuleInfo::CSwordLexiconModuleInfo( sword::SWModule* module, CSwordBackend* const backend ) : CSwordModuleInfo(module, backend) { + m_entryList = 0; +} + +CSwordLexiconModuleInfo::CSwordLexiconModuleInfo( const CSwordLexiconModuleInfo& m ) : CSwordModuleInfo(m) { + delete m_entryList; + m_entryList = 0; + + if (m.m_entryList) { + m_entryList = new QStringList(); + *m_entryList = *m.m_entryList;//copy list items + } +} + +CSwordLexiconModuleInfo::~CSwordLexiconModuleInfo() { + delete m_entryList; + m_entryList = 0; +} + +/** Returns the entries of the module. */ +QStringList* const CSwordLexiconModuleInfo::entries() { + if (!module()) { + return 0; + } + + sword::SWModule* my_module = module(); + bool is_unicode = isUnicode(); + + if (!m_entryList) { + m_entryList = new QStringList(); + bool read = false; + + //Check for buggy modules! They will not be loaded any more. + + if ( name() == QString("ZhEnglish")) { + qWarning("Module ZhEnglish is buggy and will not be loaded."); + return m_entryList; + } + + QString dir( KGlobal::dirs()->saveLocation("data", "bibletime/cache/") ); + QFile f1( + QString(dir) + .append("/") + .append(name()) + ); + + if ( f1.open( IO_ReadOnly ) ) { + QDataStream s( &f1 ); + QString mod_ver, prog_ver; + s >> mod_ver; + s >> prog_ver; + + if ((mod_ver == config(ModuleVersion)) && (prog_ver == CACHE_FORMAT)) { + s >> *m_entryList; + read = true; + } + + f1.close(); + // qWarning("read entries %d",m_entryList->count()); + } + + // Q_ASSERT(read); + // Q_ASSERT(m_entryList->count()); + if (!read || !m_entryList->count()) { + my_module->setSkipConsecutiveLinks(true); + (*my_module) = sword::TOP; + snap(); //snap to top entry + + // qWarning("Reading in module" ); + int i = 0; + + do { + if ( is_unicode ) { + m_entryList->append(QString::fromUtf8(my_module->KeyText())); + // qWarning("Entry: %s", my_module->KeyText() ); + } + else { //for latin1 modules use fromLatin1 because of speed + // m_entryList->append(QString::fromLatin1(my_module->KeyText())); + + QTextCodec *codec = QTextCodec::codecForName("CP1252"); + m_entryList->append(codec->toUnicode(my_module->KeyText())); + } + + (*my_module)++; + i++; + } + while ( !my_module->Error() ); + + // qWarning("Reading finished. Module has %d entries.", i ); + + (*my_module) = sword::TOP; //back to the first entry + + my_module->setSkipConsecutiveLinks(false); + + if (m_entryList->count()) { + m_entryList->first().simplifyWhiteSpace(); + + if (m_entryList->first().stripWhiteSpace().isEmpty()) { + + m_entryList->remove + ( m_entryList->begin() ); + } + + //now sort the list, this is necesssary because Sword doesn't do Unicode ordering + + // qWarning("sorting"); + // QStringList::iterator start(m_entryList->begin()); + // QStringList::iterator end(m_entryList->end()); + // std::sort( start, end, myLocaleAwareCompare() ); //stl sort + // m_entryList->sort(); //make sure the module is sorted by utf-8 + } + + qWarning("Writing cache file."); + + if (m_entryList->count()) { + //create cache + QString dir = KGlobal::dirs()->saveLocation("data", "bibletime/cache/"); + //QFile f2( QString::fromLatin1("%1/%2").arg(dir).arg( name() ) ); + QFile f2( QString(dir).append("/").append(name()) ); + + + if (f2.open( IO_WriteOnly )) { + QDataStream s( &f2 ); + s << config(CSwordModuleInfo::ModuleVersion); //store module version + s << QString(CACHE_FORMAT); //store BT version -- format may change + s << *m_entryList; + f2.close(); + } + } + + // // qWarning("Writing finished." ); + } + } + + return m_entryList; +} + +/** Jumps to the closest entry in the module. */ +const bool CSwordLexiconModuleInfo::snap() { + if(module()->getRawEntry()) { // Snap to the current entry + return true; + } + + return false; +} + +/** No descriptions */ +CSwordModuleInfo* CSwordLexiconModuleInfo::clone() { + return new CSwordLexiconModuleInfo(*this); +} diff --git a/bibletime/backend/cswordlexiconmoduleinfo.h b/bibletime/backend/cswordlexiconmoduleinfo.h new file mode 100644 index 0000000..8b8e8fe --- /dev/null +++ b/bibletime/backend/cswordlexiconmoduleinfo.h @@ -0,0 +1,73 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSWORDLEXICONMODULEINFO_H +#define CSWORDLEXICONMODULEINFO_H + +//own includes +#include "cswordmoduleinfo.h" + +//Qt includes +#include <qstringlist.h> + +/** + * The implementation of CModuleInfo for the Sword lexiccons and citionaries. + * @author The BibleTime team + * @version $Id: cswordlexiconmoduleinfo.h,v 1.12 2006/02/25 11:38:15 joachim Exp $ + */ + +class CSwordLexiconModuleInfo : public CSwordModuleInfo { + +public: + /** + * The standard constructor fot this object. + * A default constructor doesn't exist. Use this one. + */ + CSwordLexiconModuleInfo( sword::SWModule* module, CSwordBackend* const = CPointers::backend() ); + /** + * The copy constructor + */ + CSwordLexiconModuleInfo( const CSwordLexiconModuleInfo& m ); + /** Reimplementation to return a valid clone. + */ + virtual CSwordModuleInfo* clone(); + /** Destructor. + */ + virtual ~CSwordLexiconModuleInfo(); + /** + * Returns the entries of the module. + * This function returns the entries of the modules represented by this object. + * If this function is called for the first time the list is load from disk and stored in a list which cahes it. + * If the function is called again, the cached list is returned so we have a major speed improvement. + * @return The list of lexicon entries + */ + QStringList* const entries(); + /** + * Reimplementation, to return the right type for this lexicon. + */ + virtual const CSwordModuleInfo::ModuleType type() const; + /** + * Jumps to the closest entry in the module. + */ + const bool snap(); + +private: + /** + * This is the list which caches the entres of the module. + */ + QStringList* m_entryList; +}; + +inline const CSwordModuleInfo::ModuleType CSwordLexiconModuleInfo::type() const { + return CSwordModuleInfo::Lexicon; +} + +#endif diff --git a/bibletime/backend/cswordmoduleinfo.cpp b/bibletime/backend/cswordmoduleinfo.cpp new file mode 100644 index 0000000..cb37426 --- /dev/null +++ b/bibletime/backend/cswordmoduleinfo.cpp @@ -0,0 +1,888 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + +//BibleTime includes +#include "cswordmoduleinfo.h" +#include "cswordbackend.h" +#include "cswordmodulesearch.h" +#include "cswordkey.h" +#include "centrydisplay.h" +#include "clanguagemgr.h" + +#include "util/scoped_resource.h" +#include "util/directoryutil.h" +#include "util/cpointers.h" +#include "frontend/cbtconfig.h" + +#include <sys/types.h> +#include <unistd.h> +#include <stddef.h> +#include <dirent.h> +#include <regex.h> + +//Qt includes +#include <qregexp.h> +#include <qdir.h> +#include <qvariant.h> +#include <qfileinfo.h> + +//KDE includes +#include <klocale.h> +#include <kglobal.h> +#include <kstandarddirs.h> +#include <kconfig.h> + +//Sword includes +#include <swbuf.h> +#include <swkey.h> +#include <listkey.h> +#include <versekey.h> +#include <swconfig.h> +#include <rtfhtml.h> + +//Lucence includes +#include <CLucene.h> +#include <CLucene/util/Reader.h> +#include <CLucene/util/Misc.h> +#include <CLucene/util/dirent.h> + +//Increment this, if the index format changes +//Then indices on the user's systems will be rebuilt +const unsigned int INDEX_VERSION = 6; + +//Maximum index entry size, 1MiB for now +//Lucene default is too small +const unsigned long BT_MAX_LUCENE_FIELD_LENGTH = 1024*1024; + +CSwordModuleInfo::CSwordModuleInfo(sword::SWModule * module, CSwordBackend * const usedBackend) { + m_module = module; + Q_ASSERT(module); + + m_searchResult.ClearList(); + m_backend = usedBackend ? usedBackend : CPointers::backend(); + m_dataCache.name = module ? QString(module->Name()) : QString::null; + m_dataCache.isUnicode = module ? module->isUnicode() : false; + m_dataCache.category = UnknownCategory; + m_dataCache.language = 0; + m_dataCache.hasVersion = !QString((*m_backend->getConfig())[module->Name()]["Version"]).isEmpty(); + + if (backend()) { + if (hasVersion() && (minimumSwordVersion() > sword::SWVersion::currentVersion)) { + qWarning("The module \"%s\" requires a newer Sword library. Please update to \"Sword %s\".", + name().latin1(), (const char *)minimumSwordVersion()); + } + } +} + +CSwordModuleInfo::CSwordModuleInfo(const CSwordModuleInfo & m) { + m_module = m.m_module; + m_backend = m.m_backend; + m_dataCache = m.m_dataCache; + m_searchResult = m.m_searchResult; +} + +/** No descriptions */ +CSwordModuleInfo *CSwordModuleInfo::clone() { + return new CSwordModuleInfo(*this); +} + +CSwordModuleInfo::~CSwordModuleInfo() { + m_searchResult.ClearList(); + m_module = 0; //the Sword module object is deleted by the backend +} + +/** Sets the unlock key of the modules and writes the key into the cofig file.*/ +const bool CSwordModuleInfo::unlock(const QString & unlockKey) { + if (!isEncrypted()) { + return false; + } + + CBTConfig::setModuleEncryptionKey(name(), unlockKey); + backend()->setCipherKey(m_module->Name(), unlockKey.latin1()); + //TODO: write to Sword config as well + + return true; +} + +/** This function returns true if this module is locked, otherwise return false. */ +const bool CSwordModuleInfo::isLocked() { + //still works, but the cipherkey is stored in CBTConfig. + //Works because it is set in sword on program startup. + + if (isEncrypted()) { + if (unlockKeyIsValid()) { + return false; + } + return true; + } + return false; +} + +/** This functions returns true if this module is encrypted (locked or unlocked). */ +const bool CSwordModuleInfo::isEncrypted() const { + /** + * If we have the CipherKey entry the module + * is encrypted but not necessarily locked + */ + + //This code is still right, though we do no longer write to the module config files any more + sword::ConfigEntMap config = backend()->getConfig()->Sections.find(name().latin1())->second; + sword::ConfigEntMap::iterator it = config.find("CipherKey"); + + if (it != config.end()) { + return true; + } + + return false; +} + +/** This function makes an estimate if a module was properly unlocked. + * It returns true if the first entry of the module (parsed as Latin1 + * byte sequence) is not empty and contains only printable characters. + * If that is the case, we can safely assume that a) the module was properly + * unlocked and b) no buffer overflows will occur, which can happen when + * Sword filters process garbage text which was not properly decrypted. +*/ +const bool CSwordModuleInfo::unlockKeyIsValid() { + + (*m_module) = sword::TOP; + + // This needs to use ::fromLatin1 because if the text is still locked, + // a lot of garbage will show up. It will also work with properly decrypted + // Unicode text, because all non-ASCII Unicode chars consist of bytes >127 + // and therefore contain no control (nonprintable) characters, which are all <127. + QString test = isUnicode() + ? QString::fromUtf8(m_module->getRawEntryBuf().c_str()) + : QString::fromLatin1( m_module->getRawEntryBuf().c_str() ); + + if (test.isEmpty()) { + qWarning("Unlock key of module %s is NOT valid", name().latin1()); + return false; + } + + for (unsigned int i = 0; i <= test.length(); i++) { + if ( !test[i].isPrint() && !test[i].isNull() ) { + qWarning("Unlock key of module %s is NOT valid", name().latin1()); + return false; + } + } + + qDebug("Unlock key of module %s is valid", name().latin1()); + return true; +} + +const QString CSwordModuleInfo::getGlobalBaseIndexLocation() { + return KGlobal::dirs()->saveLocation("data", "bibletime/indices"); +} + +const QString CSwordModuleInfo::getModuleBaseIndexLocation() const { + return getGlobalBaseIndexLocation() + QString("/") + name().ascii(); +} + +const QString CSwordModuleInfo::getModuleStandardIndexLocation() const { //this for now returns the location of the main index + return getModuleBaseIndexLocation() + QString("/standard"); +} + +const bool CSwordModuleInfo::hasIndex() { //this will return true only + //if the index exists and has correct version information for both index and module + + QDir d; + if (!d.exists( getModuleStandardIndexLocation() )) { + return false; + } + + //first check if the index version and module version are ok + util::scoped_ptr<KConfig> indexconfig( + new KConfig( getModuleBaseIndexLocation() + QString("/bibletime-index.conf") ) + ); + + if (hasVersion()) { + if (indexconfig->readEntry("module-version") != QString(config(CSwordModuleInfo::ModuleVersion)) ) { + return false; + } + } + if (indexconfig->readEntry("index-version") != QString::number( INDEX_VERSION )) { + qDebug("%s: INDEX_VERSION is not compatible with this version of BibleTime.", name().latin1()); + return false; + } + + //then check if the index is there + return lucene::index::IndexReader::indexExists(getModuleStandardIndexLocation().ascii()); +} + + +void CSwordModuleInfo::buildIndex() { + wchar_t wcharBuffer[BT_MAX_LUCENE_FIELD_LENGTH + 1]; + + //we don't want the linked entries indexed again + module()->setSkipConsecutiveLinks(true); + + //Without this we don't get strongs, lemmas, etc + backend()->setFilterOptions ( CBTConfig::getFilterOptionDefaults() ); + //make sure we reset all important filter options which influcence the plain filters. + backend()->setOption( CSwordModuleInfo::strongNumbers, false ); + backend()->setOption( CSwordModuleInfo::morphTags, false ); + backend()->setOption( CSwordModuleInfo::morphSegmentation, false ); + backend()->setOption( CSwordModuleInfo::footnotes, false ); + backend()->setOption( CSwordModuleInfo::headings, false ); + backend()->setOption( CSwordModuleInfo::scriptureReferences, false ); + backend()->setOption( CSwordModuleInfo::redLetterWords, false ); + + // do not use any stop words + const TCHAR* stop_words[] = { + NULL + }; + lucene::analysis::standard::StandardAnalyzer an( stop_words ); + QString index = getModuleStandardIndexLocation(); + + QDir dir; + dir.mkdir( getGlobalBaseIndexLocation(), true ); + dir.mkdir( getModuleBaseIndexLocation(), true ); + dir.mkdir( getModuleStandardIndexLocation(), true ); + + + if (lucene::index::IndexReader::indexExists(index.ascii())) { + if (lucene::index::IndexReader::isLocked(index.ascii()) ) { + lucene::index::IndexReader::unlock(index.ascii()); + } + } + + util::scoped_ptr<lucene::index::IndexWriter> writer( new lucene::index::IndexWriter(index.ascii(), &an, true) ); //always create a new index + writer->setMaxFieldLength(BT_MAX_LUCENE_FIELD_LENGTH); + writer->setUseCompoundFile(true); //merge segments into a single file + writer->setMinMergeDocs(1000); + + *m_module = sword::TOP; + unsigned long verseLowIndex = m_module->Index(); + *m_module = sword::BOTTOM; + unsigned long verseHighIndex = m_module->Index(); + + //verseLowIndex is not 0 in all cases (i.e. NT-only modules) + unsigned long verseIndex = verseLowIndex + 1; + + + const bool isVerseModule = (type() == CSwordModuleInfo::Bible) || (type() == CSwordModuleInfo::Commentary); + + m_indexingProgress.setValue( QVariant((int)0) ); + m_indexingProgress.activate(); + + SWKey* key = m_module->getKey(); + //VerseKey for bibles + VerseKey* vk = dynamic_cast<VerseKey*>(key); + + if (vk) { + // we have to be sure to insert the english key into the index, otherwise we'd be in trouble if the language changes + vk->setLocale("en_US"); + //If we have a verse based module, we want to include the pre-chapter etc. headings in the search + vk->Headings(1); + } + + //holds UTF-8 data and is faster than QString + QCString textBuffer; + + // we start with the first module entry, key is automatically updated + // because key is a pointer to the modules key + for (*m_module = sword::TOP; !(key->Error()); (*key)++) { + + //If it is a sword-heading, store in buffer and index later in Verse X:1 + if (vk) { + if (vk->Verse() == 0) { + //qWarning("key is %s", key->getText()); + //qWarning("text is %s", m_module->StripText()); + textBuffer.append( m_module->StripText() ); + continue; + } + } + + util::scoped_ptr<lucene::document::Document> doc(new lucene::document::Document()); + + //index the key + lucene_utf8towcs(wcharBuffer, key->getText(), BT_MAX_LUCENE_FIELD_LENGTH); + doc->add(*lucene::document::Field::UnIndexed(_T("key"), wcharBuffer)); + + // index the main text + //at this point we have to make sure we disabled the strongs and the other options + //so the plain filters won't include the numbers somehow. + lucene_utf8towcs(wcharBuffer, (const char*) textBuffer.append(m_module->StripText()), BT_MAX_LUCENE_FIELD_LENGTH); + doc->add(*lucene::document::Field::UnStored(_T("content"), wcharBuffer)); + textBuffer.resize(0); //clean up + + // index attributes + AttributeList::iterator attListI; + AttributeValue::iterator attValueI; + // Footnotes + for (attListI = m_module->getEntryAttributes()["Footnote"].begin(); + attListI != m_module->getEntryAttributes()["Footnote"].end(); + attListI++) { + lucene_utf8towcs(wcharBuffer, attListI->second["body"], BT_MAX_LUCENE_FIELD_LENGTH); + doc->add(*lucene::document::Field::UnStored(_T("footnote"), wcharBuffer)); + } // for attListI + + // Headings + for (attValueI = m_module->getEntryAttributes()["Heading"]["Preverse"].begin(); + attValueI != m_module->getEntryAttributes()["Heading"]["Preverse"].end(); + attValueI++) { + lucene_utf8towcs(wcharBuffer, attValueI->second, BT_MAX_LUCENE_FIELD_LENGTH); + doc->add(*lucene::document::Field::UnStored(_T("heading"), wcharBuffer)); + } // for attValueI + + // Strongs/Morphs + for (attListI = m_module->getEntryAttributes()["Word"].begin(); + attListI != m_module->getEntryAttributes()["Word"].end(); + attListI++) { + // for each attribute + if (attListI->second["LemmaClass"] == "strong") { + lucene_utf8towcs(wcharBuffer, attListI->second["Lemma"], BT_MAX_LUCENE_FIELD_LENGTH); + doc->add(*lucene::document::Field::UnStored(_T("strong"), wcharBuffer)); + //qWarning("Adding strong %s", attListI->second["Lemma"].c_str()); + } + if (attListI->second.find("Morph") != attListI->second.end()) { + lucene_utf8towcs(wcharBuffer, attListI->second["Morph"], BT_MAX_LUCENE_FIELD_LENGTH); + doc->add(*lucene::document::Field::UnStored(_T("morph"), wcharBuffer)); + } + } // for attListI + + writer->addDocument(doc); + verseIndex = m_module->Index(); + + if (verseIndex % 200 == 0) { + if (verseHighIndex == verseLowIndex) { //prevent division by zero + m_indexingProgress.setValue( QVariant(0) ); + } else { + m_indexingProgress.setValue( QVariant((int)((100*(verseIndex-verseLowIndex))/(verseHighIndex-verseLowIndex))) ); + } + m_indexingProgress.activate(); + } + } + + writer->optimize(); + writer->close(); + + QString configFilename = getModuleStandardIndexLocation() + QString("/../bibletime-index.conf"); + util::scoped_ptr<KConfig> indexconfig( new KConfig( configFilename ) ); + if (hasVersion()) { + indexconfig->writeEntry("module-version", config(CSwordModuleInfo::ModuleVersion) ); + } + indexconfig->writeEntry("index-version", INDEX_VERSION); +} + +void CSwordModuleInfo::deleteIndexForModule( QString name ) { + util::filesystem::DirectoryUtil::removeRecursive( getGlobalBaseIndexLocation() + "/" + name ); +} + +unsigned long CSwordModuleInfo::indexSize() const { + return util::filesystem::DirectoryUtil::getDirSizeRecursive( getModuleBaseIndexLocation() ); +} + + +const bool CSwordModuleInfo::searchIndexed(const QString& searchedText, sword::ListKey& scope) { + char utfBuffer[BT_MAX_LUCENE_FIELD_LENGTH + 1]; + wchar_t wcharBuffer[BT_MAX_LUCENE_FIELD_LENGTH + 1]; + + // work around Swords thread insafety for Bibles and Commentaries + util::scoped_ptr < CSwordKey > key(CSwordKey::createInstance(this)); + sword::SWKey* s = dynamic_cast < sword::SWKey * >(key.get()); + QPtrList<VerseKey> list; + list.setAutoDelete( true ); // the list owns the objects + + const bool isVerseModule = (type() == CSwordModuleInfo::Bible) || (type() == CSwordModuleInfo::Commentary); + + if (s) { + m_module->SetKey(*s); + } + + m_searchResult.ClearList(); + + try { + // do not use any stop words + const TCHAR* stop_words[] = { + NULL + }; + lucene::analysis::standard::StandardAnalyzer analyzer( stop_words ); + lucene::search::IndexSearcher searcher(getModuleStandardIndexLocation().ascii()); + lucene_utf8towcs(wcharBuffer, searchedText.utf8(), BT_MAX_LUCENE_FIELD_LENGTH); + util::scoped_ptr<lucene::search::Query> q( lucene::queryParser::QueryParser::parse(wcharBuffer, _T("content"), &analyzer) ); + + util::scoped_ptr<lucene::search::Hits> h( searcher.search(q, lucene::search::Sort::INDEXORDER) ); + + const bool useScope = (scope.Count() > 0); +// const bool isVerseModule = (type() == CSwordModuleInfo::Bible) || (type() == CSwordModuleInfo::Commentary); + + lucene::document::Document* doc = 0; + util::scoped_ptr<SWKey> swKey( module()->CreateKey() ); + + + for (int i = 0; i < h->length(); ++i) { + doc = &h->doc(i); + lucene_wcstoutf8(utfBuffer, doc->get(_T("key")), BT_MAX_LUCENE_FIELD_LENGTH); + + swKey->setText(utfBuffer); + + // limit results based on scope + //if (searchOptions & CSwordModuleSearch::useScope && scope.Count() > 0){ + if (useScope) { + for (int j = 0; j < scope.Count(); j++) { + VerseKey* vkey = dynamic_cast<VerseKey*>(scope.getElement(j)); + if (vkey->LowerBound().compare(*swKey) <= 0 && vkey->UpperBound().compare(*swKey) >= 0) { + m_searchResult.add(*swKey); + } + } + } else { // no scope, give me all buffers + m_searchResult.add(*swKey); + } + } + } catch (...) { + qWarning("CLucene exception"); + return false; + } + + list.clear(); + + return (m_searchResult.Count() > 0); +} + +void CSwordModuleInfo::connectIndexingFinished(QObject* receiver, const char* slot) { + m_indexingFinished.connect(receiver, slot); +} + +void CSwordModuleInfo::connectIndexingProgress(QObject* receiver, const char* slot) { + m_indexingProgress.connect(receiver, slot); +} + +void CSwordModuleInfo::disconnectIndexingSignals(QObject* receiver) { + m_indexingProgress.disconnect(receiver); + m_indexingFinished.disconnect(receiver); +} + +/** Returns the last search result for this module. */ +sword::ListKey & CSwordModuleInfo::searchResult(const sword::ListKey * newResult) { + if (newResult) { + m_searchResult.copyFrom(*newResult); + } + + return m_searchResult; +} + +/** Clears the last search result. */ +void CSwordModuleInfo::clearSearchResult() { + m_searchResult.ClearList(); +} + +/** Returns the required Sword version for this module. Returns -1 if no special Sword version is required. */ +const sword::SWVersion CSwordModuleInfo::minimumSwordVersion() { + return sword::SWVersion(config(CSwordModuleInfo::MinimumSwordVersion).latin1()); +} + +const QString CSwordModuleInfo::config(const CSwordModuleInfo::ConfigEntry entry) const { + switch (entry) { + + case AboutInformation: { + return getFormattedConfigEntry("About"); + } + + case CipherKey: { + if (CBTConfig::getModuleEncryptionKey(name()).isNull()) { //fall back! + return QString(m_module->getConfigEntry("CipherKey")); + } else { + return CBTConfig::getModuleEncryptionKey(name()); + }; + } + + case AbsoluteDataPath: { + QString path( getSimpleConfigEntry("AbsoluteDataPath") ); + path.replace(QRegExp("/./"), "/"); // make /abs/path/./modules/ looking better + //make sure we have a trailing slash! + + if (path.right(1) != "/") { + path.append('/'); + } + + return path; + } + + case DataPath: { //make sure we remove the dataFile part if it's a Lexicon + QString path(getSimpleConfigEntry("DataPath")); + + if ((type() == CSwordModuleInfo::GenericBook) || (type() == CSwordModuleInfo::Lexicon)) { + int pos = path.findRev("/"); //last slash in the string + + if (pos != -1) { + path = path.left(pos + 1); //include the slash + } + } + + return path; + } + + case Description: + return getFormattedConfigEntry("Description"); + + case ModuleVersion: { + QString version(getSimpleConfigEntry("Version")); + + if (version.isEmpty()) { + version = "1.0"; + } + + return version; + } + + case MinimumSwordVersion: { + const QString minimumVersion(getSimpleConfigEntry("MinimumVersion")); + return !minimumVersion.isEmpty()? minimumVersion : QString("0.0"); + } + + case TextDir: { + const QString dir(getSimpleConfigEntry("Direction")); + return !dir.isEmpty()? dir : QString("LtoR"); + } + + case DisplayLevel: { + const QString level(getSimpleConfigEntry("DisplayLevel")); + return !level.isEmpty()? level : QString("1"); + } + + case GlossaryFrom: { + if (!category() == Glossary) { + return QString::null; + }; + + const QString lang(getSimpleConfigEntry("GlossaryFrom")); + + return !lang.isEmpty()? lang : QString::null; + } + + case GlossaryTo: { + if (!category() == Glossary) { + return QString::null; + }; + + const QString lang(getSimpleConfigEntry("GlossaryTo")); + + return !lang.isEmpty()? lang : QString::null; + } + + case Markup: { + const QString markup(getSimpleConfigEntry("SourceType")); + return !markup.isEmpty()? markup : QString("Unknown"); + } + + case DistributionLicense: + return getSimpleConfigEntry("DistributionLicense"); + + case DistributionSource: + return getSimpleConfigEntry("DistributionSource"); + + case DistributionNotes: + return getSimpleConfigEntry("DistributionNotes"); + + case TextSource: + return getSimpleConfigEntry("TextSource"); + + case CopyrightNotes: + return getSimpleConfigEntry("CopyrightNotes"); + + case CopyrightHolder: + return getSimpleConfigEntry("CopyrightHolder"); + + case CopyrightDate: + return getSimpleConfigEntry("CopyrightDate"); + + case CopyrightContactName: + return getSimpleConfigEntry("CopyrightContactName"); + + case CopyrightContactAddress: + return getSimpleConfigEntry("CopyrightContactAddress"); + + case CopyrightContactEmail: + return getSimpleConfigEntry("CopyrightContactEmail"); + + default: + return QString::null; + } +} + +/** Returns true if the module supports the feature given as parameter. */ +const bool CSwordModuleInfo::has(const CSwordModuleInfo::Feature feature) const { + switch (feature) { + + // case StrongsNumbers: + // return m_module->getConfig().has("Feature", "StrongsNumber"); + + case GreekDef: + return m_module->getConfig().has("Feature", "GreekDef"); + + case HebrewDef: + return m_module->getConfig().has("Feature", "HebrewDef"); + + case GreekParse: + return m_module->getConfig().has("Feature", "GreekParse"); + + case HebrewParse: + return m_module->getConfig().has("Feature", "HebrewParse"); + } + + return false; +} + +const bool CSwordModuleInfo::has(const CSwordModuleInfo::FilterTypes option) const { + //BAD workaround to see if the filter is GBF, OSIS or ThML! + const QString name = backend()->configOptionName(option); + + if (m_module->getConfig().has("GlobalOptionFilter", QString("OSIS").append(name).latin1())) { + return true; + } + + if (m_module->getConfig().has("GlobalOptionFilter", QString("GBF").append(name).latin1())) { + return true; + } + + if (m_module->getConfig().has("GlobalOptionFilter", QString("ThML").append(name).latin1())) { + return true; + } + + if (m_module->getConfig().has("GlobalOptionFilter", QString("UTF8").append(name).latin1())) { + return true; + } + + if (m_module->getConfig().has("GlobalOptionFilter", name.latin1())) { + return true; + } + + return false; +} + +/** Returns the text direction of the module's text., */ +const CSwordModuleInfo::TextDirection CSwordModuleInfo::textDirection() { + if (config(TextDir) == "RtoL") { + return CSwordModuleInfo::RightToLeft; + } else { + return CSwordModuleInfo::LeftToRight; + } +} + +/** Writes the new text at the given position into the module. This does only work for writable modules. */ +void CSwordModuleInfo::write(CSwordKey * key, const QString & newText) { + module()->KeyText((const char *)key->key().utf8()); + + //don't store a pointer to the const char* value somewhere because QCString doesn't keep the value of it + module()->setEntry(isUnicode()? (const char *)newText.utf8() : (const char *)newText.local8Bit()); +} + +/** Deletes the current entry and removes it from the module. */ +const bool CSwordModuleInfo::deleteEntry(CSwordKey * const key) { + module()->KeyText(isUnicode()? (const char *)key->key().utf8() : (const char *)key->key().local8Bit()); + + if (module()) { + module()->deleteEntry(); + return true; + }; + + return false; +} + +/** Returns the category of this module. See CSwordModuleInfo::Category for possible values. */ +const CSwordModuleInfo::Category CSwordModuleInfo::category() const { + if (m_dataCache.category == CSwordModuleInfo::UnknownCategory) { + const QString cat(m_module->getConfigEntry("Category")); + + if (cat == "Cults / Unorthodox / Questionable Material") { + m_dataCache.category = Cult; + } else if (cat == "Daily Devotional" || m_module->getConfig().has("Feature", "DailyDevotion")) { + m_dataCache.category = DailyDevotional; + } else if (cat == "Glossaries" || m_module->getConfig().has("Feature", "Glossary")) { //alow both + m_dataCache.category = Glossary; + }; + } + + return m_dataCache.category; +} + +/** Returns the display object for this module. */ +Rendering::CEntryDisplay * const CSwordModuleInfo::getDisplay() const { + return dynamic_cast < Rendering::CEntryDisplay * >(m_module->Disp()); +} + +QString CSwordModuleInfo::aboutText() const { + QString text; + text += "<font size=\"-1\"><table>"; + + text += QString("<tr><td><b>%1</b></td><td>%2</td><tr>") + .arg(i18n("Version")) + .arg(hasVersion()? config(CSwordModuleInfo::ModuleVersion) : i18n("unknown")); + + text += QString("<tr><td><b>%1</b></td><td>%2</td></tr>") + .arg(i18n("Markup")) + .arg(!QString(m_module->getConfigEntry("SourceType")).isEmpty()? m_module-> + getConfigEntry("SourceType") : i18n("unknown")); + + text += QString("<tr><td><b>%1</b></td><td>%2</td></tr>") + .arg(i18n("Location")) + .arg(config(CSwordModuleInfo::AbsoluteDataPath)); + + text += QString("<tr><td><b>%1</b></td><td>%2</td></tr>") + .arg(i18n("Language")) + .arg(language()->translatedName()); + + if (m_module->getConfigEntry("Category")) + text += QString("<tr><td><b>%1</b></td><td>%2</td></tr>") + .arg(i18n("Category")) + .arg(m_module->getConfigEntry("Category")); + + if (m_module->getConfigEntry("LCSH")) + text += QString("<tr><td><b>%1</b></td><td>%2</td></tr>") + .arg(i18n("LCSH")) + .arg(m_module->getConfigEntry("LCSH")); + + text += QString("<tr><td><b>%1</b></td><td>%2</td></tr>") + .arg(i18n("Writable")) + .arg(isWritable()? i18n("yes") : i18n("no")); + + if (isEncrypted()) + text += QString("<tr><td><b>%1</b></td><td>%2</td></tr>") + .arg(i18n("Unlock key")) + .arg(config(CSwordModuleInfo::CipherKey)); + + QString options; + + unsigned int opts; + + for (opts = CSwordModuleInfo::filterTypesMIN; opts <= CSwordModuleInfo::filterTypesMAX; ++opts) { + if (has(static_cast < CSwordModuleInfo::FilterTypes > (opts))) { + if (!options.isEmpty()) { + options += QString::fromLatin1(", "); + } + + options += CSwordBackend::translatedOptionName(static_cast < CSwordModuleInfo::FilterTypes > (opts)); + } + } + + if (!options.isEmpty()) { + text += QString("<tr><td><b>%1</b></td><td>%2</td></tr>") + .arg(i18n("Features")) + .arg(options); + } + + text += "</table><hr>"; + + if (category() == Cult) //clearly say the module contains cult/questionable materials + text += QString("<br/><b>%1</b><br/><br/>") + .arg(i18n("Take care, this work contains cult / questionable material!")); + + text += QString("<b>%1:</b><br><font size=\"-1\">%2</font>") + .arg(i18n("About")) + .arg(config(AboutInformation)); + + typedef QValueList<CSwordModuleInfo::ConfigEntry> ListConfigEntry; + + ListConfigEntry entries; + + entries.append(DistributionLicense); + + entries.append(DistributionSource); + + entries.append(DistributionNotes); + + entries.append(TextSource); + + entries.append(CopyrightNotes); + + entries.append(CopyrightHolder); + + entries.append(CopyrightDate); + + entries.append(CopyrightContactName); + + entries.append(CopyrightContactAddress); + + entries.append(CopyrightContactEmail); + + typedef QMap<CSwordModuleInfo::ConfigEntry, QString> MapConfigEntry; + + MapConfigEntry entryMap; + + entryMap[DistributionLicense] = i18n("Distribution license"); + + entryMap[DistributionSource] = i18n("Distribution source"); + + entryMap[DistributionNotes] = i18n("Distribution notes"); + + entryMap[TextSource] = i18n("Text source"); + + entryMap[CopyrightNotes] = i18n("Copyright notes"); + + entryMap[CopyrightHolder] = i18n("Copyright holder"); + + entryMap[CopyrightDate] = i18n("Copyright date"); + + entryMap[CopyrightContactName] = i18n("Copyright contact name"); + + entryMap[CopyrightContactAddress] = i18n("Copyright contact address"); + + entryMap[CopyrightContactEmail] = i18n("Copyright contact email"); + + text += ("<hr><table>"); + + for (ListConfigEntry::iterator it(entries.begin()); it != entries.end(); ++it) { + QString t( config(*it) ); + + if (!t.isEmpty()) { + text += QString("<tr><td><b>%1</b></td><td>%2</td></tr>") + .arg(entryMap[*it]) + .arg(config(*it)); + } + + } + + + text += "</table></font>"; + + return text; +} + +/** Returns the language of the module. */ +const CLanguageMgr::Language * const CSwordModuleInfo::language() const { + if (!m_dataCache.language) { + if (module()) { + if (category() == Glossary) { + //special handling for glossaries, we use the "from language" as language for the module + m_dataCache.language = (CPointers::languageMgr())->languageForAbbrev(config(GlossaryFrom)); + } else { + m_dataCache.language = (CPointers::languageMgr())->languageForAbbrev(module()->Lang()); + } + } else { + m_dataCache.language = (CPointers::languageMgr())->defaultLanguage(); //default language + } + } + + return m_dataCache.language; +} + + +/*! + \fn CSwordModuleInfo::getSimpleConfigEntry(char* name) + */ +QString CSwordModuleInfo::getSimpleConfigEntry(const QString& name) const { + QString ret = isUnicode() + ? QString::fromUtf8(m_module->getConfigEntry(name.latin1())) + : QString::fromLatin1(m_module->getConfigEntry(name.latin1())); + + return ret.isEmpty() ? QString::null : ret; +} + +QString CSwordModuleInfo::getFormattedConfigEntry(const QString& name) const { + SWBuf RTF_Buffer(m_module->getConfigEntry(name.latin1())); + sword::RTFHTML RTF_Filter; + RTF_Filter.processText(RTF_Buffer, 0, 0); + QString ret = isUnicode() + ? QString::fromUtf8(RTF_Buffer.c_str()) + : QString::fromLatin1(RTF_Buffer.c_str()); + + return ret.isEmpty() ? QString::null : ret; +} diff --git a/bibletime/backend/cswordmoduleinfo.h b/bibletime/backend/cswordmoduleinfo.h new file mode 100644 index 0000000..40112ec --- /dev/null +++ b/bibletime/backend/cswordmoduleinfo.h @@ -0,0 +1,373 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSWORDMODULEINFO_H +#define CSWORDMODULEINFO_H + +//BibleTime includes +#include "clanguagemgr.h" + +//Qt includes +#include <qstring.h> +#include <qvaluelist.h> +#include <qsignal.h> + +//Sword includes +#include <listkey.h> +#include <swsearchable.h> +#include <swmodule.h> +#include <swversion.h> +#include <swdisp.h> + + +class CSwordBackend; + +class CSwordKey; + +namespace Rendering { + + class CEntryDisplay; +} + +/** + * Base class for Sword modules. + * This is the base class for all Sword modules. Every class handling a special Sword module type + * does inherit from this class. + * + * @author The BibleTime team + * @version $Id: cswordmoduleinfo.h,v 1.83 2007/02/04 23:12:32 joachim Exp $ + */ + +class CSwordModuleInfo { + +public: + /** + * These are the options which could be supported by modules and by this backend. + * It's used in @ref CSwordBackend::isOptionEnabled and @ref CSwordBackend::setOption. + */ + enum FilterTypes { + footnotes, /**< Footnotes embedded in the module's text */ + strongNumbers, /**< strong numbers, usually in the text for the info display */ + headings, /**< additional section headings */ + morphTags, /**< morphology */ + lemmas, /**< lemma tags */ + hebrewPoints,/**< Hebrew vowel points */ + hebrewCantillation, /**<Hewbrew caantillation points */ + greekAccents, /**< Greek accents may be switched on and off */ + scriptureReferences, /**< scripture references may be switched on and off, just makes sense in Bibles */ + redLetterWords, /**< Jesus words in red, color is template specific */ + textualVariants, /**< variants */ + morphSegmentation, /**< morph word segmentation, supported by OSIS */ + filterTypesMIN = footnotes, /**< first entry of this enum */ + filterTypesMAX = morphSegmentation /**< last item in this enum */ + // transliteration /* The following are handled in a special way */ + }; + /** The text direction of a module */ + enum TextDirection { /* The text direction of the modules's text */ + LeftToRight, /**< Left to right text direction, the default setting */ + RightToLeft /**< Right to left text directin, e.g. for hebrew */ + }; + /** The module type. + */ + enum ModuleType { + Bible, /**< Bible module */ + Commentary, /**< Commentary module */ + Lexicon, /**< Lexicon module */ + GenericBook, /**< Generic book module */ + Unknown /**< Fall back type for unknown modules */ + }; + /** + * This enum is used to give + * back an error code after unlocking the module + * BibleTime stores the unlock key not in the module's config file but in BibleTime's + * configuration file. + */ + enum UnlockErrorCode { + noError, /**< No error occured, everything worked ok. The key was written to the BibleTime config */ + wrongUnlockKey, /**< The wrong key was used. Module is not unlocked */ + notLocked, /**< The module was not locked so it can't be unlocked */ + noPermission /**< The key was not written to config because we have no permissions */ + }; + enum ConfigEntry { + AboutInformation, /**< The about information of a module which is stored in the config file*/ + AbsoluteDataPath, /**< The absolute data path stored in the config object */ + CipherKey, /**< The cipher key which was used to unlock the module. Not necessarily set.*/ + DataPath, /**< The relative path. See AbsoluteDataPath*/ + Description, /**< The module description stored in the config file */ + ModuleVersion, /**< The module's version.*/ + MinimumSwordVersion, /**< The required Sword Version of this module. Otherwise some things may not work (compression etc.).*/ + TextDir, /**< The text direction */ + DisplayLevel, /**< Mostly used for books. Gives the level which should contain the connected entries.*/ + GlossaryFrom, /**< lamguage from which the Glosaary tramslates */ + GlossaryTo, /**< lamguages to which the glossary maps to */ + DistributionLicense, + DistributionSource, + DistributionNotes, + TextSource, + CopyrightNotes, + CopyrightHolder, + CopyrightDate, + CopyrightContactName, + CopyrightContactAddress, + CopyrightContactEmail, + Markup /**< The markup of this module */ + }; + enum Feature { + //StrongsNumbers, /**< Use for Bibles which have embedded strong numbers */ + GreekDef, + HebrewDef, + GreekParse, + HebrewParse, + featureMin = GreekDef, + featureMax = HebrewParse + }; + enum Category { + UnknownCategory = 0, /**< The category wasn't set or has an unknwon value */ + Cult, /**< The module is a cult / sect / questionable module */ + DailyDevotional, + Glossary + }; + + /** + * Returns the base directory for search indices + */ + static const QString getGlobalBaseIndexLocation(); + /** + * Removes search index for this module, even if the module is not there any more + */ + static void deleteIndexForModule( QString name ); + + + /** + * Returns the config entry which is pecified by the parameter. + */ + const QString config( const CSwordModuleInfo::ConfigEntry entry ) const; + + CSwordModuleInfo( sword::SWModule* module, CSwordBackend* const = 0 ); + /** Copy constructor to copy the passed parameter. + * @param m The module to be copied + */ + CSwordModuleInfo( const CSwordModuleInfo& m ); + /** Reimplementation to return a valid clone. + */ + virtual CSwordModuleInfo* clone(); + /** Destructor. + */ + virtual ~CSwordModuleInfo(); + + /** + * Returns the module object so all objects can access the original Sword module. + */ + inline sword::SWModule* const module() const; + /** + * Sets the unlock key of the modules and writes the key into the cofig file. + * @return True if the unlock process was succesful, if the key was wrong, or if the config file was write protected return false. + */ + const bool unlock( const QString& unlockKey ); + /** + * Returns the display object for this module. Normally every module should have a Display object. + * Please don't use module()->Display() because this function does return the Sword display and does + * render the text, too. + * This function performs some casts to return the correct display. If it returns 0 there's no valid + * display object. + */ + Rendering::CEntryDisplay* const getDisplay() const; + /** + * This function does return true if the data files of the module are encrypted by the module author + * (the on who made the module) no matter if it's locked or not. + * @return True if this module is encryped + */ + const bool isEncrypted() const; + /** + * This function returns true if this module is locked (encrypted + correct cipher key), + * otherwise return false. + * @return True if this module is locked, i.e. encrypted but without a key set + */ + const bool isLocked(); + + const bool unlockKeyIsValid(); + + /** The module version. + * @return true if this module has a version number and false if it doesn't have one. + */ + inline const bool hasVersion() const; + + /** + * Returns true if the module's index has been built. + */ + virtual const bool hasIndex(); + /** + * Returns the path to this module's index base dir + */ + virtual const QString getModuleBaseIndexLocation() const; + /** + * Returns the path to this module's standard index + */ + virtual const QString getModuleStandardIndexLocation() const; + /** + * Builds a search index for this module + */ + virtual void buildIndex(); + /** + * Returns index size + */ + virtual unsigned long indexSize() const; + + void connectIndexingFinished(QObject* receiver, const char* slot); + void connectIndexingProgress(QObject* receiver, const char* slot); + void disconnectIndexingSignals(QObject* receiver); + + /** + * Returns true if something was found, otherwise return false. + * This function uses CLucene to perform and index based search. It also + * overwrites the variable containing the last search result. + */ + virtual const bool searchIndexed(const QString& searchedText, sword::ListKey& scope); + /** + * Returns the last search result for this module. + * The last result is cleared by @ref search + */ + virtual sword::ListKey& searchResult( const sword::ListKey* newResult = 0 ); + /** + * Clears the last search result. + * This does immediately clean the last search result, + * no matter if search is in progress or not. + */ + void clearSearchResult(); + /** + * Returns the type of the module. + */ + virtual const CSwordModuleInfo::ModuleType type() const; + /** + * Returns the required Sword version for this module. + * Returns -1 if no special Sword version is required. + */ + const sword::SWVersion minimumSwordVersion(); + /** + * Returns the name of the module. + * @return The name of this module. + */ + inline const QString name() const; + /** + * Snaps to the closest entry in the module if the current key is + * not present in the data files. + */ + virtual const bool snap() { + return false; + }; + + const bool has( const CSwordModuleInfo::Feature ) const; + const bool has( const CSwordModuleInfo::FilterTypes ) const; + /** + * Returns the text direction of the module's text., + */ + virtual const CSwordModuleInfo::TextDirection textDirection(); + /** + * Writes the new text at the given position into the module. This does only work for writabe modules. + */ + virtual void write( CSwordKey* key, const QString& newText ); + /** + * Deletes the current entry and removes it from the module. + */ + const bool deleteEntry( CSwordKey* const key ); + /** + * Returns the language of the module. + */ + const CLanguageMgr::Language* const language() const; + /** + * Returns true if this module may be written by the write display windows. + */ + inline virtual const bool isWritable() const; + /** + * Returns the category of this module. See CSwordModuleInfo::Category for possible values. + */ + const CSwordModuleInfo::Category category() const; + /** + * The about text which belongs to this module. + */ + QString aboutText() const; + /** + * Returns true if this module is Unicode encoded. False if the charset is iso8859-1. + * Protected because it should not be used outside of the CSword*ModuleInfo classes. + */ + inline const bool isUnicode() const { + return m_dataCache.isUnicode; + } + +protected: + friend class CSwordBackend; + + inline CSwordBackend* backend() const { + return m_backend; + } + + inline void backend( CSwordBackend* newBackend ) { + if (newBackend) { + m_backend = newBackend; + } + } + + QString getSimpleConfigEntry(const QString& name) const; + QString getFormattedConfigEntry(const QString& name) const; + +private: + sword::SWModule* m_module; + sword::ListKey m_searchResult; + + mutable struct DataCache { + DataCache() { + language = 0; + } + + QString name; + bool isUnicode; + CSwordModuleInfo::Category category; + const CLanguageMgr::Language* language; + bool hasVersion; + } + + m_dataCache; + + CSwordBackend* m_backend; + + QSignal m_indexingFinished; + QSignal m_indexingProgress; +}; + +// typedef QPtrList<CSwordModuleInfo> ListCSwordModuleInfo; +typedef QValueList<CSwordModuleInfo*> ListCSwordModuleInfo; + +inline const CSwordModuleInfo::ModuleType CSwordModuleInfo::type() const { + return CSwordModuleInfo::Unknown; +} + +inline sword::SWModule* const CSwordModuleInfo::module() const { + return m_module; +} + +inline const bool CSwordModuleInfo::hasVersion() const { + return m_dataCache.hasVersion; +} + + +/** Returns the name of the module. */ +inline const QString CSwordModuleInfo::name() const { + return m_dataCache.name; +} + +/** Returns true if this module may be written by the write display windows. */ +inline const bool CSwordModuleInfo::isWritable() const { + return false; +} + +#include "util/cpointers.h" + +#endif diff --git a/bibletime/backend/cswordmodulesearch.cpp b/bibletime/backend/cswordmodulesearch.cpp new file mode 100644 index 0000000..3d00fd7 --- /dev/null +++ b/bibletime/backend/cswordmodulesearch.cpp @@ -0,0 +1,120 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "cswordmodulesearch.h" +#include "cswordmoduleinfo.h" +#include "cswordbackend.h" +#include "../frontend/cbtconfig.h" + +//Sword includes +#include <swmodule.h> +#include <swkey.h> +#include <listkey.h> + + +CSwordModuleSearch* CSwordModuleSearch::searcher = 0; + +CSwordModuleSearch::CSwordModuleSearch() : +m_searchedText(QString::null), +m_searchOptions(0), +m_foundItems(false){ + searcher = this; +} + +CSwordModuleSearch::~CSwordModuleSearch() { + searcher = 0; +} + +/** This function sets the modules which should be searched. */ +void CSwordModuleSearch::setModules( const ListCSwordModuleInfo& list ) { + m_moduleList = list; +} + +/** Starts the search for the search text. */ +const bool CSwordModuleSearch::startSearch() { + backend()->setFilterOptions ( CBTConfig::getFilterOptionDefaults() ); + m_foundItems = false; + + bool foundItems = false; + + // for (m_moduleList.first(); m_moduleList.current() && !m_terminateSearch; m_moduleList.next()) { + ListCSwordModuleInfo::iterator end_it = m_moduleList.end(); + + for (ListCSwordModuleInfo::iterator it = m_moduleList.begin(); it != end_it; ++it) { + if ( (*it)->searchIndexed(m_searchedText/*, m_searchOptions*/, m_searchScope) ) { + foundItems = true; + } + } + + m_foundItems = foundItems; + + m_finishedSig.activate(); + return true; +} + +/** Sets the text which should be search in the modules. */ +void CSwordModuleSearch::setSearchedText( const QString& text ) { + m_searchedText = text; +} + +/** Sets the search scope. */ +void CSwordModuleSearch::setSearchScope( const sword::ListKey& scope ) { + m_searchScope.copyFrom( scope ); + + if (!strlen(scope.getRangeText())) { //we can't search with an empty search scope, would crash + //reset the scope + resetSearchScope(); + + //disable searching with a scope! + // if (m_searchOptions | useScope) { + // qWarning("using the scope!"); + //set back the scope flag + // } + } +} + +/** Sets the search scope back. */ +void CSwordModuleSearch::resetSearchScope() { + m_searchScope.ClearList(); +} + +/** Returns true if in the last search the searcher found items, if no items were found return false. */ +const bool CSwordModuleSearch::foundItems() const { + return m_foundItems; +} + +/** Returns a copy of the used search scope. */ +const sword::ListKey& CSwordModuleSearch::searchScope() const { + return m_searchScope; +} + +void CSwordModuleSearch::connectFinished( QObject *receiver, const char *member ) { + m_finishedSig.connect(receiver, member); +} + +/** Should be called when the search finished. */ +void CSwordModuleSearch::searchFinished() { + m_finishedSig.activate(); +} + +const bool CSwordModuleSearch::modulesHaveIndices( const ListCSwordModuleInfo& modules ) +{ + bool hasIndices = true; + ListCSwordModuleInfo::const_iterator end_it = modules.end(); + for( ListCSwordModuleInfo::const_iterator it = modules.begin(); it != end_it; ++it) { + if (!(*it)->hasIndex()) { + hasIndices = false; + break; + } + } + return hasIndices; +} diff --git a/bibletime/backend/cswordmodulesearch.h b/bibletime/backend/cswordmodulesearch.h new file mode 100644 index 0000000..8c65d1c --- /dev/null +++ b/bibletime/backend/cswordmodulesearch.h @@ -0,0 +1,99 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSWORDMODULESEARCH_H +#define CSWORDMODULESEARCH_H + +//BibleTime - backend +#include "cswordmoduleinfo.h" + +//BibleTime - utils +#include "util/cpointers.h" + +//Qt includes +#include <qptrlist.h> +#include <qstring.h> +#include <qsignal.h> + +//System includes +#include <pthread.h> + +//Sword includes +#include <listkey.h> + +/** + * CSwordModuleSearch manages the search on Sword modules. It manages the thread(s) + * and manages the different modules. + * + * @author The BibleTime team + * @version $Id: cswordmodulesearch.h,v 1.34 2006/08/08 19:32:48 joachim Exp $ + */ + +class CSwordModuleSearch: public CPointers { + +public: + CSwordModuleSearch(); + /** + * The destructor of this class. It cleans uop memory before it's deleted. + */ + virtual ~CSwordModuleSearch(); + /** + * Sets the text which should be search in the modules. + */ + void setSearchedText( const QString& ); + /** + * Starts the search for the search text. + */ + const bool startSearch(); + /** + * This function sets the modules which should be searched. + */ + void setModules( const ListCSwordModuleInfo& ); + /** + * Sets the search scope. + */ + void setSearchScope( const sword::ListKey& scope ); + /** + * Sets the seaech scope back. + */ + void resetSearchScope(); + /** + * @return "true" if in the last search the searcher found items, if no items were found return "false" + */ + const bool foundItems() const; + /** + * Returns a copy of the used search scope. + */ + const sword::ListKey& searchScope() const; + + void connectFinished( QObject * receiver, const char * member ); + void searchFinished(); + + /** + * Returns true if all of the specified modules have indices already built. + */ + const bool modulesHaveIndices( const ListCSwordModuleInfo& ); + +protected: + QString m_searchedText; + sword::ListKey m_searchScope; + ListCSwordModuleInfo m_moduleList; + + int m_searchOptions; + + bool m_foundItems; + +private: + QSignal m_finishedSig; + static CSwordModuleSearch* searcher; +}; + +#endif diff --git a/bibletime/backend/cswordtreekey.cpp b/bibletime/backend/cswordtreekey.cpp new file mode 100644 index 0000000..0b17996 --- /dev/null +++ b/bibletime/backend/cswordtreekey.cpp @@ -0,0 +1,99 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2007 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cswordtreekey.h" +#include "cswordbookmoduleinfo.h" + +#include <qtextcodec.h> + +CSwordTreeKey::CSwordTreeKey( const CSwordTreeKey& k ) : CSwordKey(k), TreeKeyIdx(k) {} + +CSwordTreeKey::CSwordTreeKey( const TreeKeyIdx *k, CSwordModuleInfo* module ) : CSwordKey(module), TreeKeyIdx(*k) {} + +CSwordTreeKey* CSwordTreeKey::copy() const { + return new CSwordTreeKey(*this); +} + +const QString CSwordTreeKey::getLocalNameUnicode() const +{ + Q_ASSERT(m_module); + CSwordTreeKey* nonconst_this = const_cast<CSwordTreeKey*>(this); + if (!m_module || m_module->isUnicode()) { + return QString::fromUtf8(nonconst_this->getLocalName()); + } else { + QTextCodec *codec = QTextCodec::codecForName("CP1252"); + return codec->toUnicode(nonconst_this->getLocalName()); + } +} + +/** Returns the key of this instance */ +const QString CSwordTreeKey::key() const { + Q_ASSERT(m_module); + if (!m_module || m_module->isUnicode()) { + return QString::fromUtf8(getText()); + } else { + QTextCodec *codec = QTextCodec::codecForName("CP1252"); + return codec->toUnicode(getText()); + } +} + +/** Returns the raw key for use by Sword */ +const char* CSwordTreeKey::rawKey() const { + return getText(); +} + +const bool CSwordTreeKey::key( const QString& newKey ) { + Q_ASSERT(m_module); + if (!m_module || m_module->isUnicode()) { + return key((const char*)newKey.utf8()); + } else { + QTextCodec *codec = QTextCodec::codecForName("CP1252"); + return key((const char*)codec->fromUnicode(newKey)); + } +} + +const bool CSwordTreeKey::key( const char* newKey ) { + Q_ASSERT(newKey); + + if (newKey) { + TreeKeyIdx::operator = (newKey); + } + else { + root(); + } + + return !Error(); +} + +CSwordModuleInfo* const CSwordTreeKey::module( CSwordModuleInfo* const newModule ) { + if (newModule && (newModule != m_module) && (newModule->type() == CSwordModuleInfo::GenericBook) ) { + m_module = newModule; + + const QString oldKey = key(); + + CSwordBookModuleInfo* newBook = dynamic_cast<CSwordBookModuleInfo*>(newModule); + copyFrom( *(newBook->tree()) ); + + key(oldKey); //try to restore our old key + + //set the key to the root node + root(); + firstChild(); + } + + return m_module; +} + +/** Assignment operator. */ +CSwordTreeKey& CSwordTreeKey::operator = (const QString& keyname ) { + key(keyname); + return *this; + } diff --git a/bibletime/backend/cswordtreekey.h b/bibletime/backend/cswordtreekey.h new file mode 100644 index 0000000..7ba563d --- /dev/null +++ b/bibletime/backend/cswordtreekey.h @@ -0,0 +1,74 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2007 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSWORDTREEKEYIDX_H +#define CSWORDTREEKEYIDX_H + +//BibleTime includes +#include "cswordkey.h" + +//Sword includes +#include <treekeyidx.h> + +class CSwordModuleInfo; + +/** BibleTime's implementation of Sword's TreeKeyIdx class. + * @short CSwordKey implementation for Sword's TreeKey + * @author The BibleTime team + */ + +class CSwordTreeKey : public CSwordKey, public sword::TreeKeyIdx { + +public: + /** Constructor of this CSwordKey implementation. + * @param k The Sword tree key which belongs to this key + * @param module The module which belongs to this key + */ + CSwordTreeKey( const sword::TreeKeyIdx *k, CSwordModuleInfo* module ); + /** Copy constructor. + */ + CSwordTreeKey( const CSwordTreeKey& k ); + /** The module which belongs to this key. + * @return The module. + */ + virtual CSwordModuleInfo* const module( CSwordModuleInfo* const newModule ); + /** Copy method. + * @return A new copy of this object. + */ + virtual CSwordTreeKey* copy() const; + /** + * Returns the last part of the current key as unicode decoded QString. + * Use this instead of TreeKeyIdx::getLocalName() to avoid encoding problems. + */ + virtual const QString getLocalNameUnicode() const; + /** + * Returns the current key + */ + virtual const QString key() const; + /** + * Set the key. If the parameter is empty or null, the key will be set to "/" + */ + virtual const bool key( const QString& key ); + /** + * Set/get the key. If the parameter is not set (means equal to QString::null) + * the used key is returned. Otherwise the key is set and the new on ei returned. + */ + virtual const bool key( const char* key ); + /** + * Assignment operator. + */ + virtual CSwordTreeKey& operator = (const QString& keyname ); +protected: + /**Get the unencoded key for use by Sword.*/ + virtual const char * rawKey() const; +}; + +#endif diff --git a/bibletime/backend/cswordversekey.cpp b/bibletime/backend/cswordversekey.cpp new file mode 100644 index 0000000..3ab92d1 --- /dev/null +++ b/bibletime/backend/cswordversekey.cpp @@ -0,0 +1,306 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "cswordversekey.h" +#include "cswordbiblemoduleinfo.h" +#include "cswordcommentarymoduleinfo.h" + +//Qt includes +#include <qstringlist.h> + +//Sword includes +#include <swmodule.h> +#include <localemgr.h> + +CSwordVerseKey::CSwordVerseKey( CSwordModuleInfo* const module ) : CSwordKey(module) { + if ( CSwordBibleModuleInfo* bible = dynamic_cast<CSwordBibleModuleInfo*>(module) ) { + key( bible->lowerBound().key() ); + } +} + +CSwordVerseKey::CSwordVerseKey( const CSwordVerseKey& k ) : CSwordKey(k), VerseKey(k) {} + +CSwordVerseKey::CSwordVerseKey( const VerseKey* const k, CSwordModuleInfo* const module ) : CSwordKey(module), VerseKey(*k) {} + +/** Clones this object. */ +CSwordKey* CSwordVerseKey::copy() const { + return new CSwordVerseKey(*this); +} + +/** Sets the module for this key */ +CSwordModuleInfo* const CSwordVerseKey::module( CSwordModuleInfo* const newModule ) { + if (newModule && ((newModule->type() == CSwordModuleInfo::Bible) || (newModule->type() == CSwordModuleInfo::Commentary) ) ) { + m_module = newModule; + + //check if the module contains the key we present + CSwordBibleModuleInfo* bible = dynamic_cast<CSwordBibleModuleInfo*>(newModule); + + if (_compare(bible->lowerBound()) < 0) { + key( bible->lowerBound() ); + } + + if (_compare(bible->upperBound()) > 0) { + key( bible->upperBound() ); + } + } + + return dynamic_cast<CSwordBibleModuleInfo*>(m_module); +} + +/** Returns the current book as Text, not as integer. */ +const QString CSwordVerseKey::book( const QString& newBook ) { + int min = 0; + int max = 1; + + if (CSwordBibleModuleInfo* bible = dynamic_cast<CSwordBibleModuleInfo*>(module())) { + const bool hasOT = bible->hasTestament(CSwordBibleModuleInfo::OldTestament); + const bool hasNT = bible->hasTestament(CSwordBibleModuleInfo::NewTestament); + + if (hasOT && hasNT) { + min = 0; + max = 1; + } + else if (hasOT && !hasNT) { + min = 0; + max = 0; + } + else if (!hasOT && hasNT) { + min = 1; + max = 1; + } + else if (!hasOT && !hasNT) { + min = 0; + max = -1; //no loop + } + } + + if (!newBook.isEmpty()) { + bool finished = false; + + for (int testament = min; testament <= max && !finished; ++testament) { + for (int book = 0; book < BMAX[testament] && !finished; ++book) { + if ( !strcmp((const char*)newBook.utf8(), books[testament][book].name ) ) { + Testament(testament+1); + Book(book+1); + finished = true; + } + } + } + } + + if ( (Testament() >= min+1) && (Testament() <= max+1) && (Book() <= BMAX[min]) ) { + return QString::fromUtf8( books[Testament()-1][Book()-1].name ); + } + + //return QString::fromUtf8( books[min][0].name ); //return the first book, i.e. Genesis + return QString::null; +} + +/** Sets the key we use to the parameter. */ +const QString CSwordVerseKey::key() const { + return QString::fromUtf8(getText()); +} + +const char * CSwordVerseKey::rawKey() const { + return getText(); +} + +const bool CSwordVerseKey::key( const QString& newKey ) { + return key( (const char*)newKey.utf8() ); +} + +const bool CSwordVerseKey::key( const char* newKey ) { + if (newKey && (strlen(newKey)>0) ) { + VerseKey::operator = (newKey); + } + else if (newKey && !strlen(newKey)) { + CSwordBibleModuleInfo* bible = dynamic_cast<CSwordBibleModuleInfo*>(module()); + + if ( bible ) { + VerseKey::operator = ((const char*)bible->lowerBound().key().utf8()); + } + } + + return !Error(); +} + +const bool CSwordVerseKey::next( const JumpType type ) { + Error(); //clear Error status + bool ret = true; + + switch (type) { + + case UseBook: { + const int currentTestament = Testament(); + const int currentBook = Book(); + + if ((currentTestament == 2) && (currentBook >= BMAX[currentTestament-1])) { //Revelation, i.e. end of navigation + return false; + } + else if ((currentTestament == 1) && (currentBook >= BMAX[currentTestament-1])) { //Malachi, switch to the NT + Testament(currentTestament+1); + Book(1); + } + else { + Book(Book()+1); + } + break; + } + + case UseChapter: { + Chapter(Chapter()+1); + break; + } + + case UseVerse: { + if (m_module && m_module->module()) { + const bool oldStatus = m_module->module()->getSkipConsecutiveLinks(); + m_module->module()->setSkipConsecutiveLinks(true); + + //disable headings for next verse + const bool useHeaders = (Verse() == 0); + const bool oldHeadingsStatus = ((VerseKey*)(m_module->module()->getKey()))->Headings( useHeaders ); + //don't use setKey(), that would create a new key without Headings set + m_module->module()->getKey()->setText( (const char*)key().utf8() ); + + (*(m_module->module()) )++; + + ((VerseKey*)(m_module->module()->getKey()))->Headings(oldHeadingsStatus); + m_module->module()->setSkipConsecutiveLinks(oldStatus); + + if (!m_module->module()->Error()) { + key( QString::fromUtf8(m_module->module()->KeyText()) ); + } + else { + // Verse(Verse()+1); + //don't change the key, restore the module's position + m_module->module()->getKey()->setText( (const char*)key().utf8() ); + ret = false; + break; + } + + } + else { + Verse(Verse()+1); + } + + break; + } + + default: + return false; + } + + if ( CSwordBibleModuleInfo* bible = dynamic_cast<CSwordBibleModuleInfo*>(module()) ) { + if (_compare(bible->lowerBound()) < 0 ) { + key( bible->lowerBound() ); + ret = false; + } + + if (_compare(bible->upperBound()) > 0 ) { + key( bible->upperBound() ); + ret = false; + } + + return ret; + } + else if (Error()) { //we have no module, so take care of VerseKey::Error() + return false; + } + + return ret; +} + +const bool CSwordVerseKey::previous( const JumpType type ) { + bool ret = true; + + switch (type) { + + case UseBook: { + if ( (Book() == 1) && (Testament() == 1) ) { //Genesis + return false; + } + else if ( (Book() == 1) && (Testament() == 2) ){ //Matthew + Testament(1); + Book(BMAX[0]); + } + else{ + Book( Book()-1 ); + } + + break; + } + + case UseChapter: { + Chapter(Chapter()-1); + break; + } + + case UseVerse: { + if (m_module && m_module->module()) { + const bool useHeaders = (Verse() == 0); + const bool oldHeadingsStatus = ((VerseKey*)(m_module->module()->getKey()))->Headings( useHeaders ); + + m_module->module()->getKey()->setText( (const char*)key().utf8() ); + + const bool oldStatus = m_module->module()->getSkipConsecutiveLinks(); + m_module->module()->setSkipConsecutiveLinks(true); + ( *( m_module->module() ) )--; + + ((VerseKey*)(m_module->module()->getKey()))->Headings( oldHeadingsStatus ); + m_module->module()->setSkipConsecutiveLinks(oldStatus); + + if (!m_module->module()->Error()) { + key( QString::fromUtf8(m_module->module()->KeyText()) );//don't use fromUtf8 + } + else { + ret = false; + // Verse(Verse()-1); + m_module->module()->getKey()->setText( (const char*)key().utf8() ); //restore module's key + } + } + else { + Verse(Verse()-1); + } + + break; + } + + default: + return false; + } + + if ( CSwordBibleModuleInfo* bible = dynamic_cast<CSwordBibleModuleInfo*>(module()) ) { + if (_compare(bible->lowerBound()) < 0 ) { + key( bible->lowerBound() ); + ret = false; + } + + if (_compare(bible->upperBound()) > 0 ) { + key( bible->upperBound() ); + ret = false; + } + + return ret; + } + else if (Error()) { + return false; + } + + return ret; +} + +/** Assignment operator for more ease of use. */ +CSwordVerseKey& CSwordVerseKey::operator = (const QString& keyname) { + key(keyname); + return *this; +} diff --git a/bibletime/backend/cswordversekey.h b/bibletime/backend/cswordversekey.h new file mode 100644 index 0000000..79c9fe3 --- /dev/null +++ b/bibletime/backend/cswordversekey.h @@ -0,0 +1,122 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSWORDVERSEKEY_H +#define CSWORDVERSEKEY_H + +//own includes +#include "cswordkey.h" +#include "cswordmoduleinfo.h" + +//Qt includes +#include <qstring.h> + +//Sword includes +#include <versekey.h> + +/** + * The CSwordKey implementation for verse based modules (Bibles and Commentaries) + * + * This class is the implementation of CKey for verse based modules like + * Bibles and commentaries. + * This class provides the special functions to work with the verse based modules. + * + * Useful functions are + * @see NextBook() + * @see PreviousBook() + * @see NextChapter() + * @see PreviousChapter() + * @see NextVerse() + * @see PreviousVerse(). + * + * Call the constructor only with a valid verse based modules, otherwise this key will be invalid + * and the application will probably crash. + * + * @version $Id: cswordversekey.h,v 1.27 2007/10/26 18:26:23 jerickson314 Exp $ + * @short CSwordKey implementation for Sword's VerseKey. + * @author The BibleTime team + */ + +class CSwordVerseKey : public CSwordKey, public sword::VerseKey { + +public: + enum JumpType { + UseBook, + UseChapter, + UseVerse + }; + + /** + * Constructor of this class. + * + * This function will construct a versekey with the current module position + * and it will setup the m_module members. + * + */ + CSwordVerseKey( CSwordModuleInfo* const module ); + /** + * Copy constructor. + */ + CSwordVerseKey( const CSwordVerseKey& k ); + /** + * VerseKey based constructor. + */ + CSwordVerseKey( const sword::VerseKey* const k, CSwordModuleInfo* const module ); + /** + * Clones this object. + */ + virtual CSwordKey* copy() const; + /** + * Set/get the key. If the parameter is not set (means equal to QString::null) + * the used key is returned. Otherwise the key is set and the new on ei returned. + */ + virtual const QString key() const; + /** + * Set the current key. + */ + virtual const bool key( const QString& ); + /** + * Set/get the key. If the parameter is not set (means equal to QString::null) + * the used key is returned. Otherwise the key is set and the new on ei returned. + */ + virtual const bool key( const char* key ); + + /** + * Jumps to the next entry of the given type + */ + const bool next( const JumpType type ); + /** + * Jumps to the previous entry of the given type + */ + const bool previous ( const JumpType type ); + /** + * This functions returns the current book as localised text, not as book numer. + * + * Use "char Book()" to retrieve the book number of the current book. + * @return The name of the current book + */ + const QString book(const QString& newBook = QString::null); + /** + * Sets the module for this key + */ + virtual CSwordModuleInfo* const module( CSwordModuleInfo* const newModule = 0 ); + /** + * Assignment operator for more ease of use. + */ + virtual CSwordVerseKey& operator = (const QString& keyname); +protected: + /** + * Returns the raw key for use with Sword. + */ + virtual const char * rawKey() const; +}; + +#endif diff --git a/bibletime/backend/ctextrendering.cpp b/bibletime/backend/ctextrendering.cpp new file mode 100644 index 0000000..f3f5a9c --- /dev/null +++ b/bibletime/backend/ctextrendering.cpp @@ -0,0 +1,278 @@ +// +// C++ Implementation: ctextrendering +// +// Description: +// +// +// Author: The BibleTime team <info@bibletime.info>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#include "ctextrendering.h" + +//BibleTime includes +#include "backend/cswordkey.h" +#include "backend/cswordversekey.h" +#include "backend/cswordmoduleinfo.h" +#include "backend/cdisplaytemplatemgr.h" +#include "backend/creferencemanager.h" + +#include "util/scoped_resource.h" +#include "util/ctoolclass.h" + +//Sword includes +#include <swkey.h> + +//Qt includes +#include <qregexp.h> + +//KDE includes +#include <klocale.h> +#include <kurl.h> + +using namespace Rendering; + +CTextRendering::KeyTreeItem::KeyTreeItem(const QString& key, CSwordModuleInfo const * mod, const Settings settings ) +: m_settings( settings ), +m_moduleList(), +m_key( key ), +m_childList( 0 ), +m_stopKey( QString::null ), +m_alternativeContent( QString::null ) { + m_moduleList.append( const_cast<CSwordModuleInfo*>(mod) ); //BAD CODE +} + +CTextRendering::KeyTreeItem::KeyTreeItem(const QString& content, const Settings settings ) +: m_settings( settings ), +m_moduleList(), +m_key( QString::null ), +m_childList( 0 ), +m_stopKey( QString::null ), +m_alternativeContent( content ) {} + +CTextRendering::KeyTreeItem::KeyTreeItem(const QString& key, const ListCSwordModuleInfo& mods, const Settings settings ) +: m_settings( settings ), +m_moduleList( mods ), +m_key( key ), +m_childList( 0 ), +m_stopKey( QString::null ), +m_alternativeContent( QString::null ) {} + +CTextRendering::KeyTreeItem::KeyTreeItem() +: m_settings(), +m_moduleList(), +m_key(QString::null), +m_childList(0), +m_stopKey(QString::null), +m_alternativeContent(QString::null) {} + +CTextRendering::KeyTreeItem::KeyTreeItem(const KeyTreeItem& i) +: m_settings( i.m_settings ), +m_moduleList( i.m_moduleList ), +m_key( i.m_key ), +m_childList( 0 ), +m_stopKey( i.m_stopKey ), +m_alternativeContent( i.m_alternativeContent ) { + if (i.hasChildItems()) { + m_childList = new KeyTree(); + *m_childList = *(i.childList()); //deep copy + } + +} + +CTextRendering::KeyTreeItem::~KeyTreeItem() { + delete m_childList; + m_childList = 0; +} + +CTextRendering::KeyTreeItem::KeyTreeItem(const QString& startKey, const QString& stopKey, CSwordModuleInfo* module, const Settings settings) +: m_settings( settings ), +m_moduleList(), +m_key( startKey ), +m_childList( 0 ), +m_stopKey( stopKey ), +m_alternativeContent( QString::null ) { + Q_ASSERT(module); + m_moduleList.append(module); + + //use the start and stop key to ceate our child items + + if (module->type() == CSwordModuleInfo::Bible) { + CSwordVerseKey start(module); + start = startKey; + + CSwordVerseKey stop(module); + stop = stopKey; + + if (!m_key.isEmpty() && !m_stopKey.isEmpty()) { //we have a range of keys + bool ok = true; + + while (ok && ((start < stop) || (start == stop)) ) { //range + childList()->append( + new KeyTreeItem(start.key(), module, KeyTreeItem::Settings(false, settings.keyRenderingFace)) + ); + + + ok = start.next(CSwordVerseKey::UseVerse); + } + } + else if (m_key.isEmpty()) { + childList()->append( new KeyTreeItem(startKey, module, KeyTreeItem::Settings(false, settings.keyRenderingFace)) ); + } + } + else if ((module->type() == CSwordModuleInfo::Lexicon) || (module->type() == CSwordModuleInfo::Commentary) ) { + childList()->append( new KeyTreeItem(startKey, module, KeyTreeItem::Settings(false, KeyTreeItem::Settings::NoKey)) ); + } + else if (module->type() == CSwordModuleInfo::GenericBook) { + childList()->append( new KeyTreeItem(startKey, module, KeyTreeItem::Settings(false, KeyTreeItem::Settings::NoKey)) ); + } + + //make it into "<simple|range> (modulename)" + + if (startKey == stopKey) { + m_alternativeContent = startKey; + } + else { + sword::VerseKey vk(startKey.utf8(), stopKey.utf8()); + + if (vk.LowerBound().Book() != vk.UpperBound().Book()) { + m_alternativeContent = QString::fromUtf8(vk.getRangeText()); + } + else if (vk.LowerBound().Chapter() != vk.UpperBound().Chapter()) { + m_alternativeContent = QString("%1 - %2:%3") + .arg(QString::fromUtf8(vk.LowerBound().getText())) + .arg(vk.UpperBound().Chapter()) + .arg(vk.UpperBound().Verse()); + } + else { //only verses differ (same book, same chapter) + m_alternativeContent = QString("%1 - %2") + .arg(QString::fromUtf8(vk.LowerBound().getText())) + .arg(vk.UpperBound().Verse()); + } + } + + m_alternativeContent.append(" (").append(module->name()).append(")"); + m_alternativeContent.prepend("<div class=\"rangeheading\" dir=\"ltr\">").append("</div>"); //insert the right tags +} + +const QString& CTextRendering::KeyTreeItem::getAlternativeContent() const { + return m_alternativeContent; +} + +ListCSwordModuleInfo CTextRendering::KeyTree::collectModules() const { + //collect all modules which are available and used by child items + ListCSwordModuleInfo modules; + + for (KeyTreeItem* c = first(); c; c = next()) { + Q_ASSERT(c); + + ListCSwordModuleInfo childMods = c->modules(); + + /*ToDo: Use the const iterators as soon as we use Qt > 3.1 + const ListCSwordModuleInfo::const_iterator c_end = childMods.end(); + for (ListCSwordModuleInfo::const_iterator c_it = childMods.constBegin(); c_it != c_end; ++c_it) { + if (!modules.contains(*c_it)) { + modules.append(*c_it); + } + }*/ + + // for (CSwordModuleInfo* m = childMods.first(); m; m = childMods.next()) { + ListCSwordModuleInfo::iterator end_it = childMods.end(); + + for (ListCSwordModuleInfo::iterator it(childMods.begin()); it != end_it; ++it) { + if (!modules.contains(*it)) { + modules.append(*it); + } + } + + } + + return modules; +} + +const QString CTextRendering::renderKeyTree( KeyTree& tree ) { + initRendering(); + + ListCSwordModuleInfo modules = tree.collectModules(); + QString t; + + //optimization for entries with the same key + util::scoped_ptr<CSwordKey> key( + (modules.count() == 1) ? CSwordKey::createInstance(modules.first()) : 0 + ); + + for (KeyTreeItem* c = tree.first(); c; c = tree.next()) { + if (modules.count() == 1) { //this optimizes the rendering, only one key created for all items + key->key( c->key() ); + t.append( renderEntry( *c, key) ); + } + else { + t.append( renderEntry( *c ) ); + } + } + + return finishText(t, tree); +} + +const QString CTextRendering::renderKeyRange( const QString& start, const QString& stop, const ListCSwordModuleInfo& modules, const QString& highlightKey, const KeyTreeItem::Settings& keySettings ) { + + CSwordModuleInfo* module = modules.first(); + //qWarning( "renderKeyRange start %s stop %s \n", start.latin1(), stop.latin1() ); + + util::scoped_ptr<CSwordKey> lowerBound( CSwordKey::createInstance(module) ); + lowerBound->key(start); + + util::scoped_ptr<CSwordKey> upperBound( CSwordKey::createInstance(module) ); + upperBound->key(stop); + + sword::SWKey* sw_start = dynamic_cast<sword::SWKey*>(lowerBound.get()); + sword::SWKey* sw_stop = dynamic_cast<sword::SWKey*>(upperBound.get()); + + Q_ASSERT((*sw_start == *sw_stop) || (*sw_start < *sw_stop)); + + if (*sw_start == *sw_stop) { //same key, render single key + return renderSingleKey(lowerBound->key(), modules); + } + else if (*sw_start < *sw_stop) { // Render range + KeyTree tree; + KeyTreeItem::Settings settings = keySettings; + + CSwordVerseKey* vk_start = dynamic_cast<CSwordVerseKey*>(lowerBound.get()); + Q_ASSERT(vk_start); + + CSwordVerseKey* vk_stop = dynamic_cast<CSwordVerseKey*>(upperBound.get()); + Q_ASSERT(vk_stop); + + bool ok = true; + while (ok && ((*vk_start < *vk_stop) || (*vk_start == *vk_stop))) { + //make sure the key given by highlightKey gets marked as current key + settings.highlight = (!highlightKey.isEmpty() ? (vk_start->key() == highlightKey) : false); + + /*TODO: We need to take care of linked verses if we render one or (esp) more modules + If the verses 2,3,4,5 are linked to 1, it should be displayed as one entry with the caption 1-5 */ + + if (vk_start->Chapter() == 0){ //range was 0:0-1:x, render 0:0 first and jump to 1:0 + vk_start->Verse(0); + tree.append( new KeyTreeItem(vk_start->key(), modules, settings) ); + vk_start->Chapter(1); + vk_start->Verse(0); + } + tree.append( new KeyTreeItem(vk_start->key(), modules, settings) ); + ok = vk_start->next(CSwordVerseKey::UseVerse); + } + + return renderKeyTree(tree); + } + + return QString::null; +} + +const QString CTextRendering::renderSingleKey( const QString& key, const ListCSwordModuleInfo& moduleList, const KeyTreeItem::Settings& settings ) { + KeyTree tree; + tree.append( new KeyTreeItem(key, moduleList, settings) ); + + return renderKeyTree(tree); +} + + diff --git a/bibletime/backend/ctextrendering.h b/bibletime/backend/ctextrendering.h new file mode 100644 index 0000000..d034959 --- /dev/null +++ b/bibletime/backend/ctextrendering.h @@ -0,0 +1,147 @@ +// +// C++ Interface: ctextrendering +// +// Description: +// +// +// Author: The BibleTime team <info@bibletime.info>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +#ifndef CTEXTRENDERING_H +#define CTEXTRENDERING_H + +//BT includes +#include "backend/cswordmoduleinfo.h" + +#include "util/autoptrvector.h" + +//QT includes +#include <qstring.h> + +// class CSwordModuleInfo; + +class CSwordKey; + +/** + * CTextRendering is BibleTime's place where the actual rendering takes place. + * It provides several methods to convert an abstract tree of items + * into a string of html. + * + * See the implementations @ref CHTMLExportRendering and especially @ref CDisplayRendering. + * @short Text rendering based on trees + * @author The BibleTime team +*/ + +namespace Rendering { + + class CTextRendering { + +public: + + class KeyTreeItem; + + class KeyTree; + typedef util::AutoPtrVector<KeyTreeItem> KeyTreeItemList; + + class KeyTreeItem { + public: + + struct Settings { + enum KeyRenderingFace { + NoKey, //< means no key shown at all + SimpleKey, //< means only versenumber or only lexicon entry name + CompleteShort, //< means key like "Gen 1:1" + CompleteLong //< means "Genesis 1:1" + }; + + Settings(const bool highlight = false, KeyRenderingFace keyRendering = SimpleKey) : highlight(highlight), keyRenderingFace(keyRendering) {} + + bool highlight; + KeyRenderingFace keyRenderingFace; + }; + + KeyTreeItem(const QString& key, CSwordModuleInfo const * module, const Settings settings); + KeyTreeItem(const QString& key, const ListCSwordModuleInfo& modules, const Settings settings); + KeyTreeItem(const QString& startKey, const QString& stopKey, CSwordModuleInfo* module, const Settings settings); + KeyTreeItem(const QString& content, const Settings settings); + KeyTreeItem(const KeyTreeItem& i); + + virtual ~KeyTreeItem(); + + const QString& getAlternativeContent() const; + inline void setAlternativeContent(const QString& newContent) { + m_alternativeContent = newContent; + }; + + inline const bool hasAlternativeContent() const { + return !m_alternativeContent.isNull(); + }; + + inline const ListCSwordModuleInfo& modules() const { + return m_moduleList; + }; + + inline const QString& key() const { + return m_key; + }; + + inline const Settings& settings() const { + return m_settings; + }; + + inline KeyTree* const childList() const; + inline const bool hasChildItems() const; + + protected: + KeyTreeItem(); + + Settings m_settings; + ListCSwordModuleInfo m_moduleList; + QString m_key; + mutable KeyTree* m_childList; + + QString m_stopKey; + QString m_alternativeContent; + }; + + class KeyTree : public KeyTreeItemList { + public: + ListCSwordModuleInfo collectModules() const; + }; + + virtual ~CTextRendering() {} + + const QString renderKeyTree( KeyTree& ); + + const QString renderKeyRange( const QString& start, const QString& stop, const ListCSwordModuleInfo& modules, const QString& hightlightKey = QString::null, const KeyTreeItem::Settings& settings = KeyTreeItem::Settings() ); + + const QString renderSingleKey( const QString& key, const ListCSwordModuleInfo&, const KeyTreeItem::Settings& settings = KeyTreeItem::Settings() ); + +protected: + virtual const QString renderEntry( const KeyTreeItem&, CSwordKey* = 0 ) = 0; + virtual const QString finishText( const QString&, KeyTree& tree ) = 0; + virtual void initRendering() = 0; +}; + +inline CTextRendering::KeyTree* const CTextRendering::KeyTreeItem::childList() const { + if (!m_childList) { + m_childList = new KeyTree(); + } + + return m_childList; +} + +inline const bool CTextRendering::KeyTreeItem::hasChildItems() const { + if (!m_childList) { + return false; + } + + return !m_childList->isEmpty(); +} + +} + +#endif diff --git a/bibletime/backend/osismorphsegmentation.cpp b/bibletime/backend/osismorphsegmentation.cpp new file mode 100644 index 0000000..7aeb63c --- /dev/null +++ b/bibletime/backend/osismorphsegmentation.cpp @@ -0,0 +1,92 @@ +/****************************************************************************** + * + * osisfootnotes - SWFilter descendant to hide or show footnotes + * in an OSIS module. + */ + + +#include "osismorphsegmentation.h" + +#include <stdlib.h> +#include <swmodule.h> +#include <swbuf.h> +#include <versekey.h> +#include <utilxml.h> +#include <utilstr.h> + + + +namespace Filters { +const char OSISMorphSegmentation::oName[] = "Morph segmentation"; +const char OSISMorphSegmentation::oTip[] = "Toggles morph segmentation On and Off if they exist"; + +const SWBuf OSISMorphSegmentation::choices[3] = {"Off", "On", ""}; + +const StringList OSISMorphSegmentation::oValues(&choices[0], &choices[2]); + +OSISMorphSegmentation::OSISMorphSegmentation() : sword::SWOptionFilter(oName, oTip, &oValues) { + setOptionValue("Off"); + } + + + OSISMorphSegmentation::~OSISMorphSegmentation() {} + + + char OSISMorphSegmentation::processText(SWBuf &text, const SWKey */*key*/, const SWModule */*module*/) { + SWBuf token; + bool intoken = false; + bool hide = false; + + SWBuf orig( text ); + const char *from = orig.c_str(); + + XMLTag tag; + + for (text = ""; *from; ++from) { + if (*from == '<') { + intoken = true; + token = ""; + continue; + } + + if (*from == '>') { // process tokens + intoken = false; + + if (!strncmp(token.c_str(), "seg ", 4) || !strncmp(token.c_str(), "/seg", 4)) { + tag = token; + + if (!tag.isEndTag() && tag.getAttribute("type") && !strcmp("morph", tag.getAttribute("type"))) { //<seg type="morph"> start tag + hide = (option == 0); //only hide if option is Off + } + + if (hide) { //hides start and end tags as long as hide is set + + if (tag.isEndTag()) { //</seg> + hide = false; + } + + continue; //leave out the current token + } + } //end of seg tag handling + + text.append('<'); + text.append(token); + text.append('>'); + + // hide = false; //not right, because there may be child tags in seg. Only /seg may disable the seg hiding. + + continue; + } //end of intoken part + + if (intoken) { //copy token + token.append(*from); + } + else { //copy text which is not inside of a tag + text.append(*from); + } + } + + return 0; + } + +} diff --git a/bibletime/backend/osismorphsegmentation.h b/bibletime/backend/osismorphsegmentation.h new file mode 100644 index 0000000..bc4ea0f --- /dev/null +++ b/bibletime/backend/osismorphsegmentation.h @@ -0,0 +1,48 @@ +/****************************************************************************** + * + * $Id: osismorphsegmentation.h,v 1.4 2006/08/08 19:32:48 joachim Exp $ + * + * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org) + * CrossWire Bible Society + * P. O. Box 2528 + * Tempe, AZ 85280-2528 + * + * 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 version 2. + * + * 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. + * + */ + +#ifndef OSISMORPHSEGMENTATION_H +#define OSISMORPHSEGMENTATION_H + +#include <swoptfilter.h> + +using namespace sword; + +namespace Filters { + +/** This Filter shows/hides headings in a OSIS text. + * @author Martin Gruner + */ +class OSISMorphSegmentation : public SWOptionFilter { + static const char oName[]; + static const char oTip[]; + static const SWBuf choices[3]; + static const StringList oValues; + +public: + OSISMorphSegmentation(); + virtual ~OSISMorphSegmentation(); + + virtual char processText(SWBuf &text, const SWKey *key = 0, const SWModule *module = 0); +}; + +} + +#endif diff --git a/bibletime/bibletime.cpp b/bibletime/bibletime.cpp new file mode 100644 index 0000000..32030ff --- /dev/null +++ b/bibletime/bibletime.cpp @@ -0,0 +1,329 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//local includes +#include "config.h" +#include "bibletime.h" + +//frontend includes +#include "frontend/cmdiarea.h" +#include "frontend/kstartuplogo.h" +#include "frontend/mainindex/cmainindex.h" +#include "frontend/displaywindow/cdisplaywindow.h" +#include "frontend/displaywindow/creadwindow.h" +#include "frontend/displaywindow/cwritewindow.h" +#include "frontend/keychooser/ckeychooser.h" +#include "frontend/cbtconfig.h" + +#include "util/ctoolclass.h" +#include "util/cpointers.h" + +//backend includes +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordbiblemoduleinfo.h" +#include "backend/cswordcommentarymoduleinfo.h" +#include "backend/cswordlexiconmoduleinfo.h" +#include "backend/cswordbookmoduleinfo.h" +#include "backend/cswordversekey.h" +#include "backend/cswordldkey.h" + + +//Qt includes +#include <qsplitter.h> + +//KDE includes +#include <kdeversion.h> +#include <kaction.h> +#include <kapplication.h> +#include <kconfig.h> +#include <kcmdlineargs.h> +#include <klocale.h> +#include <kaccel.h> +#include <kmenubar.h> +#include <ktoolbar.h> +#include <krandomsequence.h> + +using namespace Profile; + +BibleTime::BibleTime() +: BibleTimeInterface("BibleTimeInterface"), +#if KDE_VERSION >= 0x030200 +KMainWindow(KMainWindow::NoDCOPObject, 0,0, WType_TopLevel), +#else +KMainWindow(0,0, WType_TopLevel), +#endif +m_windowActionCollection(0), +m_initialized(false), +m_moduleList(0), +m_progress(0), +m_currentProfile(0), +m_mainSplitter(0), +m_leftPaneSplitter(0), +m_mdi(0), +m_profileMgr(), +m_backend(0), +m_mainIndex(0) { + setObjId("BibleTimeInterface"); + setHelpMenuEnabled(false); + + initBackends(); + initView(); + initActions(); + + createGUI("bibletimeui.rc"); + initMenubar(); + initConnections(); + + readSettings(); + + setPlainCaption("BibleTime " VERSION); + + // we don't save the geometry, it's stored in the startup profile + setAutoSaveSettings(QString("MainWindow"), false); +} + +BibleTime::~BibleTime() { + // delete m_dcopInterface; + // The backend is deleted by the BibleTimeApp instance +} + +/** Saves the properties of BibleTime to the application wide configfile */ +void BibleTime::saveSettings() { + if (m_mdi) { + m_mdi->saveSettings(); + } + + accel()->writeSettings(CBTConfig::getConfig()); + + CBTConfig::set + (CBTConfig::toolbar, m_viewToolbar_action->isChecked()); + CBTConfig::set + (CBTConfig::mainIndex, m_viewMainIndex_action->isChecked()); + CBTConfig::set + (CBTConfig::infoDisplay, m_viewInfoDisplay_action->isChecked()); + + CBTConfig::set + (CBTConfig::mainSplitterSizes, m_mainSplitter->sizes()); + CBTConfig::set + (CBTConfig::leftPaneSplitterSizes, m_leftPaneSplitter->sizes()); + + // set the default to false + /* CBTConfig::set(CBTConfig::autoTileVertical, false); + CBTConfig::set(CBTConfig::autoTileHorizontal, false); + CBTConfig::set(CBTConfig::autoCascade, false); + */ + CBTConfig::set + (CBTConfig::autoTileVertical, m_windowAutoTileVertical_action->isChecked()); + CBTConfig::set + (CBTConfig::autoTileHorizontal, m_windowAutoTileHorizontal_action->isChecked()); + CBTConfig::set + (CBTConfig::autoCascade, m_windowAutoCascade_action->isChecked()); + + + CProfile* p = m_profileMgr.startupProfile(); + if (p) { + saveProfile(p); + } +} + +/** Reads the settings from the configfile and sets the right properties. */ +void BibleTime::readSettings() { + // accel()->readSettings(CBTConfig::getConfig()); + CBTConfig::setupAccelSettings(CBTConfig::application, actionCollection()); + + m_viewToolbar_action->setChecked( CBTConfig::get + (CBTConfig::toolbar) ); + slotToggleToolbar(); + + m_viewMainIndex_action->setChecked( CBTConfig::get + (CBTConfig::mainIndex) ); + slotToggleMainIndex(); + + m_viewInfoDisplay_action->setChecked( CBTConfig::get + (CBTConfig::infoDisplay) ); + slotToggleInfoDisplay(); + + m_mainSplitter->setSizes( + CBTConfig::get + (CBTConfig::mainSplitterSizes) + ); + m_leftPaneSplitter->setSizes( + CBTConfig::get + (CBTConfig::leftPaneSplitterSizes) + ); + + if ( CBTConfig::get + (CBTConfig::autoTileVertical) ) { + m_windowAutoTileVertical_action->setChecked( true ); + m_windowManualMode_action->setChecked(false); + slotAutoTileVertical(); + } + else if ( CBTConfig::get + (CBTConfig::autoTileHorizontal) ) { + m_windowAutoTileHorizontal_action->setChecked( true ); + m_windowManualMode_action->setChecked(false); + slotAutoTileHorizontal(); + } + else if ( CBTConfig::get + (CBTConfig::autoCascade) ) { + m_windowAutoCascade_action->setChecked(true); + m_windowManualMode_action->setChecked(false); + slotAutoCascade(); + } + else { + m_windowManualMode_action->setChecked(true); + slotManualArrangementMode(); + } +} + +/** Creates a new presenter in the MDI area according to the type of the module. */ +CDisplayWindow* BibleTime::createReadDisplayWindow(ListCSwordModuleInfo modules, const QString& key) { + kapp->setOverrideCursor( waitCursor ); + + CDisplayWindow* displayWindow = CDisplayWindow::createReadInstance(modules, m_mdi); + if ( displayWindow ) { + displayWindow->init(); + displayWindow->show(); + // if (!key.isEmpty()) + displayWindow->lookup(key); + } + + kapp->restoreOverrideCursor(); + return displayWindow; +} + + +/** Creates a new presenter in the MDI area according to the type of the module. */ +CDisplayWindow* BibleTime::createReadDisplayWindow(CSwordModuleInfo* module, const QString& key) { + ListCSwordModuleInfo list; + list.append(module); + + return createReadDisplayWindow(list, key); +} + +CDisplayWindow* BibleTime::createWriteDisplayWindow(CSwordModuleInfo* module, const QString& key, const CDisplayWindow::WriteWindowType& type) { + kapp->setOverrideCursor( waitCursor ); + + ListCSwordModuleInfo modules; + modules.append(module); + + CDisplayWindow* displayWindow = CDisplayWindow::createWriteInstance(modules, m_mdi, type); + if ( displayWindow ) { + displayWindow->init(); + displayWindow->show(); + displayWindow->lookup(key); + } + + kapp->restoreOverrideCursor(); + return displayWindow; +} + +/** Refreshes all presenters.*/ +void BibleTime::refreshDisplayWindows() { + unsigned int index; + for ( index = 0; index < m_mdi->windowList().count(); index++) { + CDisplayWindow* window = dynamic_cast<CDisplayWindow*>(m_mdi->windowList().at(index)); + if (window) { + window->reload(); + } + } +} + +/** Called before quit. */ +bool BibleTime::queryExit() { + bool ret = false; + if (m_initialized) { + saveSettings(); + ret = true; + } + + return ret; +} + +/** Called before a window is closed */ +bool BibleTime::queryClose() { + bool ret = true; + + for ( unsigned int index = 0; index < m_mdi->windowList().count(); ++index) { + if (CDisplayWindow* window = dynamic_cast<CDisplayWindow*>(m_mdi->windowList().at(index)) + ) { + ret = ret && window->queryClose(); + } + } + + return ret; +} + +/** Reimplementation used for sessions management. */ +void BibleTime::saveProperties(KConfig* /*myConfig*/) {} + +/** Reimplementation used for session management. */ +void BibleTime::readProperties(KConfig* /*myConfig*/) {} + +/** Restores the workspace if the flag for this is set in the config. */ +void BibleTime::restoreWorkspace() { + if (CProfile* p = m_profileMgr.startupProfile()) { + loadProfile(p); + } +} + +/** Sets the caption of the mainwindow */ +void BibleTime::setCaption( const QString& ) { + KMainWindow::setPlainCaption( KApplication::kApplication()->makeStdCaption( m_mdi->currentApplicationCaption() ) ); +} + +/** Sets the plain caption of the main window */ +void BibleTime::setPlainCaption( const QString& ) { + KMainWindow::setPlainCaption( KApplication::kApplication()->makeStdCaption( m_mdi->currentApplicationCaption() ) ); +} + +/** Processes the commandline options given to BibleTime. */ +void BibleTime::processCommandline() { + KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); + + // if (CBTConfig::get(CBTConfig::crashedLastTime)) { + if (!CBTConfig::get + (CBTConfig::crashedTwoTimes) && !args->isSet("ignore-session")) { //restore workspace if it crashed only once + restoreWorkspace(); + } + // } + + //open every time a module if the command line option was set. + if ( args->isSet("open-default-bible") && !CBTConfig::get + (CBTConfig::crashedLastTime) && !CBTConfig::get + (CBTConfig::crashedTwoTimes)) { //restore workspace if it crashed ony once + QString bibleKey = args->getOption("open-default-bible"); + CSwordModuleInfo* bible = CBTConfig::get + (CBTConfig::standardBible); + + if (bibleKey == "<random>") { + CSwordVerseKey vk(0); + const int maxIndex = 32400; + + KRandomSequence rs; + int newIndex = rs.getLong(maxIndex); + vk.setPosition(sword::TOP); + vk.Index(newIndex); + bibleKey = vk.key(); + } + createReadDisplayWindow(bible, bibleKey); + // if (isVisible()) + m_mdi->myTileVertical();//we are sure only one window is open, which should be displayed fullscreen in the working area + } +} + +void BibleTime::polish() { + m_initialized = true; + + KMainWindow::polish(); + applyMainWindowSettings(CBTConfig::getConfig(), QString::fromLatin1("MainWindow")); +} + diff --git a/bibletime/bibletime.h b/bibletime/bibletime.h new file mode 100644 index 0000000..ff661e9 --- /dev/null +++ b/bibletime/bibletime.h @@ -0,0 +1,421 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef BIBLETIME_H +#define BIBLETIME_H + +//Own includes +#include "bibletimeinterface.h" + +//Frontend includes +#include "frontend/cprofilemgr.h" +#include "frontend/cprofile.h" +#include "frontend/displaywindow/cdisplaywindow.h" + +//Backend includes +#include "backend/cswordmoduleinfo.h" + +//KDE includes +#include <kmainwindow.h> + +//forward: BT classes +class CMDIArea; +class CDisplayWindow; +class CMainIndex; + +namespace InfoDisplay { + class CInfoDisplay; +} + +//KDE classes +class KToggleAction; +class KAccel; +class KPopupMenu; +class KAction; +class KActionMenu; +class KActionCollection; + +//QT classes +class QPopupMenu; +class QProgressDialog; +class QSplitter; + +/** + * @page backend The structure of the backend + * <p> + * The backend implementation for Sword is called CSwordBackend, the classes we use + * to work with keys are called CSwordVerseKey and CSwordLDKey, both are derived from + * the class CSwordKey. + * The CSwordKey derived classes used for Sword do also inherit the classes + * VerseKey (CSwordVerseKey) + * and SWKey (CSwordLDKey). + * </p> + * <p> + * The classes used to handle all module based stuff are derived from CModuleInfo. + * The module classes are: CSwordModuleInfo (for Sword modules), + * CSwordBibleModuleInfo (for bibles), CSwordCommentaryModuleInfo (for commentaries) and + * CSwordLexiconModuleInfo (for lexicons). + * Have a look at the class documentation of the mentioned classes to learn how the + * structure of them looks like and which class inherits which other class. + * </p> + * <p> + * The first objects which should be created in the application is the backend + * (for Sword the class is called CSwordBackend). + * Then create all the different module classes for the correct Sword modules. + * Have a look at + * BibleTime::initBackens() to see how it's done in BibleTime.@br + * Later you can work with them for example by using the CSwordKey and + * CSwordModuleInfo derived class. + * </p> + */ + +/** + * @page frontend The structure of the frontend + * + * <p> + * The frontend contains the classes which interact with the user. For example the main index, + * the display windows, the searchdialog or the other parts. + * </p><p> + * The main index is implemented in the class CGroupManager, the items of the + * main index are implemented in the class CGroupManagerItem. + * Each CGroupManagerItem has a type() function which returns the type of + * the object (Module, Bookmark or Group).<BR> + * The display windows are all derived from the base class CPresenter. + * The display windows which handle Sword modules are all derived from the + * CSwordPresenter class. + * The display windows which provide functionality are CBiblePresenter for + * Bibles, CCommentaryPresenter for commentaries and CLexiconPresenter for + * lexicon and dictionaries. + * CSwordPresenter provides the essential base functions which are + * reimplemented in the derived classes (for example CSwordPresenter::lookup).<BR> + * </p><p> + * Another important part of the frontend are the keychoosers. + * They provide an interface to choose a key of a module. + * The interface for different module types is different. + * The base class is CKeyChooser which is the factory for the derived classes. + * Use the function CKeyChooser::createInstance to get the correct + * keychooser implementation for the desired module.<BR> + * </p> + */ + +/** @mainpage BibleTime - sourcecode documentation + * BibleTime main page. + * <p>This is the sourcecode documentation of BibleTime, a Bible study tool for KDE/Linux. + * BibleTime is devided in two major parts, the backend and the frontend. + * The backend is mainly a wrapper around Sword's classes to use Qt functionality + * to allow easy access to it's functionality and to have it in a (more or less :) + * object oriented structure.</p><BR> + * <p> + * -Introduction to the backend: @ref backend<BR> + * -Introduction to the frontend: @ref frontend.<BR> + * The main class of BibleTime is called @ref BibleTime, which is the main window + * and initializes all important parts at startup. The text display windows + * belong to the @ref frontend. + * </p> + */ + +/** BibleTime's main class. + * The main class of BibleTime. Here are the main widgets created. + * + * This is the main class of BibleTime! This class creates the GUI, the KAction objects + * and connects to some slots. Please insert the creation of actions in initActions, + * the creation of widgets into initView and the connect(...) calls into initConnections. + * Reading from a config file on creation time should go into readSettings(), saving into + * saveSettings(). + * This is the general way of all BibleTime classes. + */ +class BibleTime : public KMainWindow, virtual public BibleTimeInterface { + friend class CMDIArea; + Q_OBJECT +public: + /** + * construtor of BibleTime + */ + BibleTime(); + /** + * destrutor of BibleTime + */ + virtual ~BibleTime(); + + virtual void polish(); + /** + * Reads the settings from the configfile and sets the right properties. + */ + void readSettings(); + /** + * Saves the settings of this class + */ + void saveSettings(); + /** + * Restores the workspace if the flaf for this is set in the config. + */ + void restoreWorkspace(); + /** + * Apply the settings given by the profile p + */ + void applyProfileSettings( Profile::CProfile* p ); + /** + * Stores the settings of the mainwindow in the profile p + */ + void storeProfileSettings( Profile::CProfile* p ); + +public slots: + /** + * Shows the daily tip + */ + void slotHelpTipOfDay(); + /** + * Opens the optionsdialog of BibleTime. + */ + void slotSettingsOptions(); + /** + * Opens the optionsdialog of BibleTime. + */ + void slotSwordSetupDialog(); + /** + * Opens the handbook. + */ + void openOnlineHelp_Handbook(); + /** + * Opens the bible study howto. + */ + void openOnlineHelp_Howto(); + /** + * Sets the plain caption of the main window + */ + virtual void setPlainCaption( const QString& ); + /** + * Sets the caption of the mainwindow + */ + virtual void setCaption(const QString&); + /** + * Processes the commandline options given to BibleTime. + */ + void processCommandline(); + +protected: // Protected methods + /** + * Initializes the view of this widget + */ + void initView(); + /** + * Initializes the menubar of BibleTime. + */ + void initMenubar(); + /** + * Initializes the SIGNAL / SLOT connections + */ + void initConnections(); + /** + * Initializes the backend + */ + void initBackends(); + /** + * Initializes the action objects of the GUI + */ + void initActions(); + /** + * Refreshes all presenter supporting at least in of the features given as parameter. + */ + void refreshDisplayWindows(); + /** + * Called before a window is closed + */ + bool queryClose(); + /** + * Called before quit. + */ + bool queryExit(); + /** + * Reimplementation used for session management. + */ + void readProperties(KConfig* config); + /** + * Reimplementation used for sessions management. + */ + void saveProperties(KConfig* myConfig); + +protected slots: + /** + * Creates a new presenter in the MDI area according to the type of the module. + */ + CDisplayWindow* createReadDisplayWindow(ListCSwordModuleInfo modules, const QString& key); + CDisplayWindow* createReadDisplayWindow(CSwordModuleInfo* module, const QString& key); + CDisplayWindow* createWriteDisplayWindow(CSwordModuleInfo* module, const QString& key, const CDisplayWindow::WriteWindowType& type); + /** + * Is called when the window menu is about to show ;-) + */ + void slotWindowMenuAboutToShow(); + /** + * This slot is connected with the windowAutoTile_action object + */ + void slotAutoTileVertical(); + /** + * This slot is connected with the windowAutoTile_action object + */ + void slotAutoTileHorizontal(); + /** + * This slot is connected with the windowAutoCascade_action object + */ + void slotAutoCascade(); + void slotUpdateWindowArrangementActions( KAction* ); + + void slotCascade(); + void slotTileVertical(); + void slotTileHorizontal(); + + void slotManualArrangementMode(); + + /** + * Is called when a client was selected in the window menu + */ + void slotWindowMenuActivated(); + /** + * Shows/hides the toolbar + */ + void slotToggleToolbar(); + /** + * Opens a toolbar editor + */ + void slotSettingsToolbar(); + /** + * Shows or hides the main index part + */ + void slotToggleMainIndex(); + /** + * Shows or hides the info display part. + */ + void slotToggleInfoDisplay(); + /** + * Saves to the profile with the menu id ID + */ + void saveProfile(int ID); + /** + * Saves the current settings into the currently activatred profile. + */ + void saveProfile(Profile::CProfile* p); + /** + * Deletes the chosen session from the menu and from disk. + */ + void deleteProfile(int ID); + /** + * Loads the profile with the menu id ID + */ + void loadProfile(int ID); + /** + * Loads the profile with the menu ID id + */ + void loadProfile(Profile::CProfile* p); + /** + * Toggles between normal and fullscreen mode. + */ + void toggleFullscreen(); + /** + * Is called when settings in the optionsdialog have been + * changed (ok or apply) + */ + void slotSettingsChanged(); + /** + * Is called when settings in the sword setup dialog have been + * changed (ok or apply) + */ + void slotSwordSetupChanged(); + /** + * Called when search button is pressed + **/ + void slotSearchModules(); + /** + * Called for search default bible + **/ + void slotSearchDefaultBible(); + /** + Saves current settings into a new profile. + */ + void saveToNewProfile(); + /** + * Slot to refresh the save profile and load profile menus. + */ + void refreshProfileMenus(); + + +private: + QPopupMenu* m_windowMenu; + QPopupMenu* m_editMenu; + + /** VIEW menu actions */ + KToggleAction* m_viewToolbar_action; + KToggleAction* m_viewMainIndex_action; + KToggleAction* m_viewInfoDisplay_action; + + /** WINDOW menu actions */ + KAction* m_windowCascade_action; + KAction* m_windowTileHorizontal_action; + KAction* m_windowTileVertical_action; + KActionMenu* m_windowArrangementMode_action; + KToggleAction* m_windowManualMode_action; + KToggleAction* m_windowAutoCascade_action; + KToggleAction* m_windowAutoTileVertical_action; + KToggleAction* m_windowAutoTileHorizontal_action; + KAction* m_windowCloseAll_action; + + KActionCollection* m_windowActionCollection; + + KActionMenu* m_windowSaveProfile_action; + KAction* m_windowSaveToNewProfile_action; + KActionMenu* m_windowLoadProfile_action; + KActionMenu* m_windowDeleteProfile_action; + KToggleAction* m_windowFullscreen_action; + + QPtrList<KAction> m_windowOpenWindowsList; + + KHelpMenu* m_helpMenu; + + + bool m_initialized; + /** + * The list of installed SWORD modules + */ + ListCSwordModuleInfo* m_moduleList; + QProgressDialog* m_progress; + + Profile::CProfile* m_currentProfile; + QSplitter* m_mainSplitter; + QSplitter* m_leftPaneSplitter; + CMDIArea* m_mdi; + + Profile::CProfileMgr m_profileMgr; + CSwordBackend* m_backend; + + CMainIndex* m_mainIndex; + + InfoDisplay::CInfoDisplay* m_infoDisplay; + +protected: //DCOP interface implementation + //helper function + void syncAllModulesByType(const CSwordModuleInfo::ModuleType type, const QString& key); + + //see bibletimeinterface.h for a documentation of these functions + virtual void closeAllModuleWindows(); + virtual void syncAllBibles(const QString& key); + virtual void syncAllCommentaries(const QString& key); + virtual void syncAllLexicons(const QString& key); + virtual void syncAllVerseBasedModules(const QString& key); + virtual void openWindow(const QString& moduleName, const QString& key); + virtual void openDefaultBible(const QString& key); + virtual QString getCurrentReference(); + virtual QStringList searchInModule(const QString& module, const QString& searchText); + virtual QStringList searchInOpenModules(const QString& searchText); + virtual QStringList searchInDefaultBible(const QString& searchText); + virtual QStringList getModulesOfType(const QString& type); + virtual void reloadModules(); +}; + +#endif diff --git a/bibletime/bibletime_dcop.cpp b/bibletime/bibletime_dcop.cpp new file mode 100644 index 0000000..69113d4 --- /dev/null +++ b/bibletime/bibletime_dcop.cpp @@ -0,0 +1,220 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "bibletime.h" + +//frontend includes +#include "frontend/cmdiarea.h" +#include "frontend/cbtconfig.h" +#include "frontend/searchdialog/csearchdialog.h" + +//Sword includes +#include <versekey.h> +#include <listkey.h> + +//helper function +void BibleTime::syncAllModulesByType(const CSwordModuleInfo::ModuleType type, const QString& key) { + qDebug("Syncing modules by type to key %s", key.latin1()); + + QPtrList<QWidget> windows = m_mdi->usableWindowList(); + for (QWidget* w = windows.first(); w; w = windows.next()) { + CDisplayWindow* d = dynamic_cast<CDisplayWindow*>(w); + Q_ASSERT(d); + + if (d && d->modules().count() && d->modules().first()->type() == type) { + d->lookup(key); + } + } +} + +void BibleTime::closeAllModuleWindows() { + qDebug("DCOP: close all windows now..."); + + m_mdi->deleteAll(); +} + +void BibleTime::syncAllBibles(const QString& key) { + qDebug("DCOP: syncing all bibles ..."); + syncAllModulesByType(CSwordModuleInfo::Bible, key); +} + +void BibleTime::syncAllCommentaries(const QString& key) { + qDebug("DCOP: syncing all commentaries ..."); + syncAllModulesByType(CSwordModuleInfo::Commentary, key); +} + +void BibleTime::syncAllLexicons(const QString& key) { + qDebug("DCOP: syncing all lexicons ..."); + syncAllModulesByType(CSwordModuleInfo::Lexicon, key); +} + +void BibleTime::syncAllVerseBasedModules(const QString& key) { + qDebug("DCOP: syncing all verse based modules ..."); + syncAllModulesByType(CSwordModuleInfo::Bible, key); + syncAllModulesByType(CSwordModuleInfo::Commentary, key); +} + +void BibleTime::openWindow(const QString& moduleName, const QString& key) { + qDebug("DCOP: open window for module %s and key %s...", moduleName.latin1(), key.latin1()); + + CSwordModuleInfo* module = CPointers::backend()->findModuleByName(moduleName); + Q_ASSERT(module); + if (module) { + createReadDisplayWindow(module, key); + } +} + +void BibleTime::openDefaultBible(const QString& key) { + qDebug("DCOP: open default bible ..."); + CSwordModuleInfo* mod = CBTConfig::get + (CBTConfig::standardBible); + if (mod) { + openWindow(mod->name(), key); + } +} + +QStringList BibleTime::searchInModule(const QString& moduleName, const QString& searchText) { + qDebug("DCOP: searchInModule %s ...", moduleName.latin1()); + QStringList ret; + CSwordModuleInfo* mod = CPointers::backend()->findModuleByName(moduleName); + + //TODO: Check this + Q_ASSERT(mod); + if (mod) { + //mod->search(searchText, CSwordModuleSearch::multipleWords, sword::ListKey()); + sword::ListKey scope; + mod->searchIndexed( searchText, scope ); + + sword::ListKey result = mod->searchResult(); + const QString lead = QString("[%1] ").arg(moduleName); + ; + for ( int i = 0; i < result.Count(); ++i ) { + sword::SWKey* key = result.getElement(i); + Q_ASSERT(key); + + + if (mod->type() == CSwordModuleInfo::Bible || mod->type() == CSwordModuleInfo::Commentary) { + sword::VerseKey vk(key->getText()); + ret << lead + QString::fromUtf8( vk.getOSISRef() ); + } + else { + ret << lead + QString::fromUtf8( key->getText() ); + } + } + } + + return ret; + +} + +QStringList BibleTime::searchInOpenModules(const QString& searchText) { + qDebug("DCOP: search in open modules ..."); + QStringList ret; + + QWidgetList windows = m_mdi->windowList(); + for ( int i = 0; i < static_cast<int>(windows.count()); ++i ) { + CDisplayWindow* w = dynamic_cast<CDisplayWindow*>(windows.at(i)); + if (w) { + ListCSwordModuleInfo windowModules = w->modules(); + + ListCSwordModuleInfo::iterator end_it = windowModules.end(); + for (ListCSwordModuleInfo::iterator it(windowModules.begin()); it != end_it; ++it) { + ret += searchInModule((*it)->name(), searchText); + }; + }; + }; + + return ret; +} + +QStringList BibleTime::searchInDefaultBible(const QString& searchText) { + CSwordModuleInfo* bible = CBTConfig::get + (CBTConfig::standardBible); + return searchInModule(bible->name(), searchText); +} + +QString BibleTime::getCurrentReference() { + qDebug("BibleTime::getCurrentReference"); + QString ret = QString::null; + + CDisplayWindow* w = dynamic_cast<CDisplayWindow*>(m_mdi->activeWindow()); + Q_ASSERT(w); + + if (w) { + QString modType; + Q_ASSERT(w->modules().first()); + switch (w->modules().first()->type()) { + case CSwordModuleInfo::Bible: + modType = "BIBLE"; + break; + case CSwordModuleInfo::Commentary: + modType = "COMMENTARY"; + break; + case CSwordModuleInfo::GenericBook: + modType = "BOOK"; + break; + case CSwordModuleInfo::Lexicon: + modType = "LEXICON"; + break; + default: + modType = "UNSUPPORTED"; + break; + } + + ret.append("[").append(w->modules().first()->name()).append("] "); + ret.append("[").append(modType).append("] "); + + CSwordVerseKey* vk = dynamic_cast<CSwordVerseKey*>( w->key() ); + if (vk) { + ret.append( vk->getOSISRef() ); + } + else { + ret.append( w->key()->key() ); + } + } + + return ret; +} + +QStringList BibleTime::getModulesOfType(const QString& type) { + QStringList ret; + + CSwordModuleInfo::ModuleType modType = CSwordModuleInfo::Unknown; + if (type == "BIBLES") { + modType = CSwordModuleInfo::Bible; + } + else if (type == "COMMENTARIES") { + modType = CSwordModuleInfo::Commentary; + } + else if (type == "LEXICONS") { + modType = CSwordModuleInfo::Lexicon; + + } + else if (type == "BOOKS") { + modType = CSwordModuleInfo::GenericBook; + } + + ListCSwordModuleInfo modList = CPointers::backend()->moduleList(); + for (ListCSwordModuleInfo::iterator it( modList.begin() ); it != modList.end(); ++it) { + if ((*it)->type() == modType) { + ret.append( (*it)->name() ); + } + } + + return ret; +} + +void BibleTime::reloadModules() { + //m_backend->reloadModules(); + slotSwordSetupChanged(); +} + diff --git a/bibletime/bibletime_init.cpp b/bibletime/bibletime_init.cpp new file mode 100644 index 0000000..fb704bf --- /dev/null +++ b/bibletime/bibletime_init.cpp @@ -0,0 +1,609 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "bibletime.h" + +#include "backend/btstringmgr.h" +#include "backend/cswordbackend.h" + +#include "frontend/mainindex/cmainindex.h" +#include "frontend/cprofilemgr.h" +#include "frontend/cprofile.h" +#include "frontend/cmdiarea.h" +#include "frontend/kstartuplogo.h" +#include "frontend/cswordsetupdialog.h" +#include "frontend/cprinter.h" +#include "frontend/cmanageindiceswidget.h" + +#include "backend/clanguagemgr.h" + + +#include "config.h" +#include "frontend/cbtconfig.h" +#include "frontend/cinfodisplay.h" + +#include "util/cpointers.h" +#include "util/cresmgr.h" + +//system includes +#include <stdlib.h> + +//QT includes +#include <qpopupmenu.h> +#include <qsplitter.h> +#include <qguardedptr.h> +#include <qlistview.h> +#include <qlayout.h> +#include <qlabel.h> +#include <qvbox.h> + +//KDE includes +#include <kaboutdata.h> +#include <kaccel.h> +#include <kaction.h> +#include <kapplication.h> +#include <kconfigbase.h> +#include <kdeversion.h> +#include <kglobal.h> +#include <khelpmenu.h> +#include <kiconloader.h> +#include <kmenubar.h> +#include <kstddirs.h> +#include <kstdaction.h> +#include <ktoolbar.h> +#include <klocale.h> +#include <kpopupmenu.h> +#include <kdeversion.h> + +//Sword includes +#include <swlog.h> + +using namespace InfoDisplay; +using namespace Profile; + +/**Initializes the view of this widget*/ +void BibleTime::initView() { + KStartupLogo::setStatusMessage(i18n("Creating BibleTime's GUI") + QString("...")); + + m_mainSplitter = new QSplitter(this, "mainsplitter"); + m_mainSplitter->setChildrenCollapsible(false); + setCentralWidget(m_mainSplitter); + + m_leftPaneSplitter = new QSplitter(Qt::Vertical, m_mainSplitter); + m_leftPaneSplitter->setChildrenCollapsible(false); + + QVBox* vBox = new QVBox(m_leftPaneSplitter); + vBox->setMinimumSize(100, 100); + + QLabel* bookshelfLabel = new QLabel( i18n("Bookshelf"), vBox ); + bookshelfLabel->setMargin(5); + + m_mainIndex = new CMainIndex(vBox); + + m_infoDisplay = new CInfoDisplay(m_leftPaneSplitter); + CPointers::setInfoDisplay(m_infoDisplay); + + m_mdi = new CMDIArea(m_mainSplitter, "mdiarea" ); + m_mdi->setMinimumSize(100, 100); + m_mdi->setFocusPolicy(ClickFocus); + + m_helpMenu = new KHelpMenu(this, KGlobal::instance()->aboutData(), true, actionCollection()); +} + +/** Initializes the action objects of the GUI */ +void BibleTime::initActions() { + KStartupLogo::setStatusMessage(i18n("Initializing menu- and toolbars") + QString("...")); + KAction* action = 0; + + action = KStdAction::quit(kapp, SLOT( quit() ), actionCollection()); + action->setToolTip( CResMgr::mainMenu::file::quit::tooltip ); + + #if KDE_VERSION_MINOR < 1 + + action->plugAccel( accel() ); + #endif + + action = new KAction(i18n("Search in &open work(s)"), + CResMgr::mainMenu::mainIndex::search::icon, + CResMgr::mainMenu::mainIndex::search::accel, + this, SLOT(slotSearchModules()), actionCollection(), + CResMgr::mainMenu::mainIndex::search::actionName + ); + action->setToolTip( CResMgr::mainMenu::mainIndex::search::tooltip ); + + #if KDE_VERSION_MINOR < 1 + + action->plugAccel( accel() ); + #endif + + action = new KAction(i18n("Search in standard &Bible"), + CResMgr::mainMenu::mainIndex::searchdefaultbible::icon, + CResMgr::mainMenu::mainIndex::searchdefaultbible::accel, + this, SLOT(slotSearchDefaultBible()), actionCollection(), + CResMgr::mainMenu::mainIndex::searchdefaultbible::actionName + ); + action->setToolTip( CResMgr::mainMenu::mainIndex::searchdefaultbible::tooltip ); + + #if KDE_VERSION_MINOR < 1 + + action->plugAccel( accel() ); + #endif + + m_viewToolbar_action = KStdAction::showToolbar(this, SLOT( slotToggleToolbar() ), actionCollection()); + m_viewToolbar_action->setToolTip( CResMgr::mainMenu::view::showToolBar::tooltip ); + + #if KDE_VERSION_MINOR < 1 + + m_viewToolbar_action->plugAccel( accel() ); + #endif + + + m_viewMainIndex_action = new KToggleAction(i18n("&Show bookshelf"), + CResMgr::mainMenu::view::showMainIndex::icon, + CResMgr::mainMenu::view::showMainIndex::accel, + this, SLOT(slotToggleMainIndex()), actionCollection(), + CResMgr::mainMenu::view::showMainIndex::actionName); + m_viewMainIndex_action->setToolTip( CResMgr::mainMenu::view::showMainIndex::tooltip ); + + #if KDE_VERSION_MINOR < 1 + + m_viewMainIndex_action->plugAccel( accel() ); + #endif + + m_viewInfoDisplay_action = new KToggleAction(i18n("Show &mag"), + CResMgr::mainMenu::view::showInfoDisplay::icon, + CResMgr::mainMenu::view::showInfoDisplay::accel, + this, SLOT(slotToggleInfoDisplay()), actionCollection(), + CResMgr::mainMenu::view::showInfoDisplay::actionName); + m_viewMainIndex_action->setToolTip( CResMgr::mainMenu::view::showInfoDisplay::tooltip ); + + #if KDE_VERSION_MINOR < 1 + + m_viewInfoDisplay_action->plugAccel( accel() ); + #endif + + action = KStdAction::preferences(this, SLOT( slotSettingsOptions() ), actionCollection()); + action->setToolTip( CResMgr::mainMenu::settings::optionsDialog::tooltip ); + + #if KDE_VERSION_MINOR < 1 + + action->plugAccel( accel() ); + #endif + + action = new KAction(i18n("Bookshelf &Manager"), + CResMgr::mainMenu::settings::swordSetupDialog::icon, + CResMgr::mainMenu::settings::swordSetupDialog::accel, + this, SLOT( slotSwordSetupDialog() ), actionCollection(), + CResMgr::mainMenu::settings::swordSetupDialog::actionName + ); + action->setToolTip( CResMgr::mainMenu::settings::swordSetupDialog::tooltip ); + #if KDE_VERSION_MINOR < 1 + + action->plugAccel( accel() ); + #endif + + //delete help action if KDE created it + if ( actionCollection()->action( KStdAction::stdName(KStdAction::ConfigureToolbars) )) { + actionCollection()->remove + (actionCollection()->action( + KStdAction::stdName(KStdAction::ConfigureToolbars)) + ); + } + action = KStdAction::configureToolbars(this, SLOT( slotSettingsToolbar() ), actionCollection()); + action->setToolTip( CResMgr::mainMenu::settings::editToolBar::tooltip ); + #if KDE_VERSION_MINOR < 1 + + action->plugAccel( accel() ); + #endif + + m_windowArrangementMode_action = new KActionMenu(i18n("&Arrangement mode"), + CResMgr::mainMenu::window::arrangementMode::icon, + actionCollection(), + CResMgr::mainMenu::window::arrangementMode::actionName); + m_windowArrangementMode_action->setDelayed( false ); + + m_windowManualMode_action = new KToggleAction(i18n("&Manual mode"), + CResMgr::mainMenu::window::arrangementMode::manual::icon, + CResMgr::mainMenu::window::arrangementMode::manual::accel, + this, SLOT(slotManualArrangementMode()), actionCollection(), + CResMgr::mainMenu::window::arrangementMode::manual::actionName + ); + m_windowManualMode_action->setToolTip( + CResMgr::mainMenu::window::arrangementMode::manual::tooltip + ); + #if KDE_VERSION_MINOR < 1 + + m_windowManualMode_action->plugAccel( accel() ); + #endif + + m_windowArrangementMode_action->insert( m_windowManualMode_action ); + + + m_windowAutoTileVertical_action = new KToggleAction(i18n("Auto-tile &vertically"), + CResMgr::mainMenu::window::arrangementMode::autoTileVertical::icon, + CResMgr::mainMenu::window::arrangementMode::autoTileVertical::accel, + this, SLOT(slotAutoTileVertical()), actionCollection(), + CResMgr::mainMenu::window::arrangementMode::autoTileVertical::actionName + ); + m_windowAutoTileVertical_action->setToolTip( + CResMgr::mainMenu::window::arrangementMode::autoTileVertical::tooltip + ); + #if KDE_VERSION_MINOR < 1 + + m_windowAutoTileVertical_action->plugAccel( accel() ); + #endif + + m_windowArrangementMode_action->insert( m_windowAutoTileVertical_action ); + + + m_windowAutoTileHorizontal_action = new KToggleAction(i18n("Auto-tile &horizontally"), + CResMgr::mainMenu::window::arrangementMode::autoTileHorizontal::icon, + CResMgr::mainMenu::window::arrangementMode::autoTileHorizontal::accel, + this, SLOT(slotAutoTileHorizontal()), actionCollection(), + CResMgr::mainMenu::window::arrangementMode::autoTileHorizontal::actionName + ); + m_windowAutoTileHorizontal_action->setToolTip( + CResMgr::mainMenu::window::arrangementMode::autoTileHorizontal::tooltip + ); + #if KDE_VERSION_MINOR < 1 + + m_windowAutoTileHorizontal_action->plugAccel( accel() ); + #endif + + m_windowArrangementMode_action->insert( m_windowAutoTileHorizontal_action ); + + + m_windowAutoCascade_action = new KToggleAction(i18n("Auto-&cascade"), + CResMgr::mainMenu::window::arrangementMode::autoCascade::icon, + CResMgr::mainMenu::window::arrangementMode::autoCascade::accel, + this, SLOT(slotAutoCascade()), actionCollection(), + CResMgr::mainMenu::window::arrangementMode::autoCascade::actionName + ); + m_windowAutoCascade_action->setToolTip( + CResMgr::mainMenu::window::arrangementMode::autoCascade::tooltip + ); + #if KDE_VERSION_MINOR < 1 + // qWarning("Plug accel"); + m_windowAutoCascade_action->plugAccel( accel() ); + #endif + + m_windowArrangementMode_action->insert( m_windowAutoCascade_action ); + + m_windowCascade_action = new KAction(i18n("&Cascade"), + CResMgr::mainMenu::window::cascade::icon, + CResMgr::mainMenu::window::cascade::accel, + this, SLOT(slotCascade()), actionCollection(), + CResMgr::mainMenu::window::cascade::actionName + ); + m_windowCascade_action->setToolTip( CResMgr::mainMenu::window::cascade::tooltip ); + + #if KDE_VERSION_MINOR < 1 + + m_windowCascade_action->plugAccel( accel() ); + #endif + + + m_windowTileVertical_action = new KAction(i18n("Tile &vertically"), + CResMgr::mainMenu::window::tileVertical::icon, + CResMgr::mainMenu::window::tileVertical::accel, + this, SLOT(slotTileVertical()), actionCollection(), + CResMgr::mainMenu::window::tileVertical::actionName + ); + m_windowTileVertical_action->setToolTip( CResMgr::mainMenu::window::tileVertical::tooltip ); + #if KDE_VERSION_MINOR < 1 + + m_windowTileVertical_action->plugAccel( accel() ); + #endif + + m_windowTileHorizontal_action = new KAction(i18n("Tile &horizontally"), + CResMgr::mainMenu::window::tileHorizontal::icon, + CResMgr::mainMenu::window::tileHorizontal::accel, + this, SLOT(slotTileHorizontal()), actionCollection(), + CResMgr::mainMenu::window::tileHorizontal::actionName + ); + m_windowTileHorizontal_action->setToolTip( CResMgr::mainMenu::window::tileHorizontal::tooltip ); + + #if KDE_VERSION_MINOR < 1 + + m_windowTileHorizontal_action->plugAccel( accel() ); + #endif + + + m_windowCloseAll_action = new KAction(i18n("Cl&ose all"), + CResMgr::mainMenu::window::closeAll::icon, + CResMgr::mainMenu::window::closeAll::accel, + m_mdi, SLOT(deleteAll()), actionCollection(), + CResMgr::mainMenu::window::closeAll::actionName + ); + m_windowCloseAll_action->setToolTip( CResMgr::mainMenu::window::closeAll::tooltip ); + #if KDE_VERSION_MINOR < 1 + + m_windowCloseAll_action->plugAccel( accel() ); + #endif + + + m_windowSaveProfile_action = new KActionMenu(i18n("&Save session"), + CResMgr::mainMenu::window::saveProfile::icon, + actionCollection(), + CResMgr::mainMenu::window::saveProfile::actionName + ); + m_windowSaveProfile_action->setToolTip( CResMgr::mainMenu::window::saveProfile::tooltip ); + m_windowSaveProfile_action->setDelayed( false ); + #if KDE_VERSION_MINOR < 1 + + m_windowSaveProfile_action->plugAccel( accel() ); + #endif + + + m_windowSaveToNewProfile_action = new KAction(i18n("Save as &new session"), + CResMgr::mainMenu::window::saveToNewProfile::icon, + CResMgr::mainMenu::window::saveToNewProfile::accel, + this, SLOT(saveToNewProfile()), actionCollection(), + CResMgr::mainMenu::window::saveToNewProfile::actionName + ); + m_windowSaveToNewProfile_action->setToolTip( CResMgr::mainMenu::window::saveToNewProfile::tooltip ); + #if KDE_VERSION_MINOR < 1 + + m_windowSaveToNewProfile_action->plugAccel( accel() ); + #endif + + + m_windowLoadProfile_action = new KActionMenu(i18n("&Load session"), + CResMgr::mainMenu::window::loadProfile::icon, + actionCollection(), + CResMgr::mainMenu::window::loadProfile::actionName + ); + m_windowLoadProfile_action->setToolTip( CResMgr::mainMenu::window::loadProfile::tooltip ); + m_windowLoadProfile_action->setDelayed( false ); + #if KDE_VERSION_MINOR < 1 + + m_windowLoadProfile_action->plugAccel( accel() ); + #endif + + m_windowDeleteProfile_action = new KActionMenu(i18n("&Delete session"), + CResMgr::mainMenu::window::deleteProfile::icon, + actionCollection(), + CResMgr::mainMenu::window::deleteProfile::actionName + ); + m_windowLoadProfile_action->setToolTip( CResMgr::mainMenu::window::deleteProfile::tooltip ); + m_windowLoadProfile_action->setDelayed( false ); + #if KDE_VERSION_MINOR < 1 + + m_windowDeleteProfile_action->plugAccel( accel() ); + #endif + + m_windowFullscreen_action = new KToggleAction(i18n("&Fullscreen mode"), + CResMgr::mainMenu::window::showFullscreen::icon, + CResMgr::mainMenu::window::showFullscreen::accel, + this, SLOT(toggleFullscreen()), actionCollection(), + CResMgr::mainMenu::window::showFullscreen::actionName + ); + m_windowFullscreen_action->setToolTip( CResMgr::mainMenu::window::showFullscreen::tooltip ); + m_windowFullscreen_action->setShortcutConfigurable(true); + #if KDE_VERSION_MINOR < 1 + + m_windowFullscreen_action->plugAccel( accel() ); + #endif + + //connect the profile popups to the right slots + KPopupMenu* loadPopup = m_windowLoadProfile_action->popupMenu(); + KPopupMenu* savePopup = m_windowSaveProfile_action->popupMenu(); + KPopupMenu* deletePopup = m_windowDeleteProfile_action->popupMenu(); + + connect(loadPopup, SIGNAL(activated(int)), SLOT(loadProfile(int))); + connect(savePopup, SIGNAL(activated(int)), SLOT(saveProfile(int))); + connect(deletePopup, SIGNAL(activated(int)), SLOT(deleteProfile(int))); + + refreshProfileMenus(); + + if ( actionCollection()->action( KStdAction::stdName(KStdAction::HelpContents) )) { //delete help action if KDE created it + actionCollection()->remove + (actionCollection()->action(KStdAction::stdName(KStdAction::HelpContents)) ); + } + + action = new KAction(i18n("&Handbook"), + CResMgr::mainMenu::help::handbook::icon, + CResMgr::mainMenu::help::handbook::accel, + this, SLOT(openOnlineHelp_Handbook()), actionCollection(), + CResMgr::mainMenu::help::handbook::actionName + ); + action->setToolTip( CResMgr::mainMenu::help::handbook::tooltip ); + + #if KDE_VERSION_MINOR < 1 + + action->plugAccel( accel() ); + #endif + + action = new KAction(i18n("&Bible Study Howto"), + CResMgr::mainMenu::help::bibleStudyHowTo::icon, + CResMgr::mainMenu::help::bibleStudyHowTo::accel, + this, SLOT(openOnlineHelp_Howto()), actionCollection(), + CResMgr::mainMenu::help::bibleStudyHowTo::actionName + ); + action->setToolTip( CResMgr::mainMenu::help::bibleStudyHowTo::tooltip ); + + #if KDE_VERSION_MINOR < 1 + + action->plugAccel( accel() ); + #endif + + if ( actionCollection()->action( KStdAction::stdName( KStdAction::WhatsThis ) ) ) { //delete "What's this" action if KDE created it already + KAction* action = actionCollection()->action(KStdAction::stdName( KStdAction::WhatsThis )); + actionCollection()->remove + ( action ); + } + + + if ( actionCollection()->action( KStdAction::stdName( KStdAction::ReportBug ) ) ) { //delete Report Bug action if KDE created it + actionCollection()->remove + (actionCollection()->action(KStdAction::stdName( KStdAction::ReportBug ))); + } + action = KStdAction::reportBug(m_helpMenu, SLOT(reportBug()), actionCollection()); + action->setToolTip(CResMgr::mainMenu::help::bugreport::tooltip); + #if KDE_VERSION_MINOR < 1 + + action->plugAccel( accel() ); + #endif + + action = new KAction(i18n("&Daily tip"), + CResMgr::mainMenu::help::dailyTip::icon, + CResMgr::mainMenu::help::dailyTip::accel, + this, SLOT(slotHelpTipOfDay()), actionCollection(), + CResMgr::mainMenu::help::dailyTip::actionName + ); + action->setToolTip(CResMgr::mainMenu::help::dailyTip::tooltip); + #if KDE_VERSION_MINOR < 1 + + action->plugAccel( accel() ); + #endif + + if ( actionCollection()->action( KStdAction::stdName( KStdAction::AboutApp ) ) ) { //delete About KDE action if KDE created it + actionCollection()->remove + (actionCollection()->action(KStdAction::stdName( KStdAction::AboutApp ))); + } + action = KStdAction::aboutApp(m_helpMenu, SLOT(aboutApplication()), actionCollection()); + action->setToolTip(CResMgr::mainMenu::help::aboutBibleTime::tooltip); + + //delete About KDE action if KDE created it already + if ( actionCollection()->action( KStdAction::stdName( KStdAction::AboutKDE ) ) ) { //delete About KDE action if KDE created it + actionCollection()->remove + (actionCollection()->action(KStdAction::stdName( KStdAction::AboutKDE ))); + } + action = KStdAction::aboutKDE(m_helpMenu, SLOT(aboutKDE()), actionCollection()); + action->setToolTip(CResMgr::mainMenu::help::aboutKDE::tooltip); +} + +/** Initializes the menubar of BibleTime. */ +void BibleTime::initMenubar() { + //get the window and edit menus using the actions and their properties + m_windowMenu = dynamic_cast<QPopupMenu*>(m_windowCloseAll_action->container(0)); +} + +/** Initializes the SIGNAL / SLOT connections */ +void BibleTime::initConnections() { + connect(m_mdi, SIGNAL(sigSetToplevelCaption(const QString&)), + this, SLOT(setPlainCaption(const QString&))); + connect(m_mdi, SIGNAL(createReadDisplayWindow(ListCSwordModuleInfo, const QString&)), + this, SLOT(createReadDisplayWindow(ListCSwordModuleInfo, const QString&))); + + Q_ASSERT(m_windowMenu); + if (m_windowMenu) { + connect(m_windowMenu, SIGNAL(aboutToShow()), + this, SLOT(slotWindowMenuAboutToShow())); + } + else { + qWarning("Main window: can't find window menu"); + } + + + connect( + m_mainIndex, SIGNAL(createReadDisplayWindow(ListCSwordModuleInfo, const QString&)), + this, SLOT(createReadDisplayWindow(ListCSwordModuleInfo,const QString&)) + ); + connect( + m_mainIndex, SIGNAL(createWriteDisplayWindow(CSwordModuleInfo*, const QString&, const CDisplayWindow::WriteWindowType&)), + this, SLOT(createWriteDisplayWindow(CSwordModuleInfo*,const QString&, const CDisplayWindow::WriteWindowType&)) + ); + connect(m_mainIndex, SIGNAL(signalSwordSetupChanged()), this, SLOT(slotSwordSetupChanged())); +} + +/** Initializes the backend */ +void BibleTime::initBackends() { + KStartupLogo::setStatusMessage(i18n("Initializing Sword") + QString("...")); + + StringMgr::setSystemStringMgr( new BTStringMgr() ); + SWLog::getSystemLog()->setLogLevel(1); + + m_backend = new CSwordBackend(); + m_backend->booknameLanguage( CBTConfig::get + (CBTConfig::language) ); + + CPointers::setBackend(m_backend); + const CSwordBackend::LoadError errorCode = m_backend->initModules(); + + m_moduleList = 0; + if ( errorCode == CSwordBackend::NoError ) { //no error + m_moduleList = &(m_backend->moduleList()); + } + else { + m_moduleList = 0; + //show error message that initBackend failed + switch (errorCode) { + case CSwordBackend::NoSwordConfig: //mods.d or mods.conf missing + { + KStartupLogo::hideSplash(); + BookshelfManager::CSwordSetupDialog dlg; + dlg.showPart( BookshelfManager::CSwordSetupDialog::Sword ); + dlg.exec(); + break; + } + + case CSwordBackend::NoModules: //no modules installed, but config exists + { + KStartupLogo::hideSplash(); + BookshelfManager::CSwordSetupDialog dlg; + dlg.showPart( BookshelfManager::CSwordSetupDialog::Install ); + dlg.exec(); + break; + } + + default: //unknown error + { + KStartupLogo::hideSplash(); + BookshelfManager::CSwordSetupDialog dlg; + dlg.showPart( BookshelfManager::CSwordSetupDialog::Sword ); + dlg.exec(); + break; + } + } + } + + KStartupLogo::setStatusMessage(i18n("Checking indices") + QString("...")); + //This function will + // - delete all orphaned indexes (no module present) if autoDeleteOrphanedIndices is true + // - delete all indices of modules where hasIndex() returns false + BookshelfManager::CManageIndicesWidget::deleteOrphanedIndices(); + +} + +/** Apply the settings given by the profile p*/ +void BibleTime::applyProfileSettings( CProfile* p ) { + Q_ASSERT(p); + if (!p) return; + + if (m_initialized) { //on startup KDE sets the main geometry + //see polish(), where m_initialized is set and the KDE methods are called for window resize + + //first Main Window state + m_windowFullscreen_action->setChecked( p->fullscreen() ); //set the fullscreen button state + toggleFullscreen(); //either showFullscreen or showNormal + if (p->maximized()) KMainWindow::showMaximized(); //if maximized, then also call showMaximized + + //Then Main Window geometry + KMainWindow::resize( p->geometry().size() ); //Don't use KMainWindowInterface::resize + KMainWindow::move( p->geometry().topLeft() );//Don't use KMainWindowInterface::move +} +} + +/** Stores the settings of the mainwindow in the profile p */ +void BibleTime::storeProfileSettings( CProfile* p ) { + Q_ASSERT(p && m_windowFullscreen_action); + if (!p || !m_windowFullscreen_action) return; + + p->setFullscreen( m_windowFullscreen_action->isChecked() ); + p->setMaximized( this->KMainWindow::isMaximized() ); + + QRect geometry; + geometry.setTopLeft(pos()); + geometry.setSize(size()); + p->setGeometry(geometry); +} diff --git a/bibletime/bibletime_slots.cpp b/bibletime/bibletime_slots.cpp new file mode 100644 index 0000000..8d9ad89 --- /dev/null +++ b/bibletime/bibletime_slots.cpp @@ -0,0 +1,570 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//own includes +#include "bibletime.h" +#include "config.h" + +#include "backend/cswordversekey.h" + +#include "util/ctoolclass.h" + +#include "frontend/cmdiarea.h" +#include "frontend/cprofilemgr.h" +#include "frontend/cprofile.h" +#include "frontend/cprofilewindow.h" +#include "frontend/coptionsdialog.h" +#include "frontend/cswordsetupdialog.h" +#include "frontend/cbtconfig.h" +#include "frontend/cinputdialog.h" +#include "frontend/cinfodisplay.h" +#include "frontend/mainindex/cmainindex.h" +#include "frontend/mainindex/cindexitem.h" +#include "frontend/displaywindow/cdisplaywindow.h" +#include "frontend/displaywindow/cbiblereadwindow.h" +#include "frontend/searchdialog/csearchdialog.h" + +#include <errno.h> + +//QT includes +#include <qprogressdialog.h> +#include <qlistview.h> +#include <qvaluelist.h> +#include <qclipboard.h> +#include <qinputdialog.h> + +//KDE includes +#include <kaction.h> +#include <kapplication.h> +#include <kaboutkde.h> +#include <kaboutdialog.h> +#include <kbugreport.h> +#include <kaboutapplication.h> +#include <kstandarddirs.h> +#include <kmenubar.h> +#include <kaboutdata.h> +#include <kglobal.h> +#include <klocale.h> +#include <kedittoolbar.h> +#include <kpopupmenu.h> +#include <khelpmenu.h> +#include <ktip.h> + +//Sword includes +#include <versekey.h> + +using namespace Profile; + +/* An action which stores a user defined pointer to a widget. + * @author Joachim Ansorg + */ +class KUserDataAction : public KToggleAction { +public: + KUserDataAction( QString caption, const KShortcut& shortcut, const QObject* receiver, const char* slot, KActionCollection* actionCollection) +: KToggleAction(caption, shortcut, receiver, slot, actionCollection), m_userData(0) { /* no impl */ + }; + + void setUserData(QWidget* const data) { + m_userData = data; + }; + QWidget* const getUserData() const { + return m_userData; + }; + +private: + QWidget* m_userData; +}; + +/** Opens the optionsdialog of BibleTime. */ +void BibleTime::slotSettingsOptions() { + COptionsDialog *dlg = new COptionsDialog(this, "COptionsDialog", actionCollection()); + connect(dlg, SIGNAL(signalSettingsChanged()), SLOT(slotSettingsChanged()) ); + + dlg->exec(); + dlg->delayedDestruct(); +} + +/** Is called when settings in the optionsdialog were changed (ok or apply) */ +void BibleTime::slotSettingsChanged() { + const QString language = CBTConfig::get + (CBTConfig::language); + m_backend->booknameLanguage(language); + + QListViewItemIterator it( m_mainIndex ); + CItemBase* item = 0; + for ( ; it.current(); ++it ) { + if ( (item = dynamic_cast<CItemBase*>(it.current())) ) { + item->update(); + } + } + + refreshDisplayWindows(); + refreshProfileMenus(); +} + +/** Opens the sword setup dialog of BibleTime. */ +void BibleTime::slotSwordSetupDialog() { + BookshelfManager::CSwordSetupDialog *dlg = new BookshelfManager::CSwordSetupDialog(this, "CSwordSetupDialog"); + connect(dlg, SIGNAL(signalSwordSetupChanged()), SLOT(slotSwordSetupChanged()) ); + + dlg->exec(); + dlg->delayedDestruct(); +} + +/** Is called when settings in the sword setup dialog were changed (ok or apply) */ +void BibleTime::slotSwordSetupChanged() { + /* + Refresh everything here what might have changed + these are the mainindex, the searchdialog, the displaywindows + But at first we have to reset the Sword backend to reload the modules + */ + m_mainIndex->saveBookmarks(); + + CPointers::deleteBackend(); + m_backend = new CSwordBackend(); + CPointers::setBackend(m_backend); + m_backend->initModules(); + + m_mainIndex->reloadSword(); + + // refresh display windows + refreshDisplayWindows(); +} + +/** Shows the daily tip */ +void BibleTime::slotHelpTipOfDay() { + KTipDialog::setShowOnStart( CBTConfig::get + (CBTConfig::tips) ); + KTipDialog::showTip(this, "bibletime/tips", true); +} + +/** Is called just before the window menu is ahown. */ +void BibleTime::slotWindowMenuAboutToShow() { + Q_ASSERT(m_windowMenu); + if (!m_windowMenu) { + return; + } + + if ( m_mdi->windowList().isEmpty() ) { + m_windowCascade_action->setEnabled(false); + m_windowTileVertical_action->setEnabled(false); + m_windowTileHorizontal_action->setEnabled(false); + m_windowCloseAll_action->setEnabled(false); + } + else if (m_mdi->windowList().count() == 1) { + m_windowTileVertical_action->setEnabled( false ); + m_windowTileHorizontal_action->setEnabled( false ); + m_windowCascade_action->setEnabled( false ); + m_windowCloseAll_action->setEnabled( true ); + // m_windowMenu->insertSeparator(); + } + else { + slotUpdateWindowArrangementActions(0); //update the window tile/cascade states + m_windowCloseAll_action->setEnabled( true ); + } + +#if QT_VERSION >= 0x030200 + QPtrList<KAction>::iterator end = m_windowOpenWindowsList.end(); + for (QPtrList<KAction>::iterator it = m_windowOpenWindowsList.begin(); it != end; ++it ) { + (*it)->unplugAll(); + } +#else + QPtrListIterator<KAction> it(m_windowOpenWindowsList); + while (it.current() != 0){ + it.current()->unplugAll(); + ++it; + } +#endif + m_windowOpenWindowsList.setAutoDelete(true); + m_windowOpenWindowsList.clear(); + + if (!m_windowActionCollection) { + m_windowActionCollection = new KActionCollection(this); + } + + QWidgetList windows = m_mdi->windowList(); + const int count = windows.count(); + for ( int i = 0; i < count; ++i ) { + QWidget* w = windows.at(i); + Q_ASSERT(w); + + KUserDataAction* action = new KUserDataAction(w->caption(), KShortcut(), this, SLOT(slotWindowMenuActivated()), m_windowActionCollection); + Q_ASSERT(action); + action->setUserData(w); + + m_windowOpenWindowsList.append(action); + action->setChecked( w == m_mdi->activeWindow() ); + action->plug(m_windowMenu); + } +} + +/** This slot is connected with the windowAutoTile_action object */ +void BibleTime::slotUpdateWindowArrangementActions( KAction* clickedAction ) { + /* If a toggle action was clicked we see if it checked ot unchecked and + * enable/disable the simple cascade and tile options accordingly + */ + m_windowTileVertical_action->setEnabled( m_windowManualMode_action->isChecked() ); + m_windowTileHorizontal_action->setEnabled( m_windowManualMode_action->isChecked() ); + m_windowCascade_action->setEnabled( m_windowManualMode_action->isChecked() ); + + if (clickedAction) { + m_windowManualMode_action->setEnabled( + m_windowManualMode_action != clickedAction + && m_windowTileHorizontal_action != clickedAction + && m_windowTileVertical_action != clickedAction + && m_windowCascade_action != clickedAction + ); + m_windowAutoTileVertical_action->setEnabled( m_windowAutoTileVertical_action != clickedAction ); + m_windowAutoTileHorizontal_action->setEnabled( m_windowAutoTileHorizontal_action != clickedAction ); + m_windowAutoCascade_action->setEnabled( m_windowAutoCascade_action != clickedAction ); + } + + if (clickedAction == m_windowManualMode_action) { + m_windowAutoTileVertical_action->setChecked(false); + m_windowAutoTileHorizontal_action->setChecked(false); + m_windowAutoCascade_action->setChecked(false); + + m_mdi->setGUIOption( CMDIArea::Nothing ); + } + else if (clickedAction == m_windowAutoTileVertical_action) { + m_windowManualMode_action->setChecked(false); + m_windowAutoTileHorizontal_action->setChecked(false); + m_windowAutoCascade_action->setChecked(false); + + m_mdi->setGUIOption( CMDIArea::autoTileVertical ); + } + else if (clickedAction == m_windowAutoTileHorizontal_action) { + m_windowManualMode_action->setChecked(false); + m_windowAutoTileVertical_action->setChecked(false); + m_windowAutoCascade_action->setChecked(false); + + m_mdi->setGUIOption( CMDIArea::autoTileHorizontal ); + } + else if (clickedAction == m_windowAutoCascade_action) { + m_windowManualMode_action->setChecked(false); + m_windowAutoTileHorizontal_action->setChecked(false); + m_windowAutoTileVertical_action->setChecked(false); + + m_mdi->setGUIOption( CMDIArea::autoCascade ); + } + else if (clickedAction == m_windowCascade_action) { + m_mdi->setGUIOption( CMDIArea::Nothing ); + m_mdi->myCascade(); + } + else if (clickedAction == m_windowTileVertical_action) { + m_mdi->setGUIOption( CMDIArea::Nothing ); + m_mdi->myTileVertical(); + } + else if (clickedAction == m_windowTileHorizontal_action) { + m_mdi->setGUIOption( CMDIArea::Nothing ); + m_mdi->myTileHorizontal(); + } +} + +void BibleTime::slotManualArrangementMode() { + slotUpdateWindowArrangementActions( m_windowManualMode_action ); +} + +/** This slot is connected with the windowAutoTile_action object */ +void BibleTime::slotAutoTileHorizontal() { + slotUpdateWindowArrangementActions( m_windowAutoTileHorizontal_action ); +} + +/** This slot is connected with the windowAutoTile_action object */ +void BibleTime::slotAutoTileVertical() { + slotUpdateWindowArrangementActions( m_windowAutoTileVertical_action ); +} + +void BibleTime::slotCascade() { + slotUpdateWindowArrangementActions( m_windowCascade_action ); +} + +void BibleTime::slotTileVertical() { + slotUpdateWindowArrangementActions( m_windowTileVertical_action ); +} + +void BibleTime::slotTileHorizontal() { + slotUpdateWindowArrangementActions( m_windowTileHorizontal_action ); +} + +/** This slot is connected with the windowAutoCascade_action object */ +void BibleTime::slotAutoCascade() { + slotUpdateWindowArrangementActions( m_windowAutoCascade_action ); +} + +void BibleTime::slotWindowMenuActivated() { + if (!m_windowMenu) { + return; + } + + const KUserDataAction* action = dynamic_cast<const KUserDataAction*>(sender()); + Q_ASSERT(action); + if (action) { + QWidget* const window = action->getUserData(); + Q_ASSERT(window); + if ( window ) { + window->setFocus(); + } + } +} + + +/** Shows/hides the toolbar */ +void BibleTime::slotToggleToolbar() { + Q_ASSERT(toolBar("mainToolBar")); + + if (m_viewToolbar_action->isChecked()) { + toolBar("mainToolBar")->show(); + } + else { + toolBar("mainToolBar")->hide(); + } +} + +/** Shows or hides the groupmanager. +*/ +void BibleTime::slotToggleMainIndex() { + //we use the parent widget because the main index is enclosed in a layout which adds the label at the top + if (m_viewMainIndex_action->isChecked()) { + m_mainIndex->parentWidget()->show(); + } + else { + m_mainIndex->parentWidget()->hide(); + } +} + +/** Shows or hides the groupmanager. */ +void BibleTime::slotToggleInfoDisplay() { + if (m_viewInfoDisplay_action->isChecked()) { + m_infoDisplay->show(); + } + else { + m_infoDisplay->hide(); + } +} + +/** Opens a toolbar editor */ +void BibleTime::slotSettingsToolbar() { + KEditToolbar dlg(actionCollection()); + if (dlg.exec()) { + createGUI(); + } +} + +void BibleTime::slotSearchModules() { + //get the modules of the open windows + ListCSwordModuleInfo modules; + + QWidgetList windows = m_mdi->windowList(); + for ( int i = 0; i < static_cast<int>(windows.count()); ++i ) { + if (CDisplayWindow* w = dynamic_cast<CDisplayWindow*>(windows.at(i))) { + ListCSwordModuleInfo windowModules = w->modules(); + + ListCSwordModuleInfo::iterator end_it = windowModules.end(); + for (ListCSwordModuleInfo::iterator it(windowModules.begin()); it != end_it; ++it) { + modules.append(*it); + }; + }; + }; + + Search::CSearchDialog::openDialog(modules, QString::null); +} + +/* Search default Bible slot + * Call CSearchDialog::openDialog with only the default bible module + */ +void BibleTime::slotSearchDefaultBible() { + ListCSwordModuleInfo module; + CSwordModuleInfo* bible = CBTConfig::get + (CBTConfig::standardBible); + if (bible) { + module.append(bible); + } + + Search::CSearchDialog::openDialog(module, QString::null); +} + +void BibleTime::openOnlineHelp_Handbook() { + kapp->invokeHelp("", "bibletime/handbook/"); +} + +void BibleTime::openOnlineHelp_Howto() { + kapp->invokeHelp("", "bibletime/howto/"); +} + +/** Saves the current settings into the currently activatred profile. */ +void BibleTime::saveProfile(int ID) { + m_mdi->setUpdatesEnabled(false); + + KPopupMenu* popup = m_windowSaveProfile_action->popupMenu(); + const QString profileName = popup->text(ID).remove("&"); + CProfile* p = m_profileMgr.profile( profileName ); + Q_ASSERT(p); + if ( p ) { + saveProfile(p); + } + + m_mdi->setUpdatesEnabled(true); +} + +void BibleTime::saveProfile(CProfile* profile) { + if (!profile) { + return; + } + + //save mainwindow settings + storeProfileSettings(profile); + + QWidgetList windows = m_mdi->windowList(); + QPtrList<CProfileWindow> profileWindows; + for (QWidget* w = windows.first(); w; w = windows.next()) { + CDisplayWindow* displayWindow = dynamic_cast<CDisplayWindow*>(w); + if (!displayWindow) { + continue; + } + + CProfileWindow* profileWindow = new CProfileWindow(); + displayWindow->storeProfileSettings(profileWindow); + profileWindows.append(profileWindow); + } + profile->save(profileWindows); + + //clean up memory - delete all created profile windows + profileWindows.setAutoDelete(true); + profileWindows.clear(); +} + +void BibleTime::loadProfile(int ID) { + KPopupMenu* popup = m_windowLoadProfile_action->popupMenu(); + //HACK: workaround the inserted & char by KPopupMenu + const QString profileName = popup->text(ID).remove("&"); + CProfile* p = m_profileMgr.profile( profileName ); + // qWarning("requesting popup: %s", popup->text(ID).latin1()); + Q_ASSERT(p); + + if ( p ) { + m_mdi->deleteAll(); + loadProfile(p); + } +} + +void BibleTime::loadProfile(CProfile* p) { + Q_ASSERT(p); + if (!p) { + return; + } + + QPtrList<CProfileWindow> windows = p->load(); + Q_ASSERT(windows.count()); + + //load mainwindow setttings + applyProfileSettings(p); + + m_mdi->setUpdatesEnabled(false);//don't auto tile or auto cascade, this would mess up everything!! + + QWidget* focusWindow = 0; + + // for (CProfileWindow* w = windows.last(); w; w = windows.prev()) { //from the last one to make sure the order is right in the mdi area + for (CProfileWindow* w = windows.first(); w; w = windows.next()) { + const QString key = w->key(); + QStringList usedModules = w->modules(); + + ListCSwordModuleInfo modules; + for ( QStringList::Iterator it = usedModules.begin(); it != usedModules.end(); ++it ) { + if (CSwordModuleInfo* m = m_backend->findModuleByName(*it)) { + modules.append(m); + } + } + if (!modules.count()) { //are the modules still installed? If not continue wih next session window + continue; + } + + //is w->isWriteWindow is false we create a write window, otherwise a read window + CDisplayWindow* displayWindow = 0; + if (w->writeWindowType() > 0) { //create a write window + displayWindow = createWriteDisplayWindow(modules.first(), key, CDisplayWindow::WriteWindowType(w->writeWindowType()) ); + } + else { //create a read window + displayWindow = createReadDisplayWindow(modules, key); + } + + if (displayWindow) { //if a window was created initialize it. + if (w->hasFocus()) { + focusWindow = displayWindow; + } + + displayWindow->applyProfileSettings(w); + }; + } + + m_mdi->setUpdatesEnabled(true); + + if (focusWindow) { + focusWindow->setFocus(); + } +} + +void BibleTime::deleteProfile(int ID) { + KPopupMenu* popup = m_windowDeleteProfile_action->popupMenu(); + //HACK: work around the inserted & char by KPopupMenu + const QString profileName = popup->text(ID).remove("&"); + CProfile* p = m_profileMgr.profile( profileName ); + Q_ASSERT(p); + + if ( p ) { + m_profileMgr.remove(p); + } + refreshProfileMenus(); +} + +void BibleTime::toggleFullscreen() { + m_windowFullscreen_action->isChecked() ? showFullScreen() : showNormal(); + m_mdi->triggerWindowUpdate(); +} + +/** Saves current settings into a new profile. */ +void BibleTime::saveToNewProfile() { + bool ok = false; + const QString name = QInputDialog::getText(i18n("Session name:"), i18n("Please enter a name for the new session."), QLineEdit::Normal, QString::null, &ok, this); + if (ok && !name.isEmpty()) { + CProfile* profile = m_profileMgr.create(name); + saveProfile(profile); + }; + + refreshProfileMenus(); +} + +/** Slot to refresh the save profile and load profile menus. */ +void BibleTime::refreshProfileMenus() { + KPopupMenu* savePopup = m_windowSaveProfile_action->popupMenu(); + savePopup->clear(); + + KPopupMenu* loadPopup = m_windowLoadProfile_action->popupMenu(); + loadPopup->clear(); + + KPopupMenu* deletePopup = m_windowDeleteProfile_action->popupMenu(); + deletePopup->clear(); + + //refresh the load, save and delete profile menus + m_profileMgr.refresh(); + QPtrList<CProfile> profiles = m_profileMgr.profiles(); + + const bool enableActions = bool(profiles.count() != 0); + m_windowSaveProfile_action->setEnabled(enableActions); + m_windowLoadProfile_action->setEnabled(enableActions); + m_windowDeleteProfile_action->setEnabled(enableActions); + + for (CProfile* p = profiles.first(); p; p = profiles.next()) { + savePopup->insertItem(p->name()); + loadPopup->insertItem(p->name()); + deletePopup->insertItem(p->name()); + } +} diff --git a/bibletime/bibletimeapp.cpp b/bibletime/bibletimeapp.cpp new file mode 100644 index 0000000..1a962f9 --- /dev/null +++ b/bibletime/bibletimeapp.cpp @@ -0,0 +1,46 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "bibletimeapp.h" + +#include "frontend/cbtconfig.h" + +#include "util/cresmgr.h" + +//KDE includes +#include <dcopclient.h> + +BibleTimeApp::BibleTimeApp() { + initDCOP(); + + CResMgr::init_i18n(); +} + +BibleTimeApp::~BibleTimeApp() { + + //we can set this safely now because we close now (hopyfully without crash) + CBTConfig::set(CBTConfig::crashedLastTime, false); + CBTConfig::set(CBTConfig::crashedTwoTimes, false); + + deleteDisplayTemplateMgr(); + deleteLanguageMgr(); + deleteBackend(); +} + +void BibleTimeApp::initDCOP() { + const bool dcopOk = dcopClient()->attach(); + Q_ASSERT(dcopOk); + + if (dcopOk) { + const QCString appId = dcopClient()->registerAs(kapp->name(), false); + // dcopClient()->setDefaultObject("BibleTimeInterface"); + } +} diff --git a/bibletime/bibletimeapp.h b/bibletime/bibletimeapp.h new file mode 100644 index 0000000..b1ed010 --- /dev/null +++ b/bibletime/bibletimeapp.h @@ -0,0 +1,33 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef BIBLETIMEAPP_H +#define BIBLETIMEAPP_H + +//BibleTime +#include "util/cpointers.h" + +//KDE +#include <kapplication.h> + +/** The BibleTimeApp class is used to clean up all instances of the backend and to delete all created module objects. + * @author The BibleTime team + */ +class BibleTimeApp : public KApplication, public CPointers { +public: + BibleTimeApp(); + virtual ~BibleTimeApp(); + +protected: + void initDCOP(); +}; + +#endif diff --git a/bibletime/bibletimeinterface.h b/bibletime/bibletimeinterface.h new file mode 100644 index 0000000..0bab1f6 --- /dev/null +++ b/bibletime/bibletimeinterface.h @@ -0,0 +1,111 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef BIBLETIME_INTERFACE_H +#define BIBLETIME_INTERFACE_H + +//Qt includes +#include <qstring.h> +#include <qstringlist.h> + +//KDE includes +#include <dcopobject.h> +#include <kmainwindowiface.h> + +/** DCOP interface definition for BibleTime. +* This is the interface definition for BibleTime's DCOP client interface. The main window class "BibleTime" +* inherits from this class and re-implements these pure virtual functions. +* It uses virtual inheritance so that a widget which inherits twice from DCOPObject does not get mixed up. +* This file is turned into bibletimeinterface_skel.cpp by the KDE automake system. +* +* @author Joachim Ansorg +*/ +class BibleTimeInterface : virtual public DCOPObject { + //This K_DCOP line is required so that the k_dcop: and void are processed. + K_DCOP + +public: +BibleTimeInterface(QCString id) : DCOPObject(id) {} + +k_dcop: + /** Sync all open Bible windows to the key. + * @param key The key which is set to all Bible windows. + */ + virtual void syncAllBibles(const QString& key) = 0; + /** Sync all open commentary windows to the key. + * @param key The key which is set to all Commentary windows. + */ + virtual void syncAllCommentaries(const QString& key) = 0; + /** Sync all open lexicon windows to the key. + * @param key The key which is set to all Lexicon windows. + */ + virtual void syncAllLexicons(const QString& key) = 0; + /** Sync all open verse based (i.e. Bibles and commentaries) windows to the key. + * @param key The key which is set to all Bible and Commentary windows. + */ + virtual void syncAllVerseBasedModules(const QString& key) = 0; + /** Reload all modules + */ + virtual void reloadModules() = 0; + /** Open a new read window for the module moduleName using the given key + * @param moduleName The name of the module which is opened in a new module window. + * @param key The key to set to the newly opened window. + */ + virtual void openWindow(const QString& moduleName, const QString& key) = 0; + /** Open a new read window for the default Bible module using the given key + * @param key The key to set to the newly opened window. + */ + virtual void openDefaultBible(const QString& key) = 0; + /** Close all open windows. + */ + virtual void closeAllModuleWindows() = 0; + /** Returns the reference used in the current window. + * The format of the returned reference is + * [Module] [Type] OSIS_Reference, + * wtih type one of BIBLE/COMMENTARY/BOOK/LEXICON/UNSUPPORTED + * If the type is BIBLE or COMMENTARY the reference is an OSIS ref + * in the other cases it's the key name, for books /Chapter/Subsection + * for Lexicons just the plain key, e.g. "ADAM". + * e.g. + * [KJV] [BIBLE] Gen.1.1 + * [MHC] [COMMENTARY] Gen.1.1 + * [ISBE] [LEXICON] REDEMPTION + * @return The reference displayed in the currently active module window. Empty if none is active. + */ + virtual QString getCurrentReference() = 0; + /** Seach the searchText in the specified module. + * @param moduleName The module to search in + * @param searchText Search for this in the modules + * @return The search result. It's in the format [modulename] osis_ref_of_the_found_key. For example "[KJV] Gen.1.1". + */ + virtual QStringList searchInModule(const QString& moduleName, const QString& searchText) = 0; + /** Search in all open modules and return the search result. + * The result is in the same format as searchInModule + * @param searchText Search for this in the modules + * @return The search result for a searchin all opened module windows + * @see searchInModule For the search result format. + */ + virtual QStringList searchInOpenModules(const QString& searchText) = 0; + /** Search in the default Bible module and return the search result. + * The result is in the same format as searchInModule + * @param searchText Search for this in the modules + * @return The search result for a search in the default Bible + * @see searchInModule + */ + virtual QStringList searchInDefaultBible(const QString& searchText) = 0; + /** Return a list of modules of the given type. + * @param type One of BIBLES, COMMENTARIES, LEXICONS, BOOKS + * @return The list of modules of the given type, may be empty + */ + virtual QStringList getModulesOfType(const QString& type) = 0; +}; + +#endif diff --git a/bibletime/bibletimeinterface_skel.cpp b/bibletime/bibletimeinterface_skel.cpp new file mode 100644 index 0000000..7d956d6 --- /dev/null +++ b/bibletime/bibletimeinterface_skel.cpp @@ -0,0 +1,188 @@ +/**************************************************************************** +** +** DCOP Skeleton generated by dcopidl2cpp from bibletimeinterface.kidl +** +** WARNING! All changes made in this file will be lost! +** +*****************************************************************************/ + +#include "./bibletimeinterface.h" + +#include <kdatastream.h> +#include <qasciidict.h> + + +static const int BibleTimeInterface_fhash = 17; +static const char* const BibleTimeInterface_ftable[14][3] = { + { "void", "syncAllBibles(QString)", "syncAllBibles(QString key)" }, + { "void", "syncAllCommentaries(QString)", "syncAllCommentaries(QString key)" }, + { "void", "syncAllLexicons(QString)", "syncAllLexicons(QString key)" }, + { "void", "syncAllVerseBasedModules(QString)", "syncAllVerseBasedModules(QString key)" }, + { "void", "reloadModules()", "reloadModules()" }, + { "void", "openWindow(QString,QString)", "openWindow(QString moduleName,QString key)" }, + { "void", "openDefaultBible(QString)", "openDefaultBible(QString key)" }, + { "void", "closeAllModuleWindows()", "closeAllModuleWindows()" }, + { "QString", "getCurrentReference()", "getCurrentReference()" }, + { "QStringList", "searchInModule(QString,QString)", "searchInModule(QString moduleName,QString searchText)" }, + { "QStringList", "searchInOpenModules(QString)", "searchInOpenModules(QString searchText)" }, + { "QStringList", "searchInDefaultBible(QString)", "searchInDefaultBible(QString searchText)" }, + { "QStringList", "getModulesOfType(QString)", "getModulesOfType(QString type)" }, + { 0, 0, 0 } +}; +static const int BibleTimeInterface_ftable_hiddens[13] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, +}; + +bool BibleTimeInterface::process(const QCString &fun, const QByteArray &data, QCString& replyType, QByteArray &replyData) +{ + static QAsciiDict<int>* fdict = 0; + if ( !fdict ) { + fdict = new QAsciiDict<int>( BibleTimeInterface_fhash, true, false ); + for ( int i = 0; BibleTimeInterface_ftable[i][1]; i++ ) + fdict->insert( BibleTimeInterface_ftable[i][1], new int( i ) ); + } + int* fp = fdict->find( fun ); + switch ( fp?*fp:-1) { + case 0: { // void syncAllBibles(QString) + QString arg0; + QDataStream arg( data, IO_ReadOnly ); + if (arg.atEnd()) return false; + arg >> arg0; + replyType = BibleTimeInterface_ftable[0][0]; + syncAllBibles(arg0 ); + } break; + case 1: { // void syncAllCommentaries(QString) + QString arg0; + QDataStream arg( data, IO_ReadOnly ); + if (arg.atEnd()) return false; + arg >> arg0; + replyType = BibleTimeInterface_ftable[1][0]; + syncAllCommentaries(arg0 ); + } break; + case 2: { // void syncAllLexicons(QString) + QString arg0; + QDataStream arg( data, IO_ReadOnly ); + if (arg.atEnd()) return false; + arg >> arg0; + replyType = BibleTimeInterface_ftable[2][0]; + syncAllLexicons(arg0 ); + } break; + case 3: { // void syncAllVerseBasedModules(QString) + QString arg0; + QDataStream arg( data, IO_ReadOnly ); + if (arg.atEnd()) return false; + arg >> arg0; + replyType = BibleTimeInterface_ftable[3][0]; + syncAllVerseBasedModules(arg0 ); + } break; + case 4: { // void reloadModules() + replyType = BibleTimeInterface_ftable[4][0]; + reloadModules( ); + } break; + case 5: { // void openWindow(QString,QString) + QString arg0; + QString arg1; + QDataStream arg( data, IO_ReadOnly ); + if (arg.atEnd()) return false; + arg >> arg0; + if (arg.atEnd()) return false; + arg >> arg1; + replyType = BibleTimeInterface_ftable[5][0]; + openWindow(arg0, arg1 ); + } break; + case 6: { // void openDefaultBible(QString) + QString arg0; + QDataStream arg( data, IO_ReadOnly ); + if (arg.atEnd()) return false; + arg >> arg0; + replyType = BibleTimeInterface_ftable[6][0]; + openDefaultBible(arg0 ); + } break; + case 7: { // void closeAllModuleWindows() + replyType = BibleTimeInterface_ftable[7][0]; + closeAllModuleWindows( ); + } break; + case 8: { // QString getCurrentReference() + replyType = BibleTimeInterface_ftable[8][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << getCurrentReference( ); + } break; + case 9: { // QStringList searchInModule(QString,QString) + QString arg0; + QString arg1; + QDataStream arg( data, IO_ReadOnly ); + if (arg.atEnd()) return false; + arg >> arg0; + if (arg.atEnd()) return false; + arg >> arg1; + replyType = BibleTimeInterface_ftable[9][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << searchInModule(arg0, arg1 ); + } break; + case 10: { // QStringList searchInOpenModules(QString) + QString arg0; + QDataStream arg( data, IO_ReadOnly ); + if (arg.atEnd()) return false; + arg >> arg0; + replyType = BibleTimeInterface_ftable[10][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << searchInOpenModules(arg0 ); + } break; + case 11: { // QStringList searchInDefaultBible(QString) + QString arg0; + QDataStream arg( data, IO_ReadOnly ); + if (arg.atEnd()) return false; + arg >> arg0; + replyType = BibleTimeInterface_ftable[11][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << searchInDefaultBible(arg0 ); + } break; + case 12: { // QStringList getModulesOfType(QString) + QString arg0; + QDataStream arg( data, IO_ReadOnly ); + if (arg.atEnd()) return false; + arg >> arg0; + replyType = BibleTimeInterface_ftable[12][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << getModulesOfType(arg0 ); + } break; + default: + return DCOPObject::process( fun, data, replyType, replyData ); + } + return true; +} + +QCStringList BibleTimeInterface::interfaces() +{ + QCStringList ifaces = DCOPObject::interfaces(); + ifaces += "BibleTimeInterface"; + return ifaces; +} + +QCStringList BibleTimeInterface::functions() +{ + QCStringList funcs = DCOPObject::functions(); + for ( int i = 0; BibleTimeInterface_ftable[i][2]; i++ ) { + if (BibleTimeInterface_ftable_hiddens[i]) + continue; + QCString func = BibleTimeInterface_ftable[i][0]; + func += ' '; + func += BibleTimeInterface_ftable[i][2]; + funcs << func; + } + return funcs; +} + + diff --git a/bibletime/display-templates/Blue.tmpl b/bibletime/display-templates/Blue.tmpl new file mode 100644 index 0000000..f415b4c --- /dev/null +++ b/bibletime/display-templates/Blue.tmpl @@ -0,0 +1,349 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <title>#TITLE# + + + + + + + + +

#CONTENT#
+ + \ No newline at end of file diff --git a/bibletime/display-templates/Crazy.tmpl b/bibletime/display-templates/Crazy.tmpl new file mode 100644 index 0000000..84121b6 --- /dev/null +++ b/bibletime/display-templates/Crazy.tmpl @@ -0,0 +1,326 @@ + + + + + + #TITLE# + + + + + + + + + +
#CONTENT#
+ + \ No newline at end of file diff --git a/bibletime/display-templates/Green.tmpl b/bibletime/display-templates/Green.tmpl new file mode 100644 index 0000000..0bf4c3d --- /dev/null +++ b/bibletime/display-templates/Green.tmpl @@ -0,0 +1,328 @@ + + + + + #TITLE# + + + + + + + + +
#CONTENT#
+ + \ No newline at end of file diff --git a/bibletime/display-templates/HighContrast.tmpl b/bibletime/display-templates/HighContrast.tmpl new file mode 100644 index 0000000..408dbf5 --- /dev/null +++ b/bibletime/display-templates/HighContrast.tmpl @@ -0,0 +1,339 @@ + + + + + #TITLE# + + + + + + + + +
#CONTENT#
+ + diff --git a/bibletime/display-templates/Makefile.am b/bibletime/display-templates/Makefile.am new file mode 100644 index 0000000..276c1a4 --- /dev/null +++ b/bibletime/display-templates/Makefile.am @@ -0,0 +1,13 @@ +#TEMPLATES = Default.tmpl Simple.tmpl +templdir = $(top_srcdir)/bibletime/display-templates +TEMPLATES = $(templdir)/*.tmpl + +EXTRA_DIST = template-init.cpp create_code.pl names.conf $(TEMPLATES) + +all: + perl $(templdir)/create_code.pl $(TEMPLATES) + +template-init.cpp: + perl $(templdir)/create_code.pl $(TEMPLATES) + +CLEANFILES = template-init.cpp diff --git a/bibletime/display-templates/Makefile.in b/bibletime/display-templates/Makefile.in new file mode 100644 index 0000000..14072ea --- /dev/null +++ b/bibletime/display-templates/Makefile.in @@ -0,0 +1,573 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/display-templates +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ + +#TEMPLATES = Default.tmpl Simple.tmpl +templdir = $(top_srcdir)/bibletime/display-templates +TEMPLATES = $(templdir)/*.tmpl +EXTRA_DIST = template-init.cpp create_code.pl names.conf $(TEMPLATES) +CLEANFILES = template-init.cpp +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/display-templates/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/display-templates/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/display-templates/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/display-templates/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/display-templates/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + + +all: + perl $(templdir)/create_code.pl $(TEMPLATES) + +template-init.cpp: + perl $(templdir)/create_code.pl $(TEMPLATES) +# 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: + +#>+ 2 +KDE_DIST=HighContrast.tmpl Simple.tmpl Makefile.in Green.tmpl Blue.tmpl Crazy.tmpl Makefile.am basic_template.txt + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/display-templates/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/display-templates/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/display-templates/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/display-templates/Simple.tmpl b/bibletime/display-templates/Simple.tmpl new file mode 100644 index 0000000..28e260e --- /dev/null +++ b/bibletime/display-templates/Simple.tmpl @@ -0,0 +1,134 @@ + + + + + #TITLE# + + + + + + + + +
#CONTENT#
+ + \ No newline at end of file diff --git a/bibletime/display-templates/basic_template.txt b/bibletime/display-templates/basic_template.txt new file mode 100644 index 0000000..77c88cd --- /dev/null +++ b/bibletime/display-templates/basic_template.txt @@ -0,0 +1,203 @@ + + + + + #TITLE# + + + + + + + + + +
#CONTENT#
+ \ No newline at end of file diff --git a/bibletime/display-templates/create_code.pl b/bibletime/display-templates/create_code.pl new file mode 100755 index 0000000..f1912fa --- /dev/null +++ b/bibletime/display-templates/create_code.pl @@ -0,0 +1,79 @@ +#!/usr/bin/perl + +use strict; +use File::Compare; +use File::Copy; +use FindBin qw($RealBin); + +my %names; + +sub read_names() { + open(IN, "< " . $RealBin . "/names.conf"); + + while () { + my $line = $_; + chomp $line; + + my ($filename, $description) = split("\t", $line); + $names{ $filename } = $description; + } + + close(IN); +} + +sub extract_data { + my $file = shift || die; + + my $name; + my $html; + + $file =~ /(?:.+\/)?(.+\..+)/; + my $tmpl_name = $1 || $file; + $name = $names{ $tmpl_name }; + + open(IN, "< $file"); + while( ) { + my $line = $_; + chomp($line); + $line .= "\\\n"; + + + $line =~ s/"/\\"/g; + $line =~ s/\s{2,}|\t/ /g; #replace spaces and tabs by space + + $html .= $line; + } + close(INT); + + + print "Found $name\n" if ($name); + return ($name, $html); +} + +my $dir = $RealBin; +#print $dir."\n"; + +&read_names; +my $code = ""; +foreach my $f (@ARGV) { + my ($name, $html) = &extract_data( $f ); + + if ($name) { + $code .= "\tm_templateMap[ i18n(\"$name\") ] = \"$html\";\n" + } +} + + +open(OUT, "> $RealBin/template-init.cpp-new"); +print OUT "void CDisplayTemplateMgr::init() {\n$code\n}\n"; +close(OUT); + +if (-e "$RealBin/template-init.cpp" && compare("$RealBin/template-init.cpp","$RealBin/template-init.cpp-new")) { #differ + move("$RealBin/template-init.cpp-new","$RealBin/template-init.cpp"); +} +elsif (!-e "$RealBin/template-init.cpp") { + move ("$RealBin/template-init.cpp-new","$RealBin/template-init.cpp"); +} +else { #make sure to remove the -new file + unlink("$RealBin/template-init.cpp-new"); +} \ No newline at end of file diff --git a/bibletime/display-templates/names.conf b/bibletime/display-templates/names.conf new file mode 100644 index 0000000..e49d742 --- /dev/null +++ b/bibletime/display-templates/names.conf @@ -0,0 +1,5 @@ +Blue.tmpl Default +Simple.tmpl Simple +Crazy.tmpl Crazy +HighContrast.tmpl High contrast +Green.tmpl Green diff --git a/bibletime/display-templates/template-init.cpp b/bibletime/display-templates/template-init.cpp new file mode 100644 index 0000000..7d72274 --- /dev/null +++ b/bibletime/display-templates/template-init.cpp @@ -0,0 +1,1484 @@ +void CDisplayTemplateMgr::init() { + m_templateMap[ i18n("Default") ] = "\ +\ +\ +\ + #TITLE#\ + \ + \ + \ + \ + \ +\ +\ +\ +
#CONTENT#
\ +\ +\ +"; + m_templateMap[ i18n("Crazy") ] = "\ +\ +\ +\ + \ + #TITLE#\ + \ + \ + \ +\ + \ +\ +\ +\ +\ +
#CONTENT#
\ +\ +\ +"; + m_templateMap[ i18n("Green") ] = "\ +\ +\ +\ + #TITLE#\ + \ + \ + \ + \ + \ +\ +\ +\ +
#CONTENT#
\ +\ +\ +"; + m_templateMap[ i18n("High contrast") ] = "\ +\ +\ +\ + #TITLE#\ + \ + \ + \ + \ + \ +\ +\ +\ +
#CONTENT#
\ +\ +\ +"; + m_templateMap[ i18n("Simple") ] = "\ +\ +\ +\ + #TITLE#\ + \ + \ + \ + \ + \ +\ +\ +\ +
#CONTENT#
\ +\ +\ +"; + +} diff --git a/bibletime/frontend/Makefile.am b/bibletime/frontend/Makefile.am new file mode 100644 index 0000000..8f22646 --- /dev/null +++ b/bibletime/frontend/Makefile.am @@ -0,0 +1,35 @@ +INCLUDES = $(all_includes) +libfrontend_a_METASOURCES = AUTO +noinst_LIBRARIES = libfrontend.a + +libfrontend_a_SOURCES = btinstallmgr.cpp cbtconfig.cpp cinputdialog.cpp \ + manageindicesform.ui cmanageindiceswidget.cpp coptionsdialog.cpp \ + cswordsetupdialog.cpp cprofilemgr.cpp cprofile.cpp cprofilewindow.cpp cexportmanager.cpp \ + cmdiarea.cpp kstartuplogo.cpp cdragdropmgr.cpp cinfodisplay.cpp cprinter.cpp \ + crossrefrendering.cpp cswordsetupmodulelistview.cpp \ + cswordsetupinstallsourcesdialog.cpp cmoduleindexdialog.cpp + +all_headers = cmdiarea.h \ +btinstallmgr.h \ +cbtconfig.h \ +cinputdialog.h \ +coptionsdialog.h \ +cmanageindiceswidget.h \ +cswordsetupdialog.h \ +cprofilemgr.h \ +cprofile.h \ +cprofilewindow.h \ +cexportmanager.h \ +cmdiarea.h \ +kstartuplogo.h \ +cdragdropmgr.h \ +cinfodisplay.h \ +cprinter.h \ +crossrefrendering.h \ +cswordsetupmodulelistview.h \ +cswordsetupinstallsourcesdialog.h + +EXTRA_DIST = $(libfrontend_a_SOURCES) $(all_headers) + +SUBDIRS = util searchdialog mainindex keychooser displaywindow display +noinst_HEADERS = cmoduleindexdialog.h diff --git a/bibletime/frontend/Makefile.in b/bibletime/frontend/Makefile.in new file mode 100644 index 0000000..c083cb9 --- /dev/null +++ b/bibletime/frontend/Makefile.in @@ -0,0 +1,1024 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/frontend +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) +ARFLAGS = cru +libfrontend_a_AR = $(AR) $(ARFLAGS) +libfrontend_a_LIBADD = +am_libfrontend_a_OBJECTS = btinstallmgr.$(OBJEXT) cbtconfig.$(OBJEXT) \ + cinputdialog.$(OBJEXT) cmanageindiceswidget.$(OBJEXT) \ + coptionsdialog.$(OBJEXT) cswordsetupdialog.$(OBJEXT) \ + cprofilemgr.$(OBJEXT) cprofile.$(OBJEXT) \ + cprofilewindow.$(OBJEXT) cexportmanager.$(OBJEXT) \ + cmdiarea.$(OBJEXT) kstartuplogo.$(OBJEXT) \ + cdragdropmgr.$(OBJEXT) cinfodisplay.$(OBJEXT) \ + cprinter.$(OBJEXT) crossrefrendering.$(OBJEXT) \ + cswordsetupmodulelistview.$(OBJEXT) \ + cswordsetupinstallsourcesdialog.$(OBJEXT) \ + cmoduleindexdialog.$(OBJEXT) +#>- libfrontend_a_OBJECTS = $(am_libfrontend_a_OBJECTS) +#>+ 15 +libfrontend_a_final_OBJECTS = libfrontend_a.all_cpp.o +libfrontend_a_nofinal_OBJECTS = btinstallmgr.$(OBJEXT) cbtconfig.$(OBJEXT) \ + cinputdialog.$(OBJEXT) cmanageindiceswidget.$(OBJEXT) \ + coptionsdialog.$(OBJEXT) cswordsetupdialog.$(OBJEXT) \ + cprofilemgr.$(OBJEXT) cprofile.$(OBJEXT) \ + cprofilewindow.$(OBJEXT) cexportmanager.$(OBJEXT) \ + cmdiarea.$(OBJEXT) kstartuplogo.$(OBJEXT) \ + cdragdropmgr.$(OBJEXT) cinfodisplay.$(OBJEXT) \ + cprinter.$(OBJEXT) crossrefrendering.$(OBJEXT) \ + cswordsetupmodulelistview.$(OBJEXT) \ + cswordsetupinstallsourcesdialog.$(OBJEXT) \ + cmoduleindexdialog.$(OBJEXT) manageindicesform.$(OBJEXT)\ +cinputdialog.moc.o cmanageindiceswidget.moc.o cprinter.moc.o cinfodisplay.moc.o coptionsdialog.moc.o cmdiarea.moc.o cswordsetupdialog.moc.o cswordsetupmodulelistview.moc.o btinstallmgr.moc.o cswordsetupinstallsourcesdialog.moc.o cmoduleindexdialog.moc.o +@KDE_USE_FINAL_FALSE@libfrontend_a_OBJECTS = $(libfrontend_a_nofinal_OBJECTS) +@KDE_USE_FINAL_TRUE@libfrontend_a_OBJECTS = $(libfrontend_a_final_OBJECTS) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/admin/depcomp +am__depfiles_maybe = depfiles +#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 2 +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 3 +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +CXXLD = $(CXX) +#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ +#>- $(LDFLAGS) -o $@ +#>+ 3 +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libfrontend_a_SOURCES) +DIST_SOURCES = $(libfrontend_a_SOURCES) +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +HEADERS = $(noinst_HEADERS) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +INCLUDES = $(all_includes) +#>- libfrontend_a_METASOURCES = AUTO +noinst_LIBRARIES = libfrontend.a +#>- libfrontend_a_SOURCES = btinstallmgr.cpp cbtconfig.cpp cinputdialog.cpp \ +#>- manageindicesform.ui cmanageindiceswidget.cpp coptionsdialog.cpp \ +#>- cswordsetupdialog.cpp cprofilemgr.cpp cprofile.cpp cprofilewindow.cpp cexportmanager.cpp \ +#>- cmdiarea.cpp kstartuplogo.cpp cdragdropmgr.cpp cinfodisplay.cpp cprinter.cpp \ +#>- crossrefrendering.cpp cswordsetupmodulelistview.cpp \ +#>- cswordsetupinstallsourcesdialog.cpp cmoduleindexdialog.cpp +#>+ 6 +libfrontend_a_SOURCES=btinstallmgr.cpp cbtconfig.cpp cinputdialog.cpp \ + cmanageindiceswidget.cpp coptionsdialog.cpp \ + cswordsetupdialog.cpp cprofilemgr.cpp cprofile.cpp cprofilewindow.cpp cexportmanager.cpp \ + cmdiarea.cpp kstartuplogo.cpp cdragdropmgr.cpp cinfodisplay.cpp cprinter.cpp \ + crossrefrendering.cpp cswordsetupmodulelistview.cpp \ + cswordsetupinstallsourcesdialog.cpp cmoduleindexdialog.cpp manageindicesform.cpp + +all_headers = cmdiarea.h \ +btinstallmgr.h \ +cbtconfig.h \ +cinputdialog.h \ +coptionsdialog.h \ +cmanageindiceswidget.h \ +cswordsetupdialog.h \ +cprofilemgr.h \ +cprofile.h \ +cprofilewindow.h \ +cexportmanager.h \ +cmdiarea.h \ +kstartuplogo.h \ +cdragdropmgr.h \ +cinfodisplay.h \ +cprinter.h \ +crossrefrendering.h \ +cswordsetupmodulelistview.h \ +cswordsetupinstallsourcesdialog.h + +EXTRA_DIST = $(libfrontend_a_SOURCES) $(all_headers) +SUBDIRS = util searchdialog mainindex keychooser displaywindow display +noinst_HEADERS = cmoduleindexdialog.h +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/frontend/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/frontend/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/frontend/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +libfrontend.a: $(libfrontend_a_OBJECTS) $(libfrontend_a_DEPENDENCIES) + -rm -f libfrontend.a + $(libfrontend_a_AR) libfrontend.a $(libfrontend_a_OBJECTS) $(libfrontend_a_LIBADD) + $(RANLIB) libfrontend.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btinstallmgr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cbtconfig.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cdragdropmgr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cexportmanager.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cinfodisplay.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cinputdialog.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmanageindiceswidget.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmdiarea.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmoduleindexdialog.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coptionsdialog.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cprinter.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cprofile.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cprofilemgr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cprofilewindow.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crossrefrendering.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cswordsetupdialog.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cswordsetupinstallsourcesdialog.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cswordsetupmodulelistview.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kstartuplogo.Po@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(LIBRARIES) $(HEADERS) +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ +#>- mostlyclean-am +#>+ 2 +clean-am: clean-metasources clean-ui clean-bcheck clean-final clean-generic clean-libtool clean-noinstLIBRARIES \ + mostlyclean-am + +distclean: distclean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + clean-noinstLIBRARIES ctags ctags-recursive distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 3 +cinputdialog.moc.cpp: $(srcdir)/cinputdialog.h + $(MOC) $(srcdir)/cinputdialog.h -o cinputdialog.moc.cpp + +#>+ 2 +mocs: cinputdialog.moc.cpp + +#>+ 3 +cmanageindiceswidget.moc.cpp: $(srcdir)/cmanageindiceswidget.h + $(MOC) $(srcdir)/cmanageindiceswidget.h -o cmanageindiceswidget.moc.cpp + +#>+ 2 +mocs: cmanageindiceswidget.moc.cpp + +#>+ 3 +cprinter.moc.cpp: $(srcdir)/cprinter.h + $(MOC) $(srcdir)/cprinter.h -o cprinter.moc.cpp + +#>+ 2 +mocs: cprinter.moc.cpp + +#>+ 3 +cinfodisplay.moc.cpp: $(srcdir)/cinfodisplay.h + $(MOC) $(srcdir)/cinfodisplay.h -o cinfodisplay.moc.cpp + +#>+ 2 +mocs: cinfodisplay.moc.cpp + +#>+ 3 +coptionsdialog.moc.cpp: $(srcdir)/coptionsdialog.h + $(MOC) $(srcdir)/coptionsdialog.h -o coptionsdialog.moc.cpp + +#>+ 2 +mocs: coptionsdialog.moc.cpp + +#>+ 3 +cmdiarea.moc.cpp: $(srcdir)/cmdiarea.h + $(MOC) $(srcdir)/cmdiarea.h -o cmdiarea.moc.cpp + +#>+ 2 +mocs: cmdiarea.moc.cpp + +#>+ 3 +cswordsetupdialog.moc.cpp: $(srcdir)/cswordsetupdialog.h + $(MOC) $(srcdir)/cswordsetupdialog.h -o cswordsetupdialog.moc.cpp + +#>+ 2 +mocs: cswordsetupdialog.moc.cpp + +#>+ 3 +cswordsetupmodulelistview.moc.cpp: $(srcdir)/cswordsetupmodulelistview.h + $(MOC) $(srcdir)/cswordsetupmodulelistview.h -o cswordsetupmodulelistview.moc.cpp + +#>+ 2 +mocs: cswordsetupmodulelistview.moc.cpp + +#>+ 3 +btinstallmgr.moc.cpp: $(srcdir)/btinstallmgr.h + $(MOC) $(srcdir)/btinstallmgr.h -o btinstallmgr.moc.cpp + +#>+ 2 +mocs: btinstallmgr.moc.cpp + +#>+ 3 +cswordsetupinstallsourcesdialog.moc.cpp: $(srcdir)/cswordsetupinstallsourcesdialog.h + $(MOC) $(srcdir)/cswordsetupinstallsourcesdialog.h -o cswordsetupinstallsourcesdialog.moc.cpp + +#>+ 2 +mocs: cswordsetupinstallsourcesdialog.moc.cpp + +#>+ 3 +cmoduleindexdialog.moc.cpp: $(srcdir)/cmoduleindexdialog.h + $(MOC) $(srcdir)/cmoduleindexdialog.h -o cmoduleindexdialog.moc.cpp + +#>+ 2 +mocs: cmoduleindexdialog.moc.cpp + +#>+ 3 +clean-metasources: + -rm -f cinputdialog.moc.cpp cmanageindiceswidget.moc.cpp cprinter.moc.cpp cinfodisplay.moc.cpp coptionsdialog.moc.cpp cmdiarea.moc.cpp cswordsetupdialog.moc.cpp cswordsetupmodulelistview.moc.cpp btinstallmgr.moc.cpp cswordsetupinstallsourcesdialog.moc.cpp cmoduleindexdialog.moc.cpp + +#>+ 2 +KDE_DIST=cdragdropmgr.h cbtconfig.h btinstallmgr.h cprofile.h cprinter.h cswordsetupdialog.h cmdiarea.h cinfodisplay.h cswordsetupinstallsourcesdialog.h kstartuplogo.h cswordsetupmodulelistview.h cexportmanager.h cprofilewindow.h crossrefrendering.h Makefile.in coptionsdialog.h cinputdialog.h cprofilemgr.h cmanageindiceswidget.h Makefile.am manageindicesform.ui + +#>+ 4 +clean-ui: + -rm -f \ + manageindicesform.cpp manageindicesform.h manageindicesform.moc + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/frontend/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/frontend/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 11 +libfrontend_a.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/btinstallmgr.cpp $(srcdir)/cbtconfig.cpp $(srcdir)/cinputdialog.cpp $(srcdir)/cmanageindiceswidget.cpp $(srcdir)/coptionsdialog.cpp $(srcdir)/cswordsetupdialog.cpp $(srcdir)/cprofilemgr.cpp $(srcdir)/cprofile.cpp $(srcdir)/cprofilewindow.cpp $(srcdir)/cexportmanager.cpp $(srcdir)/cmdiarea.cpp $(srcdir)/kstartuplogo.cpp $(srcdir)/cdragdropmgr.cpp $(srcdir)/cinfodisplay.cpp $(srcdir)/cprinter.cpp $(srcdir)/crossrefrendering.cpp $(srcdir)/cswordsetupmodulelistview.cpp $(srcdir)/cswordsetupinstallsourcesdialog.cpp $(srcdir)/cmoduleindexdialog.cpp manageindicesform.cpp cinputdialog.moc.cpp cmanageindiceswidget.moc.cpp cprinter.moc.cpp cinfodisplay.moc.cpp coptionsdialog.moc.cpp cmdiarea.moc.cpp cswordsetupdialog.moc.cpp btinstallmgr.moc.cpp cswordsetupmodulelistview.moc.cpp cswordsetupinstallsourcesdialog.moc.cpp cmoduleindexdialog.moc.cpp manageindicesform.moc + @echo 'creating libfrontend_a.all_cpp.cpp ...'; \ + rm -f libfrontend_a.all_cpp.files libfrontend_a.all_cpp.final; \ + echo "#define KDE_USE_FINAL 1" >> libfrontend_a.all_cpp.final; \ + for file in btinstallmgr.cpp cbtconfig.cpp cinputdialog.cpp cmanageindiceswidget.cpp coptionsdialog.cpp cswordsetupdialog.cpp cprofilemgr.cpp cprofile.cpp cprofilewindow.cpp cexportmanager.cpp cmdiarea.cpp kstartuplogo.cpp cdragdropmgr.cpp cinfodisplay.cpp cprinter.cpp crossrefrendering.cpp cswordsetupmodulelistview.cpp cswordsetupinstallsourcesdialog.cpp cmoduleindexdialog.cpp manageindicesform.cpp cinputdialog.moc.cpp cmanageindiceswidget.moc.cpp cprinter.moc.cpp cinfodisplay.moc.cpp coptionsdialog.moc.cpp cmdiarea.moc.cpp cswordsetupdialog.moc.cpp btinstallmgr.moc.cpp cswordsetupmodulelistview.moc.cpp cswordsetupinstallsourcesdialog.moc.cpp cmoduleindexdialog.moc.cpp ; do \ + echo "#include \"$$file\"" >> libfrontend_a.all_cpp.files; \ + test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libfrontend_a.all_cpp.final; \ + done; \ + cat libfrontend_a.all_cpp.final libfrontend_a.all_cpp.files > libfrontend_a.all_cpp.cpp; \ + rm -f libfrontend_a.all_cpp.final libfrontend_a.all_cpp.files + +#>+ 3 +clean-final: + -rm -f libfrontend_a.all_cpp.cpp + +#>+ 3 +final: + $(MAKE) libfrontend_a_OBJECTS="$(libfrontend_a_final_OBJECTS)" all-am + +#>+ 3 +final-install: + $(MAKE) libfrontend_a_OBJECTS="$(libfrontend_a_final_OBJECTS)" install-am + +#>+ 3 +no-final: + $(MAKE) libfrontend_a_OBJECTS="$(libfrontend_a_nofinal_OBJECTS)" all-am + +#>+ 3 +no-final-install: + $(MAKE) libfrontend_a_OBJECTS="$(libfrontend_a_nofinal_OBJECTS)" install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 22 +$(srcdir)/cmoduleindexdialog.cpp: manageindicesform.h +$(srcdir)/btinstallmgr.cpp: manageindicesform.h +$(srcdir)/cprofile.cpp: manageindicesform.h +$(srcdir)/cprinter.cpp: manageindicesform.h +$(srcdir)/cmanageindiceswidget.cpp: manageindicesform.h +$(srcdir)/cinfodisplay.cpp: manageindicesform.h +$(srcdir)/crossrefrendering.cpp: manageindicesform.h +$(srcdir)/cprofilewindow.cpp: manageindicesform.h +nmcheck: +$(srcdir)/cswordsetupinstallsourcesdialog.cpp: manageindicesform.h +$(srcdir)/cswordsetupmodulelistview.cpp: manageindicesform.h +$(srcdir)/cinputdialog.cpp: manageindicesform.h +$(srcdir)/coptionsdialog.cpp: manageindicesform.h +nmcheck-am: nmcheck +$(srcdir)/cprofilemgr.cpp: manageindicesform.h +$(srcdir)/cexportmanager.cpp: manageindicesform.h +$(srcdir)/kstartuplogo.cpp: manageindicesform.h +$(srcdir)/cdragdropmgr.cpp: manageindicesform.h +$(srcdir)/cbtconfig.cpp: manageindicesform.h +$(srcdir)/cswordsetupdialog.cpp: manageindicesform.h +$(srcdir)/cmdiarea.cpp: manageindicesform.h + +#>+ 15 +manageindicesform.cpp: $(srcdir)/manageindicesform.ui manageindicesform.h manageindicesform.moc + rm -f manageindicesform.cpp + echo '#include ' > manageindicesform.cpp + echo '#include ' >> manageindicesform.cpp + $(UIC) -tr ${UIC_TR} -i manageindicesform.h $(srcdir)/manageindicesform.ui > manageindicesform.cpp.temp ; ret=$$?; \ + $(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" manageindicesform.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_manageindicesform,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> manageindicesform.cpp ;\ + rm -f manageindicesform.cpp.temp ;\ + if test "$$ret" = 0; then echo '#include "manageindicesform.moc"' >> manageindicesform.cpp; else rm -f manageindicesform.cpp ; exit $$ret ; fi + +manageindicesform.h: $(srcdir)/manageindicesform.ui + rm -rf manageindicesform.h; + $(UIC) $(srcdir)/manageindicesform.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include ,#include ,g" >> manageindicesform.h ; +manageindicesform.moc: manageindicesform.h + $(MOC) manageindicesform.h -o manageindicesform.moc diff --git a/bibletime/frontend/btinstallmgr.cpp b/bibletime/frontend/btinstallmgr.cpp new file mode 100644 index 0000000..1332d10 --- /dev/null +++ b/bibletime/frontend/btinstallmgr.cpp @@ -0,0 +1,318 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + +//BibleTime includes +#include "btinstallmgr.h" +#include "util/cpointers.h" + +//Qt includes +#include +#include + +//KDE includes +#include +#include +#include +#include + +//Sword includes +#include +#include +#include +#include +#include + +//Stl includes +#include + +using namespace sword; + +namespace BookshelfManager { + + const QString BTInstallMgr::Tool::LocalConfig::swordConfigFilename() { + // Q_ASSERT( CPointers::backend()->sysconfig ); + return QString::fromLatin1("%1/.sword/sword.conf").arg(getenv("HOME")); + } + + QStringList BTInstallMgr::Tool::RemoteConfig::sourceList( sword::InstallMgr* mgr ) { + // qWarning("BTInstallMgr::Tool::sourceList( sword::InstallMgr* mgr )"); + Q_ASSERT(mgr); + Q_ASSERT(mgr->installConf); + + QStringList names; + + //add Sword remote sources + for (InstallSourceMap::iterator it = mgr->sources.begin(); it != mgr->sources.end(); it++) { + names << QString::fromLocal8Bit(it->second->caption); + } + + // Add local directory sources + SWConfig config(Tool::RemoteConfig::configFilename().latin1()); + sword::SectionMap::iterator sourcesSection = config.Sections.find("Sources"); + if (sourcesSection != config.Sections.end()) { + sword::ConfigEntMap::iterator sourceBegin = sourcesSection->second.lower_bound("DIRSource"); + sword::ConfigEntMap::iterator sourceEnd = sourcesSection->second.upper_bound("DIRSource"); + + while (sourceBegin != sourceEnd) { + InstallSource is("DIR", sourceBegin->second.c_str()); + names << QString::fromLatin1(is.caption.c_str()); + + sourceBegin++; + } + } + + return names; + } + + QStringList BTInstallMgr::Tool::LocalConfig::targetList() { + QStringList names = CPointers::backend()->swordDirList(); + return names; + } + + void BTInstallMgr::Tool::LocalConfig::setTargetList( const QStringList& targets ) { + //saves a new Sworc config using the provided target list + QString filename = KGlobal::dirs()->saveLocation("data", "bibletime/") + "sword.conf"; //default is to assume the real location isn't writable + bool directAccess = false; + + QFileInfo i(LocalConfig::swordConfigFilename()); + QFileInfo dirInfo(i.dirPath(true)); + + if ( i.exists() && i.isWritable() ) { //we can write to the file ourself + filename = LocalConfig::swordConfigFilename(); + directAccess = true; + } + else if ( !i.exists() && dirInfo.isWritable() ) { // if the file doesn't exist but th eparent is writable for us, create it + filename = LocalConfig::swordConfigFilename(); + directAccess = true; + } + + bool setDataPath = false; + SWConfig conf(filename.local8Bit()); + conf.Sections.clear(); + + for (QStringList::const_iterator it = targets.begin(); it != targets.end(); ++it) { + QString t = *it; + if (t.contains( QString("%1/.sword").arg(getenv("HOME")) )) { + //we don't want HOME/.sword in the config + continue; + } + else { + conf["Install"].insert( std::make_pair(!setDataPath ? SWBuf("DataPath") : SWBuf("AugmentPath"), t.local8Bit()) ); + + setDataPath = true; + } + } + conf.Save(); + + if (!directAccess) { //use kdesu to move the file to the right place + KProcess *proc = new KProcess; + *proc << "kdesu"; + *proc << QString::fromLatin1("-c") << QString("mv %1 %2").arg(filename).arg(LocalConfig::swordConfigFilename()); + proc->start(KProcess::Block); + } + } + + sword::InstallSource BTInstallMgr::Tool::RemoteConfig::source( sword::InstallMgr* mgr, const QString& name ) { + Q_ASSERT(mgr); + + InstallSourceMap::iterator source = mgr->sources.find(name.latin1()); + if (source != mgr->sources.end()) { + return *(source->second); + } + else { //not found in Sword, may be a local DIR source + SWConfig config(Tool::RemoteConfig::configFilename().latin1()); + SectionMap::iterator sourcesSection = config.Sections.find("Sources"); + if (sourcesSection != config.Sections.end()) { + ConfigEntMap::iterator sourceBegin = + sourcesSection->second.lower_bound("DIRSource"); + ConfigEntMap::iterator sourceEnd = + sourcesSection->second.upper_bound("DIRSource"); + + while (sourceBegin != sourceEnd) { + InstallSource is("DIR", sourceBegin->second.c_str()); + if (!strcmp(is.caption, name.latin1()) ) { //found local dir source + return is; + } + + sourceBegin++;//next source + } + } + } + + InstallSource is("EMPTY"); //default return value + is.caption = "unknown caption"; + is.source = "unknown source"; + is.directory = "unknown dir"; + + return is; + } + + const bool BTInstallMgr::Tool::RemoteConfig::isRemoteSource( sword::InstallSource* is ) { + Q_ASSERT(is); + if (is) + return !strcmp(is->type, "FTP"); + else + return false; + } + + void BTInstallMgr::Tool::RemoteConfig::addSource( sword::InstallSource* is ) { + if (!is) { + return; + } + + SWConfig config(Tool::RemoteConfig::configFilename().latin1()); + if (!strcmp(is->type, "FTP")) { + //make sure the path doesn't have a trailing slash, sword doesn't like it + if (is->directory[ is->directory.length()-1 ] == '/') { + is->directory--; //make one char shorter + } + + config["Sources"].insert( std::make_pair(SWBuf("FTPSource"), is->getConfEnt()) ); + } + else if (!strcmp(is->type, "DIR")) { + config["Sources"].insert( std::make_pair(SWBuf("DIRSource"), is->getConfEnt()) ); + } + config.Save(); + } + + void BTInstallMgr::Tool::RemoteConfig::initConfig() { + SWConfig config(Tool::RemoteConfig::configFilename().latin1()); + config["General"]["PassiveFTP"] = "true"; + config.Save(); + } + + const QString BTInstallMgr::Tool::RemoteConfig::configPath() { + const char *envhomedir = getenv("HOME"); + QString confPath = QString(envhomedir ? envhomedir : "."); + confPath.append("/.sword/InstallMgr"); + + return confPath; + } + + const QString BTInstallMgr::Tool::RemoteConfig::configFilename() { + return (configPath() + "/InstallMgr.conf"); + } + + void BTInstallMgr::Tool::RemoteConfig::removeSource( sword::InstallMgr* mgr, sword::InstallSource* is) { + Q_ASSERT(mgr); + Q_ASSERT(is); + + SWConfig config(Tool::RemoteConfig::configFilename().latin1()); + + //this code can probably be shortened by using the stl remove_if functionality + std::pair< ConfigEntMap::iterator, ConfigEntMap::iterator > range = + isRemoteSource(is) + ? config["Sources"].equal_range("FTPSource") + : config["Sources"].equal_range("DIRSource"); + + ConfigEntMap::iterator it = range.first; + while (it != range.second) { + if (it->second == is->getConfEnt()) { + // qWarning("found the source!"); + config["Sources"].erase(it); + break; + } + + ++it; + } + + config.Save(); + } + + void BTInstallMgr::Tool::RemoteConfig::resetRemoteSources() { + SWConfig config(Tool::RemoteConfig::configFilename().latin1()); + config["Sources"].erase( //remove all FTP sources + config["Sources"].lower_bound("FTPSource"), + config["Sources"].upper_bound("FTPSource") + ); + config.Save(); + } + + void BTInstallMgr::Tool::RemoteConfig::resetLocalSources() { + SWConfig config(Tool::RemoteConfig::configFilename().latin1()); + config["Sources"].erase( //remove all FTP sources + config["Sources"].lower_bound("DIRSource"), + config["Sources"].upper_bound("DIRSource") + ); + config.Save(); + } + + CSwordBackend* BTInstallMgr::Tool::backend( sword::InstallSource* const is) { + Q_ASSERT(is); + if (!is) { + return 0; + } + + CSwordBackend* ret = 0; + if (RemoteConfig::isRemoteSource(is)) { + // qWarning("## remote backend for %s", is->localShadow.c_str()); + ret = new CSwordBackend( QString(is->localShadow.c_str()), false ); + } + else { + // qWarning("## local backend for %s", QString(is->directory.c_str()).latin1()); + ret = new CSwordBackend( QString(is->directory.c_str()) ); + } + + Q_ASSERT(ret); + if (ret) { + ret->initModules(); + } + + return ret; + } + + BTInstallMgr::BTInstallMgr() : InstallMgr(Tool::RemoteConfig::configPath().latin1(), this) { //use this class also as status reporter + this->setFTPPassive(true); + + } + + BTInstallMgr::~BTInstallMgr() { + terminate(); //make sure to close the connection + } + + void BTInstallMgr::statusUpdate(double dltotal, double dlnow) { + + if (dlnow > dltotal) + dlnow = dltotal; + + int totalPercent = (int)((float)(dlnow + m_completedBytes) / (float)(m_totalBytes) * 100.0); + + if (totalPercent > 100) { + totalPercent = 100; + } + else if (totalPercent < 0) { + totalPercent = 0; + } + + int filePercent = (int)((float)(dlnow) / (float)(dltotal+1) * 100.0); + if (filePercent > 100) { + filePercent = 100; + } + else if (filePercent < 0) { + filePercent = 0; + } + + emit completed(totalPercent, filePercent); + } + + void BTInstallMgr::preStatus(long totalBytes, long completedBytes, const char* /*message*/) { + qWarning("pre Status: %i / %i", (int)totalBytes, (int)completedBytes); + emit downloadStarted( "unknown filename" ); + + m_completedBytes = completedBytes; + m_totalBytes = (totalBytes > 0) ? totalBytes : 1; //avoid division by zero + } + +// FTPTransport *BTInstallMgr::createFTPTransport(const char *host, StatusReporter *statusReporter) { +// return new KIO_FTPTransport(host, statusReporter); +// } + + +} + diff --git a/bibletime/frontend/btinstallmgr.h b/bibletime/frontend/btinstallmgr.h new file mode 100644 index 0000000..4a366d3 --- /dev/null +++ b/bibletime/frontend/btinstallmgr.h @@ -0,0 +1,103 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef BTINSTALLMGR_H +#define BTINSTALLMGR_H + + +//BibleTIme includes +#include "backend/cswordbackend.h" + + +//sword includes +#include +#include + +//Qt includes +#include +#include +#include +#include + +namespace BookshelfManager { + + typedef QPtrList InstallSourceList; + + /**Our own reimplementation to provide status bar updates. + *@author The BibleTime team + */ +class BTInstallMgr : public QObject, public sword::InstallMgr, public sword::StatusReporter { + Q_OBJECT +public: + class Tool { +public: + class LocalConfig { +public: + static const QString swordConfigFilename(); + static QStringList targetList(); + static void setTargetList( const QStringList& ); +private: + LocalConfig() {} + ; + }; + + class RemoteConfig { +public: + static void initConfig(); + static const QString configPath(); + static const QString configFilename(); + + static void resetRemoteSources(); + static void resetLocalSources(); + + static QStringList sourceList( sword::InstallMgr* ); + static sword::InstallSource source( sword::InstallMgr*, const QString& name ); + static const bool isRemoteSource( sword::InstallSource* is ); + static void addSource( sword::InstallSource* ); + static void removeSource( sword::InstallMgr*, sword::InstallSource* ); + + +private: + RemoteConfig() {} + ; + }; + + static CSwordBackend* backend( sword::InstallSource* const ); + +private: + Tool() {} + ; + }; + + BTInstallMgr(); + virtual ~BTInstallMgr(); + +protected: + /* Reimplementations of method in StatusReporter */ + virtual void statusUpdate(double dltotal, double dlnow); + virtual void preStatus(long totalBytes, long completedBytes, const char *message); + +// virtual FTPTransport *createFTPTransport(const char *host, StatusReporter *statusReporter); + + long m_totalBytes; + long m_completedBytes; + +signals: // Signals + void completed( const int, const int ); + /** + * Emitted when a new file gets downloaded. + */ + void downloadStarted( const QString& ); + }; + +} + +#endif diff --git a/bibletime/frontend/cbtconfig.cpp b/bibletime/frontend/cbtconfig.cpp new file mode 100644 index 0000000..dbbec1e --- /dev/null +++ b/bibletime/frontend/cbtconfig.cpp @@ -0,0 +1,677 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "cbtconfig.h" + +#include "backend/cswordmoduleinfo.h" +#include "backend/cdisplaytemplatemgr.h" + +#include "util/cpointers.h" + +//Qt includes +#include +#include +#include +#include +#include + +//KDE includes +#include +#include +#if KDE_VERSION >= 0x030200 +#include +#else +#include +#endif +#include +#include +#include +#include +#include +#include + +#include + +//Sword includes +#include + +//init statics +QFont* CBTConfig::m_defaultFont = 0; +CBTConfig::FontCache* CBTConfig::fontConfigMap = 0; + +/* No constructor and destructor, because this class only contains static methods. + It won't be instantiated. */ + +const QString CBTConfig::getKey( const CBTConfig::strings ID) { + switch ( ID ) { + case bibletimeVersion: return "bibletimeVersion"; + case language: return "language"; + case displayStyle: return "displayStyle"; + case bookshelfCurrentItem: return "bookshelfCurrentItem"; + } + return QString::null; +} + +const QString CBTConfig::getDefault( const CBTConfig::strings ID) { + switch ( ID ) { + case bibletimeVersion: return "NOT YET INSTALLED"; // main() will realize this and set the value to VERSION + case language: return (KGlobal::locale()->language()).local8Bit(); + case displayStyle: return CDisplayTemplateMgr::defaultTemplate(); + case bookshelfCurrentItem: return QString(); + } + return QString::null; +} + +const QString CBTConfig::getKey( const CBTConfig::modules ID) { + switch ( ID ) { + case standardBible: return "standardBible"; + case standardCommentary: return "standardCommentary"; + case standardLexicon: return "standardLexicon"; + case standardDailyDevotional: return "standardDailyDevotional"; + case standardHebrewStrongsLexicon: return "standardHebrewLexicon"; + case standardGreekStrongsLexicon: return "standardGreekLexicon"; + case standardHebrewMorphLexicon: return "standardHebrewMorphLexicon"; + case standardGreekMorphLexicon: return "standardGreekMorphLexicon"; + } + + return QString::null; +} + +const QString CBTConfig::getDefault( const CBTConfig::modules ID) { + // CSwordBackend* b = CPointers::backend(); + switch ( ID ) { + case standardBible: return "KJV"; + case standardCommentary: return "MHC"; + case standardLexicon: return "ISBE"; + case standardDailyDevotional: return ""; //no default + + case standardHebrewStrongsLexicon: return "StrongsHebrew"; + case standardGreekStrongsLexicon: return "StrongsGreek"; + case standardHebrewMorphLexicon: return "StrongsHebrew"; + case standardGreekMorphLexicon: return "StrongsGreek"; + } + + return QString::null; +} + +const QString CBTConfig::getKey( const CBTConfig::bools ID) { + switch ( ID ) { + case firstSearchDialog: return "firstSearchDialog"; + case readOldBookmarks: return "readOldBookmarks"; + + case toolbar: return "toolbar"; + case mainIndex: return "mainIndex"; + case infoDisplay: return "infoDisplay"; + + case autoTileVertical: return "autoTileVertical"; + case autoTileHorizontal: return "autoTileHorizontal"; + case autoCascade: return "autoCascade"; + + case lineBreaks: return "lineBreaks"; + case verseNumbers: return "verseNumbers"; + + case tips: return "RunOnStart"; + case logo: return "logo"; + case autoDeleteOrphanedIndices: return "autoDeleteOrphanedIndices"; + case crashedLastTime: return "crashedLastTime"; + case crashedTwoTimes: return "crashedTwoTimes"; + } + return QString::null; +} + +const QString CBTConfig::getKey( const CBTConfig::ints ID) { + switch ( ID ) { + case footnotes: return "footnotes"; + case strongNumbers: return "strongNumbers"; + case headings: return "headings"; + case morphTags: return "morphTags"; + case lemmas: return "lemmas"; + case hebrewPoints: return "hebrewPoints"; + case hebrewCantillation: return "hebrewCantillation"; + case greekAccents: return "greekAccents"; + case textualVariants: return "textualVariants"; + case scriptureReferences: return "scriptureReferences"; + case morphSegmentation: return "morphSegmentation"; + case bookshelfContentsX: return "bookshelfContentsX"; + case bookshelfContentsY: return "bookshelfContentsY"; + case magDelay: return "magDelay"; + } + return QString::null; +} + +const bool CBTConfig::getDefault( const CBTConfig::bools ID) { + switch ( ID ) { + case firstSearchDialog: return true; + case readOldBookmarks: return false; + + case toolbar: return true; + case mainIndex: return true; + case infoDisplay: return true; + + case autoTileVertical: return true; + case autoTileHorizontal: return false; + case autoCascade: return false; + + case lineBreaks: return false; + case verseNumbers: return true; + + case tips: return true; + case logo: return true; + case autoDeleteOrphanedIndices: return true; + case crashedLastTime: return false; + case crashedTwoTimes: return false; + } + return false; +} + +const int CBTConfig::getDefault( const CBTConfig::ints ID) { + switch ( ID ) { + case footnotes: return int(true); + case strongNumbers: return int(true); + case headings: return int(true); + case morphTags: return int(true); + case lemmas: return int(true); + case hebrewPoints: return int(true); + case hebrewCantillation: return int(true); + case greekAccents: return int(true); + case textualVariants: return int(false); + case scriptureReferences: return int(true); + case morphSegmentation: return int(true); + case bookshelfContentsX: return 0; + case bookshelfContentsY: return 0; + case magDelay: return 400; + } + return 0; +} + +const QString CBTConfig::getKey( const CBTConfig::intLists ID) { + switch ( ID ) { + case leftPaneSplitterSizes: return "leftPaneSplitterSizes"; + case mainSplitterSizes: return "mainSplitterSizes"; + } + + return QString::null; +} + +const QValueList CBTConfig::getDefault( const CBTConfig::intLists ID) { + switch ( ID ) { + case leftPaneSplitterSizes: //fall through + case mainSplitterSizes: { + return QValueList(); + } + } + + return QValueList(); +} + +const QString CBTConfig::getKey( const CBTConfig::stringLists ID) { + switch ( ID ) { + case searchCompletionTexts: return QString("searchCompletionTexts"); + case searchTexts: return QString("searchTexts"); + case bookshelfOpenGroups: return QString("bookshelfOpenGroups"); + } + return QString::null; +} + +const QStringList CBTConfig::getDefault( const CBTConfig::stringLists ID) { + switch ( ID ) { + case searchTexts: { + QStringList list; + list.append(QString::null); + return list; + } + case searchCompletionTexts: + return QStringList(); + case bookshelfOpenGroups: + return QStringList(); + } + return QStringList(); +} + +const QString CBTConfig::getKey( const CBTConfig::stringMaps ID) { + switch (ID) { + case searchScopes: + return QString("SearchScopes"); + }; + return QString::null; +} + +const CBTConfig::StringMap CBTConfig::getDefault( const CBTConfig::stringMaps ID) { + switch ( ID ) { + case searchScopes: { + CBTConfig::StringMap map; + map.insert(i18n("Old testament"), QString("Gen - Mal")); + map.insert(i18n("Moses/Pentateuch/Torah"),QString("Gen - Deut")); + map.insert(i18n("History"), QString("Jos - Est")); + map.insert(i18n("Prophets"), QString("Isa - Mal")); + map.insert(i18n("New testament"), QString("Mat - Rev")); + map.insert(i18n("Gospels"), QString("Mat - Joh")); + map.insert(i18n("Letters/Epistles"), QString("Rom - Jude")); + map.insert(i18n("Paul's Epistles"), QString("Rom - Phile")); + + //make the list to the current bookname language! + CBTConfig::StringMap::Iterator it; + sword::VerseKey vk; + vk.setLocale("en_US"); + + for (it = map.begin(); it != map.end(); ++it) { + sword::ListKey list = vk.ParseVerseList(it.data().local8Bit(), "Genesis 1:1", true); + QString data; + for (int i = 0; i < list.Count(); ++i) { + data += QString::fromUtf8(list.GetElement(i)->getRangeText()) + "; "; + } + map[it.key()] = data; //set the new data + }; + + return map; + }; + default: + return CBTConfig::StringMap(); + } + + return CBTConfig::StringMap(); +} + + +const QString CBTConfig::getKey( const CLanguageMgr::Language* const language ) { + return language->name(); +} + +const QFont& CBTConfig::getDefault( const CLanguageMgr::Language* const) { + //language specific lookup of the font name + //return KApplication::font(); + if (m_defaultFont) { + return *m_defaultFont; + } + + static KStaticDeleter sd; + + //TODO: We need a better way to get the KDE konqueror KHTML settings + KConfig conf("konquerorrc"); + KHTMLSettings settings; + settings.init(&conf); + + const QString fontName = settings.stdFontName(); + const int fontSize = settings.mediumFontSize(); + + sd.setObject(m_defaultFont, new QFont(fontName, fontSize)); + + return *m_defaultFont; +} + + +const QString CBTConfig::get + ( const CBTConfig::strings ID) { + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, "strings"); + return config->readEntry(getKey(ID),getDefault(ID)); +} + +CSwordModuleInfo* const CBTConfig::get + ( const CBTConfig::modules ID) { + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, "modules"); + + QString name = config->readEntry(getKey(ID),getDefault(ID)); + return CPointers::backend()->findModuleByName(name); +} + + +const bool CBTConfig::get + ( const CBTConfig::bools ID) { + //special behaviour for the KTipDialog class + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, (ID == CBTConfig::tips) ? "TipOfDay" : "bools"); + return config->readBoolEntry(getKey(ID),getDefault(ID)); +} + +const int CBTConfig::get + ( const CBTConfig::ints ID) { + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, "ints"); + return config->readNumEntry(getKey(ID), getDefault(ID)); +} + +const QValueList CBTConfig::get + ( const CBTConfig::intLists ID ) { + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, "intlists"); + return config->readIntListEntry(getKey(ID)); +} + +const QStringList CBTConfig::get + ( const CBTConfig::stringLists ID ) { + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, "stringlists"); + return config->readListEntry(getKey(ID)); +} + +const CBTConfig::StringMap CBTConfig::get + ( const CBTConfig::stringMaps ID ) { + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, getKey(ID)); + + if (config->hasGroup(getKey(ID))) { + CBTConfig::StringMap map = config->entryMap(getKey(ID)); + switch (ID) { + case searchScopes: { //make sure we return the scopes in the chosen language. saved keys are in english + CBTConfig::StringMap::Iterator it; + sword::VerseKey vk; + + for (it = map.begin(); it != map.end(); ++it) { + sword::ListKey list = vk.ParseVerseList(it.data().utf8(), "Genesis 1:1", true); + QString data; + for (int i = 0; i < list.Count(); ++i) { + data += QString::fromUtf8(list.GetElement(i)->getRangeText()) + "; "; + } + map[it.key()] = data; //set the new data + }; + return map; + } + default: + return getDefault(ID); + } + } + return getDefault(ID); +} + +const CBTConfig::FontSettingsPair CBTConfig::get + ( const CLanguageMgr::Language* const language ) { + if (fontConfigMap && fontConfigMap->contains(language)) { + return fontConfigMap->find(language).data(); + } + + if (!fontConfigMap) { + static KStaticDeleter sd; + sd.setObject(fontConfigMap, new FontCache()); + } + + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, "font standard settings"); + + FontSettingsPair settings; + settings.first = config->readBoolEntry(getKey(language)); + + config->setGroup("fonts"); + + settings.second = + settings.first + ? config->readFontEntry(getKey(language)) + : getDefault(language); + + fontConfigMap->insert(language, settings); //cache the value + return settings; +} + +void CBTConfig::set + ( const CBTConfig::strings ID, const QString value ) { + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, "strings"); + config->writeEntry(getKey(ID), value); +} + +void CBTConfig::set + ( const CBTConfig::modules ID, CSwordModuleInfo* const value ) { + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, "modules"); + config->writeEntry(getKey(ID), value ? value->name() : QString::null); +} + +void CBTConfig::set + ( const CBTConfig::modules ID, const QString& value ) { + CSwordModuleInfo* module = CPointers::backend()->findModuleByName(value); + if (module) { + CBTConfig::set + (ID, module); + } +} + +void CBTConfig::set + (const CBTConfig::bools ID,const bool value ) { + KConfig* config = CBTConfig::getConfig(); + //special behaviour to work with KTipDialog class of KDE + KConfigGroupSaver groupSaver(config, (ID == CBTConfig::tips) ? "TipOfDay" : "bools"); + config->writeEntry(getKey(ID), value); +} + +void CBTConfig::set + (const CBTConfig::ints ID, const int value ) { + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, "ints"); + config->writeEntry(getKey(ID), value); +} + +void CBTConfig::set + ( const CBTConfig::intLists ID, const QValueList value ) { + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, "intlists"); + config->writeEntry(getKey(ID), value); +} + +void CBTConfig::set + ( const CBTConfig::stringLists ID, const QStringList value ) { + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, "stringlists"); + config->writeEntry(getKey(ID), value); +} + +void CBTConfig::set + ( const CBTConfig::stringMaps ID, const CBTConfig::StringMap value ) { + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, getKey(ID)); + config->deleteGroup(getKey(ID)); //make sure we only save the new entries and don't use old ones + config->sync(); + config->setGroup(getKey(ID)); + + switch (ID) { + case searchScopes: { + /** + * We want to make sure that the search scopes are saved with english key names so loading them + * will always work with each locale set. + */ + CBTConfig::StringMap::ConstIterator it; + QString data;// = QString::null; + + sword::VerseKey vk; + for (it = value.begin(); it != value.end(); ++it) { + sword::ListKey list = vk.ParseVerseList(it.data().utf8(), "Genesis 1:1", true); + data = QString::null; + for (int i = 0; i < list.Count(); ++i) { + if ( sword::VerseKey* range = dynamic_cast(list.GetElement(i)) ) { + range->setLocale("en"); + data += QString::fromUtf8( range->getRangeText() ) + ";"; + } + } + config->writeEntry(it.key(), data); + } + break; + } + default: { + for (CBTConfig::StringMap::ConstIterator it = value.begin(); it != value.end(); ++it) { + config->writeEntry(it.key(), it.data()); + } + break; + } + }; +} + + +void CBTConfig::set + ( const CLanguageMgr::Language* const language, const FontSettingsPair& value ) { + KConfig* config = CBTConfig::getConfig(); + + KConfigGroupSaver groupSaver(config, "fonts"); + config->writeEntry(getKey(language), value.second); + + config->setGroup("font standard settings"); + config->writeEntry(getKey(language), value.first); + + if (fontConfigMap && fontConfigMap->contains(language)) { + fontConfigMap->remove + (language); //remove it from the cache + } +} + + +const CSwordBackend::DisplayOptions CBTConfig::getDisplayOptionDefaults() { + CSwordBackend::DisplayOptions options; + + options.lineBreaks = get + (CBTConfig::lineBreaks); + options.verseNumbers = get + (CBTConfig::verseNumbers); + + return options; +} + +const CSwordBackend::FilterOptions CBTConfig::getFilterOptionDefaults() { + CSwordBackend::FilterOptions options; + + options.footnotes = true; //required for the info display + + options.strongNumbers = true; //get(CBTConfig::strongNumbers); + options.headings = get(CBTConfig::headings); + + options.morphTags = true;//required for the info display + + options.lemmas = true;//required for the info display + + options.hebrewPoints = get(CBTConfig::hebrewPoints); + options.hebrewCantillation = get(CBTConfig::hebrewCantillation); + options.greekAccents = get(CBTConfig::greekAccents); + options.textualVariants = get(CBTConfig::textualVariants); + options.scriptureReferences = get(CBTConfig::scriptureReferences); + options.morphSegmentation = get(CBTConfig::morphSegmentation); + + return options; +} + +void CBTConfig::setupAccelSettings(const CBTConfig::keys type, KActionCollection* const actionCollection) { + QString groupName; + switch (type) { + case allWindows : { + groupName = "Displaywindow shortcuts"; + break; + }; + case writeWindow : { + groupName = "Writewindow shortcuts"; + break; + }; + case readWindow : { + groupName = "Readwindow shortcuts"; + break; + }; + case bookWindow : { + groupName = "Book shortcuts"; + break; + }; + case bibleWindow : { + groupName = "Bible shortcuts"; + break; + }; + case commentaryWindow : { + groupName = "Commentary shortcuts"; + break; + }; + case lexiconWindow : { + groupName = "Lexicon shortcuts"; + break; + }; + case application : { + groupName = "Application shortcuts"; + break; + }; + }; + + + actionCollection->readShortcutSettings(groupName, CBTConfig::getConfig()); +} + +void CBTConfig::saveAccelSettings(const CBTConfig::keys type, KActionCollection* const actionCollection) { + QString groupName; + switch (type) { + case allWindows : { + groupName = "Displaywindow shortcuts"; + break; + }; + case writeWindow : { + groupName = "Writewindow shortcuts"; + break; + }; + case readWindow : { + groupName = "Readwindow shortcuts"; + break; + }; + case bookWindow : { + groupName = "Book shortcuts"; + break; + }; + case bibleWindow : { + groupName = "Bible shortcuts"; + break; + }; + case commentaryWindow : { + groupName = "Commentary shortcuts"; + break; + }; + case lexiconWindow : { + groupName = "Lexicon shortcuts"; + break; + }; + case application : { + groupName = "Application shortcuts"; + break; + }; + }; + + + actionCollection->writeShortcutSettings(groupName, CBTConfig::getConfig()); +} + + +const QString CBTConfig::getModuleEncryptionKey( const QString& module ) { + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, "Module keys"); + + return config->readEntry(module, QString::null); +} + +void CBTConfig::setModuleEncryptionKey( const QString& module, const QString& key ) { + // if (CSwordModuleInfo* const mod = CPointers::backend()->findModuleByName(module) ) { + // // if an empty key is set for an unencrypted module do nothing + // if (key.isEmpty() && !mod->isEncrypted()) { + // return; + // } + // } + // else if (key.isEmpty()) { + // return; + // }; + + KConfig* config = CBTConfig::getConfig(); + KConfigGroupSaver groupSaver(config, "Module keys"); + + config->writeEntry(module, key); +}; + +KConfig* const CBTConfig::getConfig() { + KConfig* config = KGlobal::config(); + + if (KApplication::kApplication()->sessionSaving()) { + qWarning("Using session config"); + // config = KApplication::kApplication()->sessionConfig(); + } + else if (KApplication::kApplication()->isRestored()) { + qWarning("isRestored(): Using session config"); + } + + return config; +} diff --git a/bibletime/frontend/cbtconfig.h b/bibletime/frontend/cbtconfig.h new file mode 100644 index 0000000..5c91c71 --- /dev/null +++ b/bibletime/frontend/cbtconfig.h @@ -0,0 +1,193 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CBTCONFIG_H +#define CBTCONFIG_H + +#include "backend/cswordbackend.h" +#include "backend/clanguagemgr.h" + +//Qt includes +#include +#include +#include +#include + +//Forward declarations +class KAccel; +class KActionCollection; +class KConfig; + +/** + * This class is the interface to the config object of BibleTime + * @author The BibleTime team + */ +class CBTConfig { +public: + typedef QMap StringMap; + + enum strings { + bibletimeVersion, + language, + displayStyle, + bookshelfCurrentItem + }; + enum modules { + standardBible = 0, //just to make sure, default is IMHO 0, so that's redundant here + standardCommentary, + standardLexicon, + standardDailyDevotional, + standardHebrewStrongsLexicon, + standardGreekStrongsLexicon, + standardHebrewMorphLexicon, + standardGreekMorphLexicon, + lastModuleType = standardGreekMorphLexicon + }; + enum bools { + firstSearchDialog, + readOldBookmarks, + + toolbar, + mainIndex, + infoDisplay, + + autoTileVertical, + autoTileHorizontal, + autoCascade, + + lineBreaks, + verseNumbers, + + tips, + logo, + autoDeleteOrphanedIndices, + crashedLastTime, + crashedTwoTimes + }; + enum ints { + footnotes, + strongNumbers, + headings, + morphTags, + lemmas, + hebrewPoints, + hebrewCantillation, + greekAccents, + textualVariants, + scriptureReferences, + morphSegmentation, + bookshelfContentsX, + bookshelfContentsY, + magDelay /* The delay until a mouse move makes the content appear in the mag */ + }; + enum intLists { + leftPaneSplitterSizes, + mainSplitterSizes + }; + enum stringLists { + searchCompletionTexts, + searchTexts, + bookshelfOpenGroups + }; + enum keys { + allWindows, + readWindow, + writeWindow, + bookWindow, + bibleWindow, + commentaryWindow, + lexiconWindow, + application + }; + enum stringMaps { + searchScopes + }; + typedef std::pair FontSettingsPair; + typedef QMap FontCache; + + static const QString get + ( const CBTConfig::strings ); + static CSwordModuleInfo* const get + ( const CBTConfig::modules ); + static const bool get + ( const CBTConfig::bools ); + static const int get + ( const CBTConfig::ints ); + static const QValueList get + ( const CBTConfig::intLists ); + static const QStringList get + ( const CBTConfig::stringLists ); + static const CBTConfig::StringMap get + ( const CBTConfig::stringMaps ); + + static const FontSettingsPair get + ( const CLanguageMgr::Language* const ); + + static const QString getDefault( const CBTConfig::strings ); + static const QString getDefault( const CBTConfig::modules ); + static const bool getDefault( const CBTConfig::bools ); + static const int getDefault( const CBTConfig::ints ); + static const QValueList getDefault( const CBTConfig::intLists ); + static const QStringList getDefault( const CBTConfig::stringLists ); + static const CBTConfig::StringMap getDefault( const CBTConfig::stringMaps ); + static const QFont& getDefault( const CLanguageMgr::Language* const ); + + static void set + ( const CBTConfig::strings, const QString value ); + static void set + ( const CBTConfig::modules, CSwordModuleInfo* const module ); + static void set + ( const CBTConfig::modules, const QString& moduleName ); + static void set + ( const CBTConfig::bools, const bool value ); + static void set + ( const CBTConfig::ints, const int value ); + static void set + ( const CBTConfig::intLists, const QValueList value ); + static void set + ( const CBTConfig::stringLists, const QStringList value); + static void set + ( const CBTConfig::stringMaps, const CBTConfig::StringMap value); + static void set + ( const CLanguageMgr::Language* const language, const FontSettingsPair& fontSettings ); + + static const CSwordBackend::FilterOptions getFilterOptionDefaults(); + static const CSwordBackend::DisplayOptions getDisplayOptionDefaults(); + + static void setupAccelSettings(const CBTConfig::keys type, KActionCollection* const actionCollection); + static void saveAccelSettings(const CBTConfig::keys type, KActionCollection* const actionCollection); + + static const QString getModuleEncryptionKey( const QString& name ); + static void setModuleEncryptionKey( const QString& name, const QString& key ); + + /** The config object. + * @return A config object which is used currently, may be the global config or the session config + */ + static KConfig* const getConfig(); + +private: + static const QString getKey( const CBTConfig::strings ); + static const QString getKey( const CBTConfig::modules ); + static const QString getKey( const CBTConfig::bools ); + static const QString getKey( const CBTConfig::ints ); + static const QString getKey( const CBTConfig::intLists ); + static const QString getKey( const CBTConfig::stringLists ); + static const QString getKey( const CBTConfig::stringMaps ); + static const QString getKey( const CLanguageMgr::Language* const ); + + //static caches + static QFont* m_defaultFont; + + static FontCache* fontConfigMap; +}; + + +#endif diff --git a/bibletime/frontend/cdragdropmgr.cpp b/bibletime/frontend/cdragdropmgr.cpp new file mode 100644 index 0000000..c014eed --- /dev/null +++ b/bibletime/frontend/cdragdropmgr.cpp @@ -0,0 +1,256 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cdragdropmgr.h" + +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordbackend.h" +#include "backend/cswordversekey.h" +#include "util/cpointers.h" + +//Sword includes +#include "versekey.h" + +//Qt includes +#include +#include + +CDragDropMgr::BTDrag::BTDrag( const QString& xml, QWidget* dragSource, const char* name) +: QTextDrag(xml, dragSource, name) {} +; + +//static function to see whether we can decode tje given mime type +bool CDragDropMgr::BTDrag::canDecode( const QMimeSource * mime ) { + if ( mime->provides("BibleTime/DND") ) { //we can decode this type! + return true; + } + return false; //not yet implemented +}; + +bool CDragDropMgr::BTDrag::provides( const char* type ) const { + return (type == "BibleTime/DND"); //return only true if the type is BibleTime/DND +}; + +const char* CDragDropMgr::BTDrag::format( int i ) const { + if ( i == 0) { //we support only one format! + return "BibleTime/DND"; + }; + return 0; +}; + +bool CDragDropMgr::BTDrag::decode(const QMimeSource* e, QString& str) { + if (canDecode(e)) { + str = QString( e->encodedData( "BibleTime/DND" ) ); + return true; + } + return false; +}; + +bool CDragDropMgr::BTDrag::decode(const QMimeSource* e, QString& str, QCString& /*subtype*/) { + return decode(e, str); +}; + +QByteArray CDragDropMgr::BTDrag::encodedData( const char* /*type*/ ) const { + return QTextDrag::encodedData("text/plain"); //hack because QTextDrag only accepts text/plainand not our BibleTime/DND type +}; + +///////////////////////////// new class ////////////////////// + +CDragDropMgr::Item::Item( const QString& text ) +: m_type(Text), +m_bookmarkModuleName(QString::null), +m_bookmarkKey(QString::null), +m_bookmarkDescription(QString::null), +m_text(text) {} + +CDragDropMgr::Item::Item( const QString& moduleName, const QString& key, const QString& description ) +: m_type(Bookmark), +m_bookmarkModuleName(moduleName), +m_bookmarkKey(key), +m_bookmarkDescription(description), +m_text(QString::null) { + //we have to make sure the key is saved in it's english representation, so we convert it + if (CSwordModuleInfo* mod = CPointers::backend()->findModuleByName( moduleName )) { + if (mod->type() == CSwordModuleInfo::Bible || mod->type() == CSwordModuleInfo::Commentary) { + CSwordVerseKey vk(0); + vk.key( key ); + vk.setLocale("en"); + + m_bookmarkKey = vk.key(); + // qWarning("english key of %s is %s", key.latin1(), m_bookmarkKey.latin1()); + } + } +} + +CDragDropMgr::Item::~Item() {} + +const CDragDropMgr::Item::Type& CDragDropMgr::Item::type() const { + //returns the type of drag & drop action this item represents + return m_type; +} + +/** Returns the text which is used by this DragDrop Item, only valid if type() == Text */ +const QString& CDragDropMgr::Item::text() const { + // Q_ASSERT(!m_text.isEmpty()); + return m_text; +} + +/** Returns the key, ony valid if type() == Bookmark */ +const QString& CDragDropMgr::Item::bookmarkKey() const { + // Q_ASSERT(!m_bookmarkKey.isEmpty()); + return m_bookmarkKey; +} + +/** Returns the bookmark module, ony valid if type() == Bookmark */ +const QString& CDragDropMgr::Item::bookmarkModule() const { + // Q_ASSERT(!m_bookmarkModuleName.isEmpty()); + return m_bookmarkModuleName; +} + +/** Returns the bookmark description, ony valid if type() == Bookmark */ +const QString& CDragDropMgr::Item::bookmarkDescription() const { + // Q_ASSERT(!m_bookmarkDescription.isEmpty()); + return m_bookmarkDescription; +} + +////////////////////////////////// NEW CLASS ////////////////////////// + +CDragDropMgr::CDragDropMgr() {} + +CDragDropMgr::~CDragDropMgr() {} + +const bool CDragDropMgr::canDecode( const QMimeSource* const mime ) { + if (CDragDropMgr::BTDrag::canDecode(mime)) { + return true; + } + else if( QTextDrag::canDecode(mime) ) { + qWarning("QTextDrag can decode this mime!"); + return true; + }; + return false; +}; + +QDragObject* const CDragDropMgr::dragObject( CDragDropMgr::ItemList& items, QWidget* dragSource ) { + if ( items.count() ) { + //process the items and set the data to the dragobject we return later + QDomDocument doc("DOC"); + doc.appendChild( doc.createProcessingInstruction( "xml", "version=\"1.0\" encoding=\"UTF-8\"" ) ); + QDomElement content = doc.createElement("BibleTimeDND"); + content.setAttribute("syntaxVersion", "1.0"); + doc.appendChild(content); + + CDragDropMgr::ItemList::iterator it; + for ( it = items.begin(); it != items.end(); ++it ) { + Item item = (*it); + if (item.type() == Item::Bookmark) { //a bookmark was dragged + //append the XML stuff for a bookmark + QDomElement bookmark = doc.createElement("BOOKMARK"); + bookmark.setAttribute("key", item.bookmarkKey()); + bookmark.setAttribute("description", item.bookmarkDescription()); + bookmark.setAttribute("moduleName", item.bookmarkModule()); + + content.appendChild(bookmark); + } + else if (item.type() == Item::Text) { //plain text was dragged + //append the XML stuff for plain text + QDomElement plainText = doc.createElement("TEXT"); + plainText.setAttribute("text", item.text()); + + content.appendChild(plainText); + } + } + + BTDrag* dragObject = new BTDrag( doc.toString(), dragSource ); + // qWarning("DND data created: %s", (const char*)doc.toString().utf8()); + return dragObject; + }; + return 0; +}; + +CDragDropMgr::ItemList CDragDropMgr::decode( const QMimeSource* const src) { + //if the drag was started by another widget which doesn't use CDragDropMgr (a drag created by QTextDrag) + if (canDecode(src) && QTextDrag::canDecode(src)) { //if we can decode but it's a QTextDrag and not a BTDrag object + QString text; + QTextDrag::decode(src, text); + // qWarning(text.latin1()); + + CDragDropMgr::ItemList dndItems; + dndItems.append( Item(text) ); + return dndItems; + } + else if (!canDecode(src)) { //if we can't decode it + return CDragDropMgr::ItemList(); + }; + + QString xmlData; + BTDrag::decode(src, xmlData); + + if (xmlData.isEmpty()) { //something went wrong! + // qWarning("CDragDropMgr::decode: empty xml data!"); + return CDragDropMgr::ItemList(); + } + // else { + // qWarning("Drag&Drop data is: %s", xmlData.latin1()); + // } + + //we can handle the dropEvent and have xml data to work on! + ItemList dndItems; + + QDomDocument doc; + doc.setContent( xmlData ); + + QDomElement document = doc.documentElement(); + if( document.tagName() != "BibleTimeDND" ) { //BibleTime was used in syntax version 1.0 + qWarning("DragDropMgr::decode: Missing BibleTimeDND doc"); + return CDragDropMgr::ItemList(); + } + // see if there's a section with the name MAINWINDOW + QDomElement elem = document.firstChild().toElement(); + while (!elem.isNull()) { + if (elem.tagName() == "BOOKMARK") { //we found a bookmark! + // qWarning("found a bookmark!"); + const QString key = elem.hasAttribute("key") ? elem.attribute("key") : QString::null; + const QString moduleName = elem.hasAttribute("moduleName") ? elem.attribute("moduleName") : QString::null; + const QString description = elem.hasAttribute("description") ? elem.attribute("description") : QString::null; + + dndItems.append( CDragDropMgr::Item(moduleName, key, description) ); + } + else if (elem.tagName() == "TEXT") { //we found a plain text passage! + const QString text = elem.hasAttribute("text") ? elem.attribute("text") : QString::null; + dndItems.append( CDragDropMgr::Item(text) ); + }; + elem = elem.nextSibling().toElement(); + }; + + return dndItems; +}; + +/** Returns which type the given drop event has, if it's a mixed one (both bookmarks and plain text), which shouldn't happen, it return Item::Unknown. */ +CDragDropMgr::Item::Type CDragDropMgr::dndType( const QMimeSource* e ) { + ItemList dndItems = decode(e); + if (dndItems.isEmpty()) {//wrong dropEvent or something strange + return Item::Unknown; + }; + + //check whether all items have the ssame type, if they do return the type + //as soon as two items have different types return Item::Unknown + ItemList::Iterator it; + Item::Type type = Item::Unknown; + for( it = dndItems.begin(); it != dndItems.end(); ++it ) { + if( type == Item::Unknown) { //if Unknown is set this is the first loop, don't return Unknown + type = (*it).type(); + } + else if (type != (*it).type() ) {//items have different type, return Item::Unknown + return Item::Unknown; + }; + }; + return type; +} diff --git a/bibletime/frontend/cdragdropmgr.h b/bibletime/frontend/cdragdropmgr.h new file mode 100644 index 0000000..01f0ff3 --- /dev/null +++ b/bibletime/frontend/cdragdropmgr.h @@ -0,0 +1,155 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CDRAGDROPMGR_H +#define CDRAGDROPMGR_H + +//Qt includes +#include +#include +#include +#include + +//forward declarations +class QDropEvent; +class QWidget; + +/** This class is the drag'n' drop manager for BibleTime. + * The dnd is managed by XML code, which defines the type of the drag/drop, the items and the action (moe, copy etc.). + * It's possible to create the XML code by passing a list of keys etc. + * + * Functions: + * - dnd_type(), returns either CDragDropMgr::Action_Drag or CDragDropMgr::Action_Drop + * - dnd_action(), returns either CDragDropMgr::Move or CDragDropMgr::Copy + * - dnd_acceptDrop(), returns true or false. True if the drop could be handled by the CDragDropMgr class, otherwise false + * + * + * The functions which create the XML stuff can't be reimplemented, too. Otherwise we could not guarantee for good XML code + * which works everywhere. + * + * @author The BibleTime team + */ +class CDragDropMgr { +public: + //The class which represents one single drag&drop entry (e.g. a bookmark or a portion of text) + class Item { +public: + /** + * The possible types of Drag&Drop actions. + */ + enum Type { + Bookmark = 0, /* A bookmark: Has a key, a module and a description*/ + Text, /* Simple text, e.g. can be dropped on a module to start a search in this module using the dropped text */ + Unknown /* For situatiosn like CDragDropMgr::dndType */ + }; + /** + * This function returns the type of drag this item has + */ + const CDragDropMgr::Item::Type& type() const; + /** + * Returns the key, ony valid if type() == Bookmark + */ + const QString& bookmarkKey() const; + /** + * Returns the module name, ony valid if type() == Bookmark + */ + const QString& bookmarkModule() const; + /** + * Returns the bookmark description, ony valid if type() == Bookmark + */ + const QString& bookmarkDescription() const; + /** + * Returns the text which is used by this DragDrop Item, only valid if type() == Text + */ + const QString& text() const; + + // protected: + friend class CDragDropMgr; + /* + * We use protected constructor and destructor because creation of objects + * of this class sould only be possible for CDragDropMgr + */ + + /** Constructor for a text item + * This constructor automatically sets the type member to Text + * This is also the default constructor + */ + Item(const QString& text = QString::null ); + /** Constructor for a Bookmark item + * This constructor automatically sets the type member to Bookmark + */ + Item(const QString& moduleName, const QString& key, const QString& description); + virtual ~Item(); + +private: + Type m_type; //the member to save the type of the action + QString m_bookmarkModuleName; //the modules which is used by this item, only valid for type() == Bookmark + QString m_bookmarkKey; //the key of a bookmark, only valid if type() == Bookmark + QString m_bookmarkDescription; //the description of a bookmark, only valid if type() == Bookmark + QString m_text; //the text of this item, only valid if type() == Text + } + ; //end of class CDragDropMgr::Item + + //the item list we're using + typedef QValueList ItemList; + + /** Return whether the drop should be accepted + * This functions tests whether the drop should be accepted or not. It returns true if the drop object + * is supported by the CDragDropMgr and if it cotains valid data. Oterwise this function returns false. + */ + static const bool canDecode( const QMimeSource* const mime ); + /** + * This function returns the drag object with the data which represents the items given as parameter + * If the list is invalid or empty we return NULL. + */ + static QDragObject* const dragObject( CDragDropMgr::ItemList& items, QWidget* dragSource ); + + /** + * Decodes the XML stuff we passed to the dragObject at creation time. + * Returns a list of CDragDropMgr::Item objects. + * If it's a wrong dropEvent we return an empty ist + */ + static CDragDropMgr::ItemList decode( const QMimeSource* const src ); + /** + * Returns which type the given drop event has, if it's a mixed one (both bookmarks and plain text), + * which shouldn't happen, it return Item::Unknown. + * It also returns Unknown if the drop event is not supported. + */ + static CDragDropMgr::Item::Type dndType( const QMimeSource* e ); + +protected: + //The class which represents our XML drag object stuff +class BTDrag : public QTextDrag { +public: + BTDrag( const QString& xml, QWidget* dragSource = 0, const char* name = 0); + //reimplemented static publoc function to provide functionality for BibleTime XML drags + static bool canDecode( const QMimeSource * e ); + virtual bool provides( const char* type ) const; + virtual const char* format( int i = 0 ) const; + + virtual QByteArray encodedData( const char* type ) const; + +protected: + friend class CDragDropMgr; + //made protected because the BibleTime classes may not manage the data of BTDrag + // virtual void setText(const QString& text); + + //made protected because the BibleTime classes should not manage the DRag&Drop stuff themself + static bool decode(const QMimeSource* e, QString& str); + static bool decode(const QMimeSource* e, QString& str, QCString& subtype); + }; + + //protected constructor and destructor because we do not allow inheritance, functionality is provided by static functions + CDragDropMgr(); + virtual ~CDragDropMgr(); +}; + +#endif diff --git a/bibletime/frontend/cexportmanager.cpp b/bibletime/frontend/cexportmanager.cpp new file mode 100644 index 0000000..1092e5c --- /dev/null +++ b/bibletime/frontend/cexportmanager.cpp @@ -0,0 +1,543 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cexportmanager.h" + +#include "backend/cswordkey.h" +#include "backend/cswordmoduleinfo.h" +#include "backend/creferencemanager.h" +#include "backend/cswordversekey.h" +#include "backend/centrydisplay.h" +#include "backend/cdisplaytemplatemgr.h" +#include "backend/chtmlexportrendering.h" +#include "backend/cplaintextexportrendering.h" + +#include "frontend/cprinter.h" + +#include "util/ctoolclass.h" +#include "util/scoped_resource.h" + +//Qt includes +#include +#include +#include + +//KDE includes +#include +#include +#include +#include + +//Sword includes +#include +#include + +using namespace Rendering; +using namespace Printing; + +CExportManager::CExportManager(const QString& caption, const bool showProgress, const QString& progressLabel, const CSwordBackend::FilterOptions filterOptions, const CSwordBackend::DisplayOptions displayOptions) { + m_caption = !caption.isEmpty() ? caption : QString::fromLatin1("BibleTime"); + m_progressLabel = progressLabel; + m_filterOptions = filterOptions; + m_displayOptions = displayOptions; + m_showProgress = showProgress; + m_progressDialog = 0; +}; + +const bool CExportManager::saveKey(CSwordKey* key, const Format format, const bool addText) { + if (!key) { + return false; + } + if (!key->module()) { + return false; + } + const QString filename = getSaveFileName(format); + if (filename.isEmpty()) { + return false; + } + + CSwordBackend::FilterOptions filterOptions = m_filterOptions; + filterOptions.footnotes = false; + filterOptions.strongNumbers = false; + filterOptions.morphTags = false; + filterOptions.lemmas = false; + filterOptions.scriptureReferences = false; + filterOptions.textualVariants = false; + + CHTMLExportRendering::Settings settings(addText); + util::scoped_ptr render ( + (format == HTML) + ? new CHTMLExportRendering(settings, m_displayOptions, filterOptions) + : new CPlainTextExportRendering(settings, m_displayOptions, filterOptions) + ); + + QString text; + QString startKey; + QString stopKey; + + ListCSwordModuleInfo modules; + modules.append(key->module()); + + CSwordVerseKey *vk = dynamic_cast(key); + if (vk && vk->isBoundSet()) { + text = render->renderKeyRange( QString::fromUtf8(vk->LowerBound()), QString::fromUtf8(vk->UpperBound()), modules ); + } + else { //no range supported + text = render->renderSingleKey(key->key(), modules); + } + + if (!progressWasCancelled()) { + CToolClass::savePlainFile(filename, text, false, (format==HTML) ? QTextStream::UnicodeUTF8 : QTextStream::Locale); + closeProgressDialog(); + return true; + } + return false; +}; + +const bool CExportManager::saveKeyList(sword::ListKey* list, CSwordModuleInfo* module, const Format format, const bool addText) { + if (!list->Count()) + return false; + + const QString filename = getSaveFileName(format); + if (filename.isEmpty()) { + return false; + } + + CSwordBackend::FilterOptions filterOptions = m_filterOptions; + filterOptions.footnotes = false; + filterOptions.strongNumbers = false; + filterOptions.morphTags = false; + filterOptions.lemmas = false; + filterOptions.scriptureReferences = false; + filterOptions.textualVariants = false; + + CHTMLExportRendering::Settings settings(addText); + util::scoped_ptr render ( + (format == HTML) + ? new CHTMLExportRendering(settings, m_displayOptions, filterOptions) + : new CPlainTextExportRendering(settings, m_displayOptions, filterOptions) + ); + + CTextRendering::KeyTree tree; + + setProgressRange(list->Count()); + CTextRendering::KeyTreeItem::Settings itemSettings; + itemSettings.highlight = false; + + *list = sword::TOP; + while (!list->Error() && !progressWasCancelled()) { + tree.append( new CTextRendering::KeyTreeItem(QString::fromLocal8Bit((const char*)(*list)) , module, itemSettings) ); + incProgress(); + + (*list)++; + } + + const QString text = render->renderKeyTree(tree); + + if (!progressWasCancelled()) { + CToolClass::savePlainFile(filename, text, false, (format==HTML) ? QTextStream::UnicodeUTF8 : QTextStream::Locale); + closeProgressDialog(); + return true; + } + return false; +}; + +const bool CExportManager::saveKeyList(QPtrList& list, const Format format, const bool addText ) { + if (!list.count()) + return false; + + const QString filename = getSaveFileName(format); + if (filename.isEmpty()) { + return false; + } + + CSwordBackend::FilterOptions filterOptions = m_filterOptions; + filterOptions.footnotes = false; + filterOptions.strongNumbers = false; + filterOptions.morphTags = false; + filterOptions.lemmas = false; + filterOptions.scriptureReferences = false; + filterOptions.textualVariants = false; + + CHTMLExportRendering::Settings settings(addText); + util::scoped_ptr render ( + (format == HTML) + ? new CHTMLExportRendering(settings, m_displayOptions, filterOptions) + : new CPlainTextExportRendering(settings, m_displayOptions, filterOptions) + ); + + CTextRendering::KeyTree tree; + + setProgressRange(list.count()); + CTextRendering::KeyTreeItem::Settings itemSettings; + itemSettings.highlight = false; + + for (CSwordKey* k = list.first(); k && !progressWasCancelled(); k = list.next()) { + tree.append( new CTextRendering::KeyTreeItem(k->key(), k->module(), itemSettings) ); + incProgress(); + }; + + const QString text = render->renderKeyTree(tree); + + if (!progressWasCancelled()) { + CToolClass::savePlainFile(filename, text, false, (format==HTML) ? QTextStream::UnicodeUTF8 : QTextStream::Locale); + closeProgressDialog(); + return true; + } + return false; +}; + +const bool CExportManager::copyKey(CSwordKey* key, const Format format, const bool addText) { + if (!key) { + return false; + } + if (!key->module()) { + return false; + } + + CSwordBackend::FilterOptions filterOptions = m_filterOptions; + filterOptions.footnotes = false; + filterOptions.strongNumbers = false; + filterOptions.morphTags = false; + filterOptions.lemmas = false; + filterOptions.scriptureReferences = false; + filterOptions.textualVariants = false; + + CHTMLExportRendering::Settings settings(addText); + util::scoped_ptr render ( + (format == HTML) + ? new CHTMLExportRendering(settings, m_displayOptions, filterOptions) + : new CPlainTextExportRendering(settings, m_displayOptions, filterOptions) + ); + + QString text; + QString startKey; + QString stopKey; + + ListCSwordModuleInfo modules; + modules.append(key->module()); + + CSwordVerseKey *vk = dynamic_cast(key); + if (vk && vk->isBoundSet()) { + text = render->renderKeyRange( + QString::fromUtf8(vk->LowerBound()), + QString::fromUtf8(vk->UpperBound()), + modules + ); + } + else { //no range supported + text = render->renderSingleKey(key->key(), modules); + } + + KApplication::clipboard()->setText(text); + return true; +}; + +const bool CExportManager::copyKeyList(sword::ListKey* list, CSwordModuleInfo* module, const Format format, const bool addText) { + if (!list->Count()) + return false; + + CSwordBackend::FilterOptions filterOptions = m_filterOptions; + filterOptions.footnotes = false; + filterOptions.strongNumbers = false; + filterOptions.morphTags = false; + filterOptions.lemmas = false; + filterOptions.scriptureReferences = false; + filterOptions.textualVariants = false; + + CHTMLExportRendering::Settings settings(addText); + util::scoped_ptr render ( + (format == HTML) + ? new CHTMLExportRendering(settings, m_displayOptions, filterOptions) + : new CPlainTextExportRendering(settings, m_displayOptions, filterOptions) + ); + + CTextRendering::KeyTree tree; + CTextRendering::KeyTreeItem::Settings itemSettings; + itemSettings.highlight = false; + + *list = sword::TOP; + while (!list->Error() && !progressWasCancelled()) { + tree.append( new CTextRendering::KeyTreeItem(QString::fromLocal8Bit((const char*)(*list)) , module, itemSettings) ); + + (*list)++; + } + + const QString text = render->renderKeyTree(tree); + KApplication::clipboard()->setText(text); + return true; +}; + + +const bool CExportManager::copyKeyList(QPtrList& list, const Format format, const bool addText ) { + if (!list.count()) + return false; + + CSwordBackend::FilterOptions filterOptions = m_filterOptions; + filterOptions.footnotes = false; + filterOptions.strongNumbers = false; + filterOptions.morphTags = false; + filterOptions.lemmas = false; + filterOptions.scriptureReferences = false; + filterOptions.textualVariants = false; + + CHTMLExportRendering::Settings settings(addText); + util::scoped_ptr render ( + (format == HTML) + ? new CHTMLExportRendering(settings, m_displayOptions, filterOptions) + : new CPlainTextExportRendering(settings, m_displayOptions, filterOptions) + ); + + CTextRendering::KeyTree tree; + + CTextRendering::KeyTreeItem::Settings itemSettings; + itemSettings.highlight = false; + for (CSwordKey* k = list.first(); k && !progressWasCancelled(); k = list.next()) { + tree.append( new CTextRendering::KeyTreeItem(k->key(), k->module(), itemSettings) ); + incProgress(); + }; + + const QString text = render->renderKeyTree(tree); + KApplication::clipboard()->setText(text); + return true; +}; + +const bool CExportManager::printKeyList(sword::ListKey* list, CSwordModuleInfo* module, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions) { + CPrinter::KeyTreeItem::Settings settings; + CPrinter::KeyTree tree; + + QString startKey, stopKey; + setProgressRange(list->Count()); + + (*list) = sword::TOP; + while (!list->Error() && !progressWasCancelled()) { + sword::VerseKey* vk = dynamic_cast(list); + if (vk) { + startKey = QString::fromUtf8((const char*)(vk->LowerBound()) ); + stopKey = QString::fromUtf8((const char*)(vk->UpperBound()) ); + tree.append( new CPrinter::KeyTreeItem(startKey, stopKey, module, settings) ); + } + else { + startKey = QString::fromUtf8((const char*)*list); + tree.append( new CPrinter::KeyTreeItem(startKey, module, settings) ); + } + + (*list)++; + incProgress(); + } + + util::scoped_ptr printer(new CPrinter(0, displayOptions, filterOptions)); + + if (!progressWasCancelled()) { + printer->printKeyTree(tree); + closeProgressDialog(); + return true; + } + + return false; +}; + +const bool CExportManager::printKey( CSwordModuleInfo* module, const QString& startKey, const QString& stopKey, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions ) { + CPrinter::KeyTreeItem::Settings settings; + settings.keyRenderingFace = + displayOptions.verseNumbers + ? CPrinter::KeyTreeItem::Settings::SimpleKey + : CPrinter::KeyTreeItem::Settings::NoKey; + + CPrinter::KeyTree tree; + if (startKey != stopKey) { + tree.append( new CPrinter::KeyTreeItem(startKey, stopKey, module, settings) ); + } + else { + tree.append( new CPrinter::KeyTreeItem(startKey, module, settings) ); + } + + util::scoped_ptr printer(new CPrinter(0, displayOptions, filterOptions)); + printer->printKeyTree(tree); + return true; +} + +const bool CExportManager::printKey( CSwordKey* key, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions) { + CPrinter::KeyTreeItem::Settings settings; + settings.keyRenderingFace = + displayOptions.verseNumbers + ? CPrinter::KeyTreeItem::Settings::SimpleKey + : CPrinter::KeyTreeItem::Settings::NoKey; + + CPrinter::KeyTree tree; + tree.append( new CPrinter::KeyTreeItem(key->key(), key->module(), settings) ); + + util::scoped_ptr printer(new CPrinter(0, displayOptions, filterOptions)); + printer->printKeyTree(tree); + return true; +} + +/** Prints a key using the hyperlink created by CReferenceManager. */ +const bool CExportManager::printByHyperlink( const QString& hyperlink, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions ) { + QString moduleName; + QString keyName; + CReferenceManager::Type type; + + CReferenceManager::decodeHyperlink(hyperlink, moduleName, keyName, type); + if (moduleName.isEmpty()) { + moduleName = CReferenceManager::preferredModule(type); + } + + CPrinter::KeyTree tree; + CPrinter::KeyTreeItem::Settings settings; + settings.keyRenderingFace = + displayOptions.verseNumbers + ? CPrinter::KeyTreeItem::Settings::SimpleKey + : CPrinter::KeyTreeItem::Settings::NoKey; + + CSwordModuleInfo* module = backend()->findModuleByName(moduleName); + Q_ASSERT(module); + + if (module) { + //check if we have a range of entries or a single one + if ((module->type() == CSwordModuleInfo::Bible) || (module->type() == CSwordModuleInfo::Commentary)) { + sword::ListKey verses = sword::VerseKey().ParseVerseList((const char*)keyName.utf8(), "Genesis 1:1", true); + + for (int i = 0; i < verses.Count(); ++i) { + sword::VerseKey* element = dynamic_cast(verses.GetElement(i)); + if (element) { + const QString startKey = QString::fromUtf8(element->LowerBound().getText()); + const QString stopKey = QString::fromUtf8(element->UpperBound().getText()); + + tree.append( new CPrinter::KeyTreeItem(startKey, stopKey, module, settings) ); + } + else if (verses.GetElement(i)) { + const QString key = QString::fromUtf8(verses.GetElement(i)->getText()); + + tree.append( new CPrinter::KeyTreeItem(key, module, settings) ); + } + } + } + else { + tree.append( new CPrinter::KeyTreeItem(keyName, module, settings) ); + } + } + + util::scoped_ptr printer(new CPrinter(0, displayOptions, filterOptions)); + printer->printKeyTree(tree); + return true; +} + +const bool CExportManager::printKeyList(const QStringList& list,CSwordModuleInfo* module, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions) { + CPrinter::KeyTreeItem::Settings settings; + settings.keyRenderingFace = + displayOptions.verseNumbers + ? CPrinter::KeyTreeItem::Settings::SimpleKey + : CPrinter::KeyTreeItem::Settings::NoKey; + + CPrinter::KeyTree tree; + setProgressRange(list.count()); + + //ToDo: Fix that as soon as we use Qt > 3.1 + // const QStringList::const_iterator end = list.constEnd(); + const QStringList::const_iterator end = list.end(); + + //ToDo: Fix that as soon as we use Qt > 3.1 + // for (QStringList::const_iterator it = list.constBegin(); (it != end) && !progressWasCancelled(); ++it) { + + for (QStringList::const_iterator it = list.begin(); (it != end) && !progressWasCancelled(); ++it) { + tree.append( new CPrinter::KeyTreeItem(*it, module, settings) ); + + incProgress(); + } + + util::scoped_ptr printer(new CPrinter(0, displayOptions, filterOptions)); + + if (!progressWasCancelled()) { + printer->printKeyTree(tree); + closeProgressDialog(); + return true; + } + + return false; +} + +/** Returns the string for the filedialogs to show the correct files. */ +const QString CExportManager::filterString( const Format format ) { + switch (format) { + case HTML: + return i18n("*.html *.htm | HTML files\n *.* | All files (*.*)"); + case Text: + return i18n("*.txt | Text files\n *.* | All files (*.*)"); + default: + return i18n("All files (*.*)"); + } +} + +/** Returns a filename to save a file. */ +const QString CExportManager::getSaveFileName(const Format format) { + return KFileDialog::getSaveFileName(QString::null, filterString(format), 0, m_caption); +} + +/** Returns a string containing the linebreak for the current format. */ +const QString CExportManager::lineBreak(const Format format) { + if (static_cast(m_displayOptions.lineBreaks)) + return (format == HTML) ? QString::fromLatin1("
\n") : QString::fromLatin1("\n"); + + return QString::null; +} + +/** No descriptions */ +void CExportManager::setProgressRange( const int items ) { + if (QProgressDialog* dlg = progressDialog()) { + dlg->setTotalSteps(items); + dlg->setProgress(0); + dlg->setMinimumDuration(0); + dlg->show(); + // dlg->repaint(); + KApplication::kApplication()->processEvents(); //do not lock the GUI! + } +} + +/** Creates the progress dialog with the correct settings. */ +QProgressDialog* const CExportManager::progressDialog() { + if (!m_showProgress) { + return 0; + } + + if (!m_progressDialog) { + m_progressDialog = new QProgressDialog( m_caption, m_progressLabel, 1, 0, "progress", true ); + m_progressDialog->setCaption("BibleTime"); + } + + return m_progressDialog; +} + +/** Increments the progress by one item. */ +void CExportManager::incProgress() { + if (QProgressDialog* dlg = progressDialog()) { + dlg->setProgress( dlg->progress() + 1 ); + } +} + +/** No descriptions */ +const bool CExportManager::progressWasCancelled() { + if (QProgressDialog* dlg = progressDialog()) { + return dlg->wasCancelled(); + } + + return true; +} + +/** Closes the progress dialog immediatly. */ +void CExportManager::closeProgressDialog() { + if (QProgressDialog* dlg = progressDialog()) { + dlg->close(); + dlg->reset(); + } + + KApplication::kApplication()->processEvents(); //do not lock the GUI! +} diff --git a/bibletime/frontend/cexportmanager.h b/bibletime/frontend/cexportmanager.h new file mode 100644 index 0000000..cc654f6 --- /dev/null +++ b/bibletime/frontend/cexportmanager.h @@ -0,0 +1,100 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CEXPORTMANAGER_H +#define CEXPORTMANAGER_H + +//BibleTime includes +#include "backend/cswordbackend.h" +#include "cbtconfig.h" + +#include "util/cpointers.h" + +//Qt includes +#include +#include + +class ListKey; +class CSwordKey; +class CSwordModuleInfo; +class QProgressDialog; + +/** Contains the functions to export text to disk, clipboard or printer. + * @author The BibleTime team + */ +class CExportManager : CPointers { +public: + /** The format the export actions should have + */ + enum Format { + HTML, + Text + }; + + CExportManager(const QString& caption, const bool showProgress = true, const QString& progressLabel = QString::null, const CSwordBackend::FilterOptions filterOptions = CBTConfig::getFilterOptionDefaults(), const CSwordBackend::DisplayOptions displayOptions = CBTConfig::getDisplayOptionDefaults()); + + const bool saveKey(CSwordKey* key, const Format format, const bool addText); + const bool saveKeyList(sword::ListKey* list, CSwordModuleInfo* module, const Format format, const bool addText); + const bool saveKeyList(QPtrList& list, const Format format, const bool addText ); + + const bool copyKey(CSwordKey* key, const Format format, const bool addText); + const bool copyKeyList(sword::ListKey* list, CSwordModuleInfo* module, const Format format, const bool addText); + const bool copyKeyList(QPtrList& list, const Format format, const bool addText ); + + const bool printKey(CSwordKey* key, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions); + const bool printKey( CSwordModuleInfo* module, const QString& startKey, const QString& stopKey, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions ); +const bool printByHyperlink(const QString& hyperlink, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions); + const bool printKeyList(sword::ListKey* list, CSwordModuleInfo* module, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions); + const bool printKeyList(const QStringList& list,CSwordModuleInfo* module, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions); + +protected: // Protected methods + /** + * Returns the string for the filedialogs to show the correct files. + */ + const QString filterString( const Format format ); + /** + * Returns a filename to save a file. + */ + const QString getSaveFileName(const Format format); + /** + * Returns a string containing the linebreak for the current format. + */ + const QString lineBreak( const Format format ); + +private: + QString m_caption; + QString m_progressLabel; + bool m_showProgress; + CSwordBackend::FilterOptions m_filterOptions; + CSwordBackend::DisplayOptions m_displayOptions; + + QProgressDialog* m_progressDialog; + + /** + * Creates the progress dialog with the correct settings. + */ + QProgressDialog* const progressDialog(); + /** + * Returns the CSS string used in HTML pages. + */ + void setProgressRange( const int item ); + /** + * Increments the progress by one item. + */ + inline void incProgress(); + const bool progressWasCancelled(); + /** + * Closes the progress dialog immediatly. + */ + void closeProgressDialog(); +}; + +#endif diff --git a/bibletime/frontend/cinfodisplay.cpp b/bibletime/frontend/cinfodisplay.cpp new file mode 100644 index 0000000..255a392 --- /dev/null +++ b/bibletime/frontend/cinfodisplay.cpp @@ -0,0 +1,462 @@ +// +// C++ Implementation: cinfodisplay +// +// Description: +// +// +// Author: The BibleTime team , (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +//BibleTime includes +#include "cinfodisplay.h" + +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordkey.h" +#include "backend/cswordversekey.h" +#include "backend/creferencemanager.h" +#include "backend/cdisplaytemplatemgr.h" + +#include "frontend/cbtconfig.h" +#include "frontend/crossrefrendering.h" + +#include "frontend/display/cdisplay.h" +#include "frontend/display/creaddisplay.h" +#include "frontend/display/chtmlreaddisplay.h" + +#include "util/scoped_resource.h" + +//Sword includes +#include + +//Qt includes +#include +#include +#include +#include + +//KDE includes +#include +#include + + +using namespace Rendering; +using namespace sword; + +namespace InfoDisplay { + + CInfoDisplay::CInfoDisplay(QWidget *parent, const char *name) +: QWidget(parent, name) { + QVBoxLayout* layout = new QVBoxLayout(this); + QLabel* headingLabel = new QLabel(i18n("Mag (\"shift\" to lock)"),this); + headingLabel->setMargin(5); + + m_htmlPart = CDisplay::createReadInstance(0, this); + m_htmlPart->setMouseTracking(false); //we don't want strong/lemma/note mouse infos + KStdAction::copy(m_htmlPart->connectionsProxy(), SLOT(copySelection()), 0, "copyMagSelection"); + + connect( + m_htmlPart->connectionsProxy(), + SIGNAL(referenceClicked(const QString&, const QString&)), + SLOT(lookup(const QString&, const QString&)) + ); + + layout->addWidget(headingLabel); + layout->addWidget(m_htmlPart->view()); + } + + + CInfoDisplay::~CInfoDisplay() {} + + void CInfoDisplay::lookup(const QString &mod_name, const QString &key_text) { + qWarning("%s %s", mod_name.ascii(), key_text.ascii()); + CSwordModuleInfo* m = CPointers::backend()->findModuleByName(mod_name); + Q_ASSERT(m); + if (!m) + return; + + util::scoped_ptr key( CSwordKey::createInstance(m) ); + key->key( key_text ); + + CDisplayTemplateMgr* mgr = CPointers::displayTemplateManager(); + CDisplayTemplateMgr::Settings settings; + settings.pageCSS_ID = "infodisplay"; + // settings.langAbbrev = ""; + QString content = mgr->fillTemplate(CBTConfig::get + (CBTConfig::displayStyle), key->renderedText(), settings); + + // qWarning("setting text:\n%s", content.latin1()); + + m_htmlPart->setText(content); // scroll to top + CHTMLReadDisplay *d = dynamic_cast(m_htmlPart); + d->view()->ensureVisible(0, 0); + + } + + void CInfoDisplay::setInfo(const InfoType type, const QString& data) { + ListInfoData list; + list.append( qMakePair(type, data) ); + + setInfo(list); + } + + + void CInfoDisplay::setInfo(const ListInfoData& list) { + //if the widget is hidden it would be inefficient to render and display the data + if (!isVisible()) { + return; + } + + if (list.count() == 0) { + m_htmlPart->setText(""); + return; + } + + QString text; + + ListInfoData::const_iterator end = list.end(); + for (ListInfoData::const_iterator it = list.begin(); it != end; ++it) { + switch ( (*it).first ) { + case Lemma: + text.append( decodeStrongs( (*it).second ) ); + continue; + case Morph: + text.append( decodeMorph( (*it).second ) ); + continue; + case CrossReference: + text.append( decodeCrossReference( (*it).second ) ); + continue; + case Footnote: + text.append( decodeFootnote( (*it).second ) ); + continue; + case WordTranslation: + text.append( getWordTranslation( (*it).second ) ); + continue; + case WordGloss: + //text.append( getWordTranslation( (*it).second ) ); + continue; + case Abbreviation: + text.append( decodeAbbreviation( (*it).second ) ); + continue; + default: + continue; + }; + } + + CDisplayTemplateMgr* mgr = CPointers::displayTemplateManager(); + CDisplayTemplateMgr::Settings settings; + settings.pageCSS_ID = "infodisplay"; + // settings.langAbbrev = ""; + QString content = mgr->fillTemplate(CBTConfig::get + (CBTConfig::displayStyle), text, settings); + + // qWarning("setting text:\n%s", content.latin1()); + + m_htmlPart->setText(content); + } + + + const QString CInfoDisplay::decodeAbbreviation( const QString& data ) { + // QStringList strongs = QStringList::split("|", data); + QString ret; + QString text = data; + + ret.append( + QString("

%1: %2

%3

") + .arg(i18n("Abbreviation")) + .arg("text") + .arg(text)); + + return ret; + } + + const QString CInfoDisplay::decodeCrossReference( const QString& data ) { + Q_ASSERT(!data.isEmpty()); + if (data.isEmpty()) { + return QString("

%1

") + .arg(i18n("Cross references")); + } + + // qWarning("setting crossref %s", data.latin1()); + + CSwordBackend::DisplayOptions dispOpts; + dispOpts.lineBreaks = false; + dispOpts.verseNumbers = true; + + CSwordBackend::FilterOptions filterOpts; + filterOpts.headings = false; + filterOpts.strongNumbers = false; + filterOpts.morphTags = false; + filterOpts.lemmas = false; + filterOpts.footnotes = false; + filterOpts.scriptureReferences = false; + + CrossRefRendering renderer(dispOpts, filterOpts); + CTextRendering::KeyTree tree; + + // const bool isBible = true; + CSwordModuleInfo* module = CBTConfig::get + (CBTConfig::standardBible); + + //a prefixed module gives the module to look into + QRegExp re("^[^ ]+:"); + // re.setMinimal(true); + int pos = re.search(data,0); + if (pos != -1) { + pos += re.matchedLength()-1; + } + + if (pos > 0) { + const QString moduleName = data.left(pos); + // qWarning("found module %s", moduleName.latin1()); + module = CPointers::backend()->findModuleByName(moduleName); + if (!module) { + module = CBTConfig::get + (CBTConfig::standardBible); + } + // Q_ASSERT(module); + } + + Q_ASSERT(module); + CTextRendering::KeyTreeItem::Settings settings ( + false, + CTextRendering::KeyTreeItem::Settings::CompleteShort + ); + + if (module && (module->type() == CSwordModuleInfo::Bible)) { + VerseKey vk; + sword::ListKey refs = vk.ParseVerseList((const char*)data.mid((pos == -1) ? 0 : pos+1).utf8(), "Gen 1:1", true); + + for (int i = 0; i < refs.Count(); ++i) { + SWKey* key = refs.getElement(i); + Q_ASSERT(key); + VerseKey* vk = dynamic_cast(key); + + CTextRendering::KeyTreeItem* i = 0; + if (vk && vk->isBoundSet()) { //render a range of keys + i = new CTextRendering::KeyTreeItem( + QString::fromUtf8(vk->LowerBound().getText()), + QString::fromUtf8(vk->UpperBound().getText()), + module, + settings + ); + } + else { + i = new CTextRendering::KeyTreeItem( + QString::fromUtf8(key->getText()), + QString::fromUtf8(key->getText()), + module, + settings + ); + } + + Q_ASSERT(i); + + tree.append( i ); + } + } + else if (module) { + CTextRendering::KeyTreeItem* i = new CTextRendering::KeyTreeItem( + data.mid((pos == -1) ? 0 : pos+1), + module, + settings + ); + tree.append( i ); + } + + // qWarning("rendered the tree: %s", renderer.renderKeyTree(tree).latin1()); + //spanns containing rtl text need dir=rtl on their parent tag to be aligned properly + return QString("

%1

%3
") + .arg(i18n("Cross references")) + .arg(module ? ((module->textDirection() == CSwordModuleInfo::LeftToRight) ? "ltr" : "rtl") : "") + .arg(renderer.renderKeyTree(tree)); + } + + /*! + \fn CInfoDisplay::decodeFootnote( const QString& data ) + */ + const QString CInfoDisplay::decodeFootnote( const QString& data ) { + QStringList list = QStringList::split("/", data); + Q_ASSERT(list.count() >= 3); + if (!list.count()) { + return QString::null; + } + + const QString modulename = list.first(); + const QString swordFootnote = list.last(); + + // remove the first and the last and then rejoin it to get a key + list.pop_back(); list.pop_front(); + const QString keyname = list.join("/"); + + CSwordModuleInfo* module = CPointers::backend()->findModuleByName(modulename); + if (!module) { + return QString::null; + } + + util::scoped_ptr key( CSwordKey::createInstance(module) ); + key->key(keyname); + key->renderedText(); //force entryAttributes + + const char* note = module->module()->getEntryAttributes()["Footnote"][swordFootnote.latin1()]["body"].c_str(); + + QString text = module->isUnicode() ? QString::fromUtf8(note) : QString(note); + text = QString::fromUtf8(module->module()->RenderText( + module->isUnicode() + ? (const char*)text.utf8() + : (const char*)text.latin1() + )); + + return QString("

%1

%2

") + .arg(i18n("Footnote")) + .arg(text); + } + + const QString CInfoDisplay::decodeStrongs( const QString& data ) { + QStringList strongs = QStringList::split("|", data); + QString ret; + + QStringList::const_iterator end = strongs.end(); + for (QStringList::const_iterator it = strongs.begin(); it != end; ++it) { + CSwordModuleInfo* const module = CBTConfig::get + ( + ((*it).left(1) == QString("H")) ? + CBTConfig::standardHebrewStrongsLexicon : + CBTConfig::standardGreekStrongsLexicon + ); + + QString text; + if (module) { + util::scoped_ptr key( CSwordKey::createInstance(module) ); + key->key( (*it).mid(1) ); //skip H or G (language sign), will have to change later if we have better modules + text = key->renderedText(); + } + //if the module could not be found just display an empty lemma info + + ret.append( + QString("

%1: %2

%3

") + .arg(i18n("Strongs")) + .arg(*it) + .arg(text) + ); + } + + return ret; + } + + const QString CInfoDisplay::decodeMorph( const QString& data ) { + QStringList morphs = QStringList::split("|", data); + QString ret; + + for (QStringList::iterator it = morphs.begin(); it != morphs.end(); ++it) { + CSwordModuleInfo* module = 0; + bool skipFirstChar = false; + QString value = ""; + QString valueClass = ""; + + int valStart = (*it).find(':'); + if (valStart > -1) { + valueClass = (*it).mid(0, valStart); + module = CPointers::backend()->findModuleByName( valueClass ); + Q_ASSERT(module); + } + value = (*it).mid(valStart+1); //works for prepended module and without (-1 +1 == 0). + + // if we don't have a class assigned or desired one isn't installed... + if (!module) { + // Morphs usually don't have [GH] prepended, but some old OLB + // codes do. We should check if we're digit after first char + // to better guess this. + // No need to check len, if at(1) is > len QChar::null is + // returned which is ok to .isDigit() + if (value.at(1).isDigit()) { + switch (value.at(0).latin1()) { + case 'G': + module = CBTConfig::get + (CBTConfig::standardGreekMorphLexicon); + skipFirstChar = true; + break; + case 'H': + module = CBTConfig::get + (CBTConfig::standardHebrewMorphLexicon); + skipFirstChar = true; + break; + default: + skipFirstChar = false; + //TODO: we can't tell here if it's a greek or hebrew moprh code, that's a problem we have to solve + // module = CBTConfig::get(CBTConfig::standardGreekMorphLexicon); + break; + } + } + //if it is still not set use the default + if (!module) { + module = CBTConfig::get + (CBTConfig::standardGreekMorphLexicon); + } + } + + QString text; + Q_ASSERT(module); + if (module) { + util::scoped_ptr key( CSwordKey::createInstance(module) ); + + //skip H or G (language sign) if we have to skip it + const bool isOk = key->key( skipFirstChar ? value.mid(1) : value ); + Q_ASSERT(isOk); + if (!isOk) { //try to use the other morph lexicon, because this one failed with the current morph code + key->module(CBTConfig::get + (CBTConfig::standardHebrewMorphLexicon)); + key->key( skipFirstChar ? value.mid(1) : value ); + } + + text = key->renderedText(); + } + + //if the module wasn't found just display an empty morph info + ret.append( QString("

%1: %2

%3

") + .arg(i18n("Morphology")) + .arg(value) + .arg(text) + ); + } + + return ret; + } + + const QString CInfoDisplay::getWordTranslation( const QString& data ) { + CSwordModuleInfo* const module = CBTConfig::get + (CBTConfig::standardLexicon); + if (!module) { + return QString::null; + } + + util::scoped_ptr key( CSwordKey::createInstance(module) ); + key->key( data ); + if (key->key().upper() != data.upper()) { //key not present in the lexicon + return QString::null; + } + + QString ret = QString("

%1: %2

%3

") + .arg(i18n("Word lookup")) + .arg(data) + .arg(key->renderedText()); + + return ret; + } + + + /*! + \fn CInfoDisplay::clearInfo() + */ + void CInfoDisplay::clearInfo() { + CDisplayTemplateMgr* tmgr = CPointers::displayTemplateManager(); + CDisplayTemplateMgr::Settings settings; + settings.pageCSS_ID = "infodisplay"; + + m_htmlPart->setText( tmgr->fillTemplate(CBTConfig::get + (CBTConfig::displayStyle), QString::null, settings) ); + } + +} //end of namespace InfoDisplay diff --git a/bibletime/frontend/cinfodisplay.h b/bibletime/frontend/cinfodisplay.h new file mode 100644 index 0000000..789aab1 --- /dev/null +++ b/bibletime/frontend/cinfodisplay.h @@ -0,0 +1,72 @@ +// +// C++ Interface: cinfodisplay +// +// Description: +// +// +// Author: The BibleTime team , (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +#ifndef CINFODISPLAY_H +#define CINFODISPLAY_H + +//Backend +#include "backend/ctextrendering.h" + +//Qt includes +#include +#include +#include + +//class forward declarations +class CReadDisplay; + +namespace InfoDisplay { + + /** + @author The BibleTime team + */ +class CInfoDisplay : public QWidget { + Q_OBJECT +public: + enum InfoType { + Abbreviation, + CrossReference, + Footnote, + Lemma, + Morph, + WordTranslation, + WordGloss + }; + + typedef QPair InfoData; + typedef QValueList ListInfoData; + + CInfoDisplay(QWidget *parent = 0, const char *name = 0); + virtual ~CInfoDisplay(); + + void setInfo(const InfoType, const QString& data); + void setInfo(const ListInfoData&); + void clearInfo(); + +protected: + const QString decodeAbbreviation( const QString& data ); + const QString decodeCrossReference( const QString& data ); + const QString decodeFootnote( const QString& data ); + const QString decodeStrongs( const QString& data ); + const QString decodeMorph( const QString& data ); + const QString getWordTranslation( const QString& data ); + +protected slots: + void lookup(const QString &, const QString &); + +private: + CReadDisplay* m_htmlPart; + }; + +} //end of InfoDisplay namespace + +#endif diff --git a/bibletime/frontend/cinputdialog.cpp b/bibletime/frontend/cinputdialog.cpp new file mode 100644 index 0000000..1d27a6b --- /dev/null +++ b/bibletime/frontend/cinputdialog.cpp @@ -0,0 +1,94 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//own includes +#include "cinputdialog.h" + +//Qt includes +#include +#include +#include +#include +#include + +//KDE includes +#include +#include + +CInputDialog::CInputDialog(const QString& caption, const QString& description, const QString& text, QWidget *parent, const char *name, const bool modal ) : KDialog(parent,name,modal) { + setPlainCaption(caption); + + QVBoxLayout* topLayout = new QVBoxLayout(this, 5,5); + + QLabel* l = new QLabel(description, this); + topLayout->addWidget(l); + + topLayout->addSpacing(10); + + m_editWidget = new QTextEdit(this, "edit widget"); + m_editWidget->setWordWrap( QTextEdit::WidgetWidth ); + m_editWidget->setText(text); + if (!text.isEmpty()) + m_editWidget->selectAll(); + + topLayout->addWidget(m_editWidget); + + KSeparator* separator = new KSeparator(KSeparator::HLine, this); + topLayout->addWidget(separator); + + QHBoxLayout* buttonLayout = new QHBoxLayout(topLayout); + + buttonLayout->addStretch(2); + + QPushButton* cancel = new QPushButton(this); + cancel->setText(i18n("&Cancel")); + connect(cancel, SIGNAL(clicked()), SLOT(reject())); + buttonLayout->addWidget(cancel,1); + + buttonLayout->addSpacing(15); + + QPushButton* clear = new QPushButton(this); + clear->setText(i18n("C&lear")); + connect(clear, SIGNAL(clicked()),m_editWidget, SLOT(clear())); + buttonLayout->addWidget(clear,1); + + buttonLayout->addSpacing(15); + + QPushButton* ok = new QPushButton(this); + ok->setText(i18n("&Ok")); + connect(ok, SIGNAL(clicked()), SLOT(accept())); + buttonLayout->addWidget(ok,1); + + m_editWidget->setFocus(); +} + +/** Returns the text entered at the moment. */ +const QString CInputDialog::text() { + return m_editWidget->text(); +} + +/** A static function to get some using CInputDialog. */ +const QString CInputDialog::getText( const QString& caption, const QString& description, const QString& text, bool* ok, QWidget* parent, bool modal) { + CInputDialog* dlg = new CInputDialog(caption, description, text, parent, "", modal); + QString ret = QString::null; + + const bool isOk = (dlg->exec() == CInputDialog::Accepted); + if (isOk) { + ret = dlg->text(); + } + + if (ok) { //change the ok param to return the value + *ok = isOk; + } + + delete dlg; + return ret; +} diff --git a/bibletime/frontend/cinputdialog.h b/bibletime/frontend/cinputdialog.h new file mode 100644 index 0000000..d4b0812 --- /dev/null +++ b/bibletime/frontend/cinputdialog.h @@ -0,0 +1,43 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CINPUTDIALOG_H +#define CINPUTDIALOG_H + +//KDE includes +#include + +class QTextEdit; +class QWidget; + +/** This is a small input dialog with + * a multiline edit for the text input. + * @author The BibleTime team + */ +class CInputDialog : public KDialog { + Q_OBJECT +public: + CInputDialog(const QString& caption, const QString& description, const QString& text, QWidget *parent=0, const char *name=0, const bool modal = true); + /** + * A static function to get some using CInputDialog. + */ + static const QString getText( const QString& caption, const QString& description, const QString& text = QString::null, bool* ok = 0, QWidget* parent = 0, bool modal = true); + /** + * Returns the text entered at the moment. + */ + const QString text(); + // ~CInputDialog(); + +private: + QTextEdit* m_editWidget; +}; + +#endif diff --git a/bibletime/frontend/cmanageindiceswidget.cpp b/bibletime/frontend/cmanageindiceswidget.cpp new file mode 100644 index 0000000..1b861b4 --- /dev/null +++ b/bibletime/frontend/cmanageindiceswidget.cpp @@ -0,0 +1,193 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cmanageindiceswidget.h" + +#include "cmoduleindexdialog.h" + +#include "cbtconfig.h" + +#include "util/ctoolclass.h" +#include "util/cresmgr.h" +#include "util/cpointers.h" + +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordbackend.h" + +//Qt includes +#include +#include +#include +#include +#include +#include +#include +#include + +//KDE includes +#include +#include +#include + +namespace BookshelfManager { + +/** Constructor */ +CManageIndicesWidget::CManageIndicesWidget(QWidget* parent, const char* name) : + ManageIndicesForm(parent, name) { + + initView(); + populateModuleList(); +}; + +CManageIndicesWidget::~CManageIndicesWidget() +{ + CBTConfig::set( CBTConfig::autoDeleteOrphanedIndices, m_autoDeleteOrphanedIndicesBox->isChecked() ); + +} + +/** Initializes the look and feel of this page */ +void CManageIndicesWidget::initView() +{ + // Set description label + QVBoxLayout* box = new QVBoxLayout(m_labelFrame, 0, 0); + QLabel* mainLabel = CToolClass::explanationLabel(m_labelFrame, + i18n("Manage module search indices"), + i18n("You can use the list below to create and/or delete search indices for your installed works.")); + box->addWidget(mainLabel); + + // configure the list view + m_moduleList->addColumn(i18n("Module")); + m_moduleList->addColumn(i18n("Index size")); + m_moduleList->setRootIsDecorated(true); + m_moduleList->setColumnWidth(0, 150); + m_moduleList->setColumnAlignment(1, Qt::AlignRight); + m_moduleList->setSorting( -1 ); + + m_autoDeleteOrphanedIndicesBox->setChecked( CBTConfig::get( CBTConfig::autoDeleteOrphanedIndices ) ); + + // icons for our buttons + m_createIndicesButton->setIconSet(SmallIcon("folder_new", 16)); + m_deleteIndicesButton->setIconSet(SmallIcon("remove", 16)); + + // connect our signals/slots + connect(m_createIndicesButton, SIGNAL(clicked()), this, SLOT(createIndices())); + connect(m_deleteIndicesButton, SIGNAL(clicked()), this, SLOT(deleteIndices())); +} + +/** Populates the module list with installed modules and orphaned indices */ +void CManageIndicesWidget::populateModuleList() { + m_moduleList->clear(); + + // populate installed modules + m_modsWithIndices = new QCheckListItem(m_moduleList, i18n("Modules with indices"), + QCheckListItem::CheckBoxController); + m_modsWithIndices->setOpen(true); + + m_modsWithoutIndices = new QCheckListItem(m_moduleList, i18n("Modules without indices"), + QCheckListItem::CheckBoxController); + m_modsWithoutIndices->setOpen(true); + + ListCSwordModuleInfo& modules = CPointers::backend()->moduleList(); + ListCSwordModuleInfo::iterator end_it = modules.end(); + for (ListCSwordModuleInfo::iterator it = modules.begin(); it != end_it; ++it) { + QCheckListItem* item = 0; + + if ((*it)->hasIndex()) { + item = new QCheckListItem(m_modsWithIndices, (*it)->name(), + QCheckListItem::CheckBox); + item->setText(1, QString("%1 ").arg((*it)->indexSize() / 1024) + i18n("KiB")); + } + else { + item = new QCheckListItem(m_modsWithoutIndices, (*it)->name(), + QCheckListItem::CheckBox); + item->setText(1, QString("0 ") + i18n("KiB")); + } + } +} + +/** Creates indices for selected modules if no index currently exists */ +void CManageIndicesWidget::createIndices() +{ + QCheckListItem* top = m_modsWithoutIndices; + bool indicesCreated = false; + QCheckListItem* item = (QCheckListItem*)top->firstChild(); + + ListCSwordModuleInfo moduleList; + while (item) { + if (item->isOn()) { + CSwordModuleInfo* module = + CPointers::backend()->findModuleByName(item->text().utf8()); + + + if (module) { + moduleList.append( module ); + indicesCreated = true; + } + } + item = (QCheckListItem*)item->nextSibling(); + } + + //Shows the progress dialog + if (indicesCreated) { + CModuleIndexDialog::getInstance()->indexAllModules( moduleList ); + populateModuleList(); + } +} + +/** Deletes indices for selected modules and selected orphans */ +void CManageIndicesWidget::deleteIndices() +{ + // delete installed module indices + QCheckListItem* top = m_modsWithIndices; + bool indicesDeleted = false; + QCheckListItem* item = (QCheckListItem*)top->firstChild(); + while (item) { + if (item->isOn()) { + CSwordModuleInfo* module = + CPointers::backend()->findModuleByName(item->text().utf8()); + if (module) { + CSwordModuleInfo::deleteIndexForModule( module->name() ); + indicesDeleted = true; + } + } + item = (QCheckListItem*)item->nextSibling(); + } + + // repopulate the list if an action was taken + if (indicesDeleted) { + populateModuleList(); + } +} + +void CManageIndicesWidget::deleteOrphanedIndices() +{ + QDir dir(CSwordModuleInfo::getGlobalBaseIndexLocation()); + dir.setFilter(QDir::Dirs); + CSwordModuleInfo* module; + + for (unsigned int i = 0; i < dir.count(); i++) { + if (dir[i] != "." && dir[i] != "..") { + if (module = CPointers::backend()->findModuleByName( dir[i] ) ) { //mod exists + if (!module->hasIndex()){ //index files found, but wrong version etc. + CSwordModuleInfo::deleteIndexForModule( dir[i] ); + } + } + else{ //no module exists + if (CBTConfig::get( CBTConfig::autoDeleteOrphanedIndices ) ){ + CSwordModuleInfo::deleteIndexForModule( dir[i] ); + } + } + } + } +} + + +} diff --git a/bibletime/frontend/cmanageindiceswidget.h b/bibletime/frontend/cmanageindiceswidget.h new file mode 100644 index 0000000..47d9cd7 --- /dev/null +++ b/bibletime/frontend/cmanageindiceswidget.h @@ -0,0 +1,77 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CMANAGEINDICESWIDGET_H +#define CMANAGEINDICESWIDGET_H + +#include "frontend/manageindicesform.h" // uic generated + +#include + +class QCheckListItem; + +namespace BookshelfManager { + +/** +* This class encapsulates the "Manage search indices" page of the Bookshelf +* Manager. It allows for creation and deletion of search indicies for each +* installed module. It also allows for deletion of orphaned indices. +*/ +class CManageIndicesWidget : public ManageIndicesForm +{ + Q_OBJECT + +public: + /** + * Constructor + */ + CManageIndicesWidget(QWidget* parent, const char* name = 0); + + /** + * Destructor + */ + ~CManageIndicesWidget(); + +protected: + /** + * Initializes the look and feel of this page + */ + void initView(); + /** + * Populates the module list with installed modules and orphaned indices + */ + void populateModuleList(); + + // member variables + QCheckListItem* m_modsWithIndices; + QCheckListItem* m_modsWithoutIndices; + +public slots: + /** + * Creates indices for selected modules if no index currently exists + */ + void createIndices(); + /** + * Deletes indices for selected modules + */ + void deleteIndices(); + +public: + /** + * Deletes orphaned indices if the autoDeleteOrphanedIndices is true + * Always deletes indices of existing modules where hasIndex() returns false + */ + static void deleteOrphanedIndices(); +}; + +} + +#endif diff --git a/bibletime/frontend/cmdiarea.cpp b/bibletime/frontend/cmdiarea.cpp new file mode 100644 index 0000000..1584466 --- /dev/null +++ b/bibletime/frontend/cmdiarea.cpp @@ -0,0 +1,358 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cmdiarea.h" +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordversekey.h" + +#include "frontend/displaywindow/cdisplaywindow.h" +#include "frontend/keychooser/ckeychooser.h" + +#include "config.h" + +//KDE includes +#include +#include +#include + +//QT includes +#include +#include +#include +#include +#if QT_VERSION < 0x030200 +//We need this to close all windows with Qt < 3.2 +#include +#endif + + +CMDIArea::CMDIArea(QWidget *parent, const char *name ) +: QWorkspace(parent, name), +m_guiOption(Nothing), +m_childEvent(false), +m_appCaption(QString::null) { + initView(); + initConnections(); + readSettings(); +} + + +/** Initializes the view of the MDI area */ +void CMDIArea::initView() { + setPaletteBackgroundColor( parentWidget()->paletteBackgroundColor() ); //work around a KDE bug (IMHO was in KDE 2.x) +} + +/** Initilizes the connectiosn to SIGNALS */ +void CMDIArea::initConnections() { + connect(this, SIGNAL(windowActivated(QWidget*)), + this, SLOT(slotClientActivated(QWidget*))); +} + +/** Called whan a client window was activated */ +void CMDIArea::slotClientActivated(QWidget* client) { + if (!client || !isUpdatesEnabled()) { + return; + } + + CDisplayWindow* sp = dynamic_cast(client); + Q_ASSERT(sp); + if (!sp || !sp->isReady()) { + return; + } + + QWidgetList windows = windowList(); + for ( QWidget* w = windows.first(); w; w = windows.next() ) { + //Don't use!! It would disable accel enabling for the active window, see CDisplayWindow::windowActivated + /* if (w == client) + continue; + */ + + CDisplayWindow* window = dynamic_cast(w); + window->windowActivated( (window == sp) ? true : false); + } + + emit sigSetToplevelCaption( ( m_appCaption = client->caption().stripWhiteSpace() ) ); +} + +/** Reimplementation. Used to make use of the fixedGUIOption part. */ +void CMDIArea::childEvent( QChildEvent * e ) { + QWorkspace::childEvent(e); + + if ( m_childEvent || !e) { + return; + } + + m_childEvent = true; + + if (!windowList().count()) { + m_appCaption = QString::null; + emit sigSetToplevelCaption( KApplication::kApplication()->makeStdCaption(m_appCaption) ); + emit sigLastPresenterClosed(); + } + + if ((e->inserted() || e->removed()) ) { + if (e->inserted() && e->child() && e->child()->inherits("CDisplayWindow")) { + e->child()->installEventFilter(this); //make sure we catch the events of the new window + } + else if (e->removed() && e->child() && e->child()->inherits("CDisplayWindow")) { + e->child()->removeEventFilter(this); //make sure we catch the events of the new window + } + + triggerWindowUpdate(); + } + + m_childEvent = false; +} + +/** Reimplementation */ +void CMDIArea::resizeEvent(QResizeEvent* e) { + QWorkspace::resizeEvent(e); + + if (isUpdatesEnabled()) { + triggerWindowUpdate(); + }; +} + +/** */ +void CMDIArea::saveSettings() {} + +/** */ +void CMDIArea::readSettings() {} + +/** Deletes all the presenters in the MDI area. */ +void CMDIArea::deleteAll() { +#if QT_VERSION >= 0x030200 + closeAllWindows(); +#else + QWidgetListIt it(windowList()); + while (it.current() != 0){ + it.current()->close(); + ++it; + } +#endif +} + +/** Enable / disable autoCascading */ +void CMDIArea::setGUIOption( const MDIOption& newOption ) { + //now do the initial action + m_guiOption = newOption; + + triggerWindowUpdate(); +} + +/** */ +void CMDIArea::myTileVertical() { + if (!isUpdatesEnabled() || !usableWindowList().count() ) { + return; + } + + QPtrList windows = usableWindowList(); + + if ((windows.count() == 1) && windows.at(0)) { + m_appCaption = windows.at(0)->caption(); + windows.at(0)->showMaximized(); + } + else { + QWidget* active = activeWindow(); + QWorkspace::tile(); + active->setFocus(); + } +} + +void CMDIArea::myTileHorizontal() { + if (!isUpdatesEnabled() || !usableWindowList().count() ) { + return; + } + + QPtrList windows = usableWindowList(); + + if ((windows.count() == 1) && windows.at(0)) { + m_appCaption = windows.at(0)->caption(); + windows.at(0)/*->parentWidget()*/->showMaximized(); + } + else { + + QWidget* active = activeWindow(); + if (active->isMaximized()) { + active->showNormal(); + } + + blockSignals(true); + setUpdatesEnabled(false); + int heightForEach = height() / windows.count(); + int y = 0; + for ( int i = 0; i < int(windows.count()); ++i ) { + QWidget *window = windows.at(i); + window->parentWidget()->showNormal(); + qApp->sendPostedEvents( 0, QEvent::ShowNormal ); + + const int preferredHeight = window->minimumHeight() + window->parentWidget()->baseSize().height(); + const int actHeight = QMAX(heightForEach, preferredHeight); + + window->parentWidget()->setGeometry( 0, y, width(), actHeight ); + y += actHeight; + } + + setUpdatesEnabled(true); + active->setFocus(); + blockSignals(false); + } + +} + +/** */ +void CMDIArea::myCascade() { + if (!isUpdatesEnabled() || !usableWindowList().count() ) { + return; + } + + QPtrList windows = usableWindowList(); + if ( !windows.count() ) { + return; + } + + if ((windows.count() == 1) && windows.at(0)) { + m_appCaption = windows.at(0)->caption(); + windows.at(0)->parentWidget()->showMaximized(); + } + else { + const int offsetX = 40; + const int offsetY = 40; + const int windowWidth = width() - (windows.count()-1)*offsetX; + const int windowHeight = height() - (windows.count()-1)*offsetY; + + int x = 0; + int y = 0; + + QWidget* const active = activeWindow(); + if (active->isMaximized()) { + active->showNormal(); + } + + blockSignals(true); + setUpdatesEnabled(false); + + for (int i(0); i < int(windows.count()); ++i) { + QWidget* window = windows.at(i); + if (window == active) { //leave out the active window which should be the top window + continue; + } + + window->setUpdatesEnabled(false); + + window->parentWidget()->raise(); //make it the on-top-of-window-stack window to make sure they're in the right order + window->parentWidget()->setGeometry(x, y, windowWidth, windowHeight); + x += offsetX; + y += offsetY; + + window->setUpdatesEnabled(true); + } + + setUpdatesEnabled(true); + + active->parentWidget()->setGeometry(x, y, windowWidth, windowHeight); + active->parentWidget()->raise(); + active->setActiveWindow(); + + blockSignals(false); + } +} + +/*! + \fn CMDIArea::emitWindowCaptionChanged() + */ +void CMDIArea::emitWindowCaptionChanged() { + if (activeWindow()) { + m_appCaption = activeWindow()->caption(); + } + + emit sigSetToplevelCaption(currentApplicationCaption()); +} + + +/*! + \fn CMDIArea::usableWindowsCount() + */ +QPtrList CMDIArea::usableWindowList() { + QPtrList ret; + + QWidgetList windows = windowList(); + for ( QWidget* w = windows.first(); w; w = windows.next() ) { + if (w->isMinimized() || w->isHidden()) { //not usable for us + continue; + } + + ret.append( w ); + } + + return ret; +} + +bool CMDIArea::eventFilter( QObject *o, QEvent *e ) { + Q_ASSERT(o); + Q_ASSERT(e); + + QWidget* w = dynamic_cast( o ); + bool ret = QWorkspace::eventFilter(o,e); + +#if QT_VERSION >= 0x030300 + if ( w && (e->type() == QEvent::WindowStateChange) ) { + if (o->inherits("CDisplayWindow") && ((w->windowState() & Qt::WindowMinimized) || w->isHidden())) { //window was minimized, trigger a tile/cascade update if necessary + triggerWindowUpdate(); + ret = false; + } + else if (!o->inherits("CDisplayWindow")){ + qDebug("CMDIArea: bad mdi child classname: %s", o->className()); + //o->dumpObjectInfo(); + //o->dumpObjectTree(); + } + } +#else + if (w && o->inherits("CDisplayWindow")){ + if ((e->type() == QEvent::ShowMinimized) || + (e->type() == QEvent::Hide)){ + triggerWindowUpdate(); + ret = false; + } + } + else if (!o->inherits("CDisplayWindow")){ + qDebug("bad mdi child classname: %s", o->className()); + //o->dumpObjectInfo(); + //o->dumpObjectTree(); + } +#endif + return ret; // standard event processing +} + + +/*! + \fn CMDIArea::triggerWindowUpdate() + */ +void CMDIArea::triggerWindowUpdate() { + qDebug("CMDIArea::triggerWindowUpfdate"); + + if (isUpdatesEnabled() && usableWindowList().count() ) { + switch (m_guiOption) { + case autoTileVertical: + QTimer::singleShot(0, this, SLOT(myTileVertical())); + break; + case autoTileHorizontal: + QTimer::singleShot(0, this, SLOT(myTileHorizontal())); + break; + case autoCascade: + QTimer::singleShot(0, this, SLOT(myCascade())); + break; + default: + qDebug("CMDIArea::triggerWindowUpdate: no known m_guiType"); + break; + } + } +} diff --git a/bibletime/frontend/cmdiarea.h b/bibletime/frontend/cmdiarea.h new file mode 100644 index 0000000..4178b0a --- /dev/null +++ b/bibletime/frontend/cmdiarea.h @@ -0,0 +1,143 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CMDIAREA_H +#define CMDIAREA_H + +//BibleTime includes +#include "util/cpointers.h" +#include "backend/cswordmoduleinfo.h" + +//Qt includes +#include +#include +#include +#include + +class KPopupMenu; +class CSwordModuleInfo; +class CSwordKey; + +/** The MDI widget we use in BibleTime. + * Enhances QWorkspace. + * @author The BibleTime Team + */ +class CMDIArea : public QWorkspace, public CPointers { + Q_OBJECT + +public: + /** + * The options you can set for this widget. + */ + enum MDIOption { + autoTileVertical, + autoTileHorizontal, + autoCascade, + Nothing + }; + CMDIArea(QWidget *parent, const char *name = 0 ); + /** + */ + void readSettings(); + /** + */ + void saveSettings(); + /** + * Enable / disable autoCascading + */ + void setGUIOption( const MDIOption& newOption ); + /** + * This works around a problem/limitation in QWorkspace. QWorkspace sets every time the + * application caption on its on way. This confuses BibleTime - wrong captions are generated. + * This function returns the right caption (using the MDI child). + */ + inline const QString currentApplicationCaption() const; + void emitWindowCaptionChanged(); + /** + * Forces an update of the currently chosen window arrangement. + */ + void triggerWindowUpdate(); + QPtrList usableWindowList(); + +public slots: + /** + * Called whan a client window was activated + */ + void slotClientActivated(QWidget* client); + /** + * Deletes all the presenters in the MDI area. + */ + void deleteAll(); + /** Our own cascade version which, if only one window is left, shows this maximized. + * Also necessary for autoCasacde feature + */ + void myCascade(); + /** Our own cascade version which, if only one window is left, shows this maximized. + * Also necessary for autoTile feature + */ + void myTileVertical(); + /** Horizontal tile function + * This function was taken from Qt's MDI example. + */ + void myTileHorizontal(); + /** + * Emits the signal to create a new display window in the MDI area. + */ + inline void emitCreateDisplayWindow( ListCSwordModuleInfo modules, const QString keyName ); + +protected: // Protected methods + /** + * Used to make use of the fixedGUIOption part. + */ + virtual void childEvent (QChildEvent * e); + /** + * Reimplementation + */ + virtual void resizeEvent(QResizeEvent* e); + /** + * Initializes the connectiosn to SIGNALS + */ + void initConnections(); + /** + * Initializes the view of the MDI area + */ + void initView(); + bool eventFilter( QObject *o, QEvent *e ); + +signals: // Signals + /** + * Emits a signal to set the acption of the toplevel widget. + */ + void sigSetToplevelCaption(const QString&); + /** + * Is emitted when the last presenter was closed. + */ + void sigLastPresenterClosed(); + void createReadDisplayWindow(ListCSwordModuleInfo modules, const QString& keyName); + +private: + MDIOption m_guiOption; + bool m_childEvent; + QString m_appCaption; +}; + +/** This works around a problem/limitation in QWorkspace. QWorkspace sets every time the application caption on its on way. This confuses BibleTime - wrong captions are generated. This function returns the right caption (using the MDI child). */ +inline const QString CMDIArea::currentApplicationCaption() const { + return m_appCaption; +} + +/** Emits the signal to create a new display window in the MDI area. */ +inline void CMDIArea::emitCreateDisplayWindow( ListCSwordModuleInfo modules, const QString keyName ) { + emit createReadDisplayWindow(modules, keyName); +} + + +#endif diff --git a/bibletime/frontend/cmoduleindexdialog.cpp b/bibletime/frontend/cmoduleindexdialog.cpp new file mode 100644 index 0000000..172ca41 --- /dev/null +++ b/bibletime/frontend/cmoduleindexdialog.cpp @@ -0,0 +1,98 @@ +// +// C++ Implementation: cmoduleindexdialog +// +// Description: +// +// +// Author: The BibleTime team , (C) 2006 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +#include "cmoduleindexdialog.h" + +#include "util/scoped_resource.h" + +//Qt includes +#include + +//KDE includes +#include +#include +#include + +CModuleIndexDialog* CModuleIndexDialog::getInstance() { + static CModuleIndexDialog* instance = 0; + if (instance == 0) { + instance = new CModuleIndexDialog(); + } + + return instance; +} + +void CModuleIndexDialog::indexAllModules( const ListCSwordModuleInfo& modules ) { + qDebug("indexAllModules"); + if (modules.count() == 0) { + return; + } + + m_currentModuleIndex = 0; + progress = new KProgressDialog(0, "progressDialog", i18n("Preparing instant search"), QString::null, true); + progress->setAllowCancel(false); + progress->progressBar()->setTotalSteps( modules.count() * 100 ); + progress->setMinimumDuration(0); +// progress->show(); +// progress->raise(); + + ListCSwordModuleInfo::const_iterator end_it = modules.end(); + for( ListCSwordModuleInfo::const_iterator it = modules.begin(); it != end_it; ++it) { + (*it)->connectIndexingFinished(this, SLOT(slotFinished())); + (*it)->connectIndexingProgress(this, SLOT(slotModuleProgress(int))); + + progress->setLabel(i18n("Creating index for work %1").arg((*it)->name())); + qDebug("Building index for work %s", (*it)->name().latin1()); + + (*it)->buildIndex(); + + m_currentModuleIndex++; + (*it)->disconnectIndexingSignals(this); + } + + delete progress; + progress = 0; +} + +void CModuleIndexDialog::indexUnindexedModules( const ListCSwordModuleInfo& modules ) { + qDebug("indexUnindexedModules"); + ListCSwordModuleInfo unindexedMods; + + ListCSwordModuleInfo::const_iterator end_it = modules.end(); + for( ListCSwordModuleInfo::const_iterator it = modules.begin(); it != end_it; ++it) { + if ((*it)->hasIndex()) { + continue; + } + + unindexedMods << (*it); + } + + indexAllModules(unindexedMods); +} + + +/*! + \fn CModuleIndexDialog::slotModuleProgress( int percentage ) + */ +void CModuleIndexDialog::slotModuleProgress( int percentage ) { +// qDebug("progress %d", percentage); + + progress->progressBar()->setProgress( m_currentModuleIndex * 100 + percentage ); + KApplication::kApplication()->processEvents( 10 ); //10 ms only +} + +void CModuleIndexDialog::slotFinished( ) { + qDebug("indexing finished()"); + + progress->progressBar()->setProgress( progress->progressBar()->totalSteps() ); + KApplication::kApplication()->processEvents( 1 ); //1 ms only +} diff --git a/bibletime/frontend/cmoduleindexdialog.h b/bibletime/frontend/cmoduleindexdialog.h new file mode 100644 index 0000000..6ff4798 --- /dev/null +++ b/bibletime/frontend/cmoduleindexdialog.h @@ -0,0 +1,55 @@ +// +// C++ Interface: cmoduleindexdialog +// +// Description: +// +// +// Author: The BibleTime team , (C) 2006 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef CMODULEINDEXDIALOG_H +#define CMODULEINDEXDIALOG_H + +#include "backend/cswordmoduleinfo.h" + +//Qt includes +#include + +//forward declaration +class KProgressDialog; + +/** + * This dialog is used to index a list of modules and to show progress for that.\ + * While the indexing is in progress it creates a blocking, top level dialog which shows the progress + * while the indexing is done. + * + * @author The BibleTime team +*/ +class CModuleIndexDialog : public QObject { + Q_OBJECT +public: + /** Get the singleton instance. + * + */ + static CModuleIndexDialog* getInstance(); + + /** Starts the actual indexing. It shows the dialog with progress information. + */ + void indexAllModules( const ListCSwordModuleInfo& modules ); + + /** Indexes all modules in the list which don't have an index yet. + */ + void indexUnindexedModules( const ListCSwordModuleInfo& modules ); + +private: + KProgressDialog* progress; + int m_currentModuleIndex; + +protected slots: + void slotModuleProgress( int percentage ); + void slotFinished(); +}; + +#endif diff --git a/bibletime/frontend/coptionsdialog.cpp b/bibletime/frontend/coptionsdialog.cpp new file mode 100644 index 0000000..af01965 --- /dev/null +++ b/bibletime/frontend/coptionsdialog.cpp @@ -0,0 +1,1044 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "coptionsdialog.h" +#include "cprofile.h" + +#include "backend/cswordbackend.h" +#include "backend/cswordmoduleinfo.h" +#include "backend/cdisplaytemplatemgr.h" +#include "backend/cdisplayrendering.h" + +#include "frontend/displaywindow/cbiblereadwindow.h" +#include "frontend/displaywindow/ccommentaryreadwindow.h" +#include "frontend/displaywindow/clexiconreadwindow.h" +#include "frontend/displaywindow/cbookreadwindow.h" +#include "frontend/displaywindow/creadwindow.h" + +#include "util/cresmgr.h" +#include "util/ctoolclass.h" + +#include +#include + +//QT includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +//KDE includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//Sword includes +#include +#include + +using std::string; +using std::list; + +COptionsDialog::COptionsDialog(QWidget *parent, const char *name, KActionCollection* actionCollection ) +: KDialogBase(IconList, i18n("Configure BibleTime"), Ok | Cancel | Apply, Ok, parent, name, true, true, QString::null, QString::null, QString::null) { + + m_settings.keys.application.actionCollection = actionCollection; + setIconListAllVisible(true); + + initDisplay(); + initLanguages(); + initSword(); + initAccelerators(); +} + +COptionsDialog::~COptionsDialog() { + //the actionCollections objects are deleted by their QWidget parent +} + +/** */ +void COptionsDialog::newDisplayWindowFontSelected(const QFont &newFont) { + CBTConfig::FontSettingsPair oldSettings = m_settings.fonts.fontMap[ m_settings.fonts.usage->currentText() ]; + m_settings.fonts.fontMap.replace( m_settings.fonts.usage->currentText(), CBTConfig::FontSettingsPair(oldSettings.first, newFont) ); +} + +/** Called when the combobox contents is changed */ +void COptionsDialog::newDisplayWindowFontAreaSelected(const QString& usage) { + useOwnFontClicked( m_settings.fonts.fontMap[usage].first ); + m_settings.fonts.useOwnFontBox->setChecked( m_settings.fonts.fontMap[usage].first ); + + m_settings.fonts.fontChooser->setFont( m_settings.fonts.fontMap[usage].second ); +} + +/** Called if the OK button was clicked */ +void COptionsDialog::slotOk() { + saveAccelerators(); + saveLanguages(); + saveSword(); + saveDisplay(); + + KDialogBase::slotOk(); + emit signalSettingsChanged( ); +} + +/*called if the apply button was clicked*/ +void COptionsDialog::slotApply() { + saveAccelerators(); + saveLanguages(); + saveSword(); + saveDisplay(); + + KDialogBase::slotApply(); + emit signalSettingsChanged( ); +} + +/** Opens the page which contaisn the given part ID. */ +const bool COptionsDialog::showPart( COptionsDialog::Parts /*ID*/ ) { + bool ret = false; + /* switch (ID) { + default: + break; + }*/ + return ret; +} + +/** Initializes the startup section of the OD. */ +void COptionsDialog::initDisplay() { + QFrame* page = addPage(i18n("Display"), QString::null, DesktopIcon(CResMgr::settings::startup::icon,32)); + QVBoxLayout* layout = new QVBoxLayout(page); + layout->setSpacing( 5 ); + + {//daily tips + m_settings.startup.showTips = new QCheckBox(page); + m_settings.startup.showTips->setText(i18n("Show tip of the day")); + QToolTip::add + (m_settings.startup.showTips, CResMgr::settings::startup::dailyTip::tooltip ); + + + m_settings.startup.showTips->setChecked( CBTConfig::get + (CBTConfig::tips) ); + } + layout->addWidget(m_settings.startup.showTips); + layout->addSpacing(5); + + { //startup logo + m_settings.startup.showLogo = new QCheckBox(page); + m_settings.startup.showLogo->setText(i18n("Show startuplogo")); + QToolTip::add + (m_settings.startup.showLogo, CResMgr::settings::startup::showLogo::tooltip); + + + m_settings.startup.showLogo->setChecked(CBTConfig::get + (CBTConfig::logo)); + layout->addWidget(m_settings.startup.showLogo); + layout->addSpacing(20); + } + + layout->addWidget( + CToolClass::explanationLabel(page, i18n("Display templates"), + i18n("Display templates define how text is displayed. Please choose a template you like.") + ) + ); + + layout->addSpacing( 5 ); + + QHBoxLayout* hboxlayout = new QHBoxLayout(); + + m_settings.displayStyle.styleChooser = new QComboBox( page ); //create first to enable buddy for label + connect( m_settings.displayStyle.styleChooser, SIGNAL( activated( int ) ), + this, SLOT( updateStylePreview() ) ); + + hboxlayout->addWidget( + new QLabel(m_settings.displayStyle.styleChooser, i18n("Available display styles:"), page) + ); + hboxlayout->addWidget( m_settings.displayStyle.styleChooser ); + hboxlayout->addStretch(); + layout->addLayout( hboxlayout ); + + m_settings.displayStyle.stylePreview = new KHTMLPart(page); + layout->addWidget( + new QLabel( + m_settings.displayStyle.stylePreview->view(), + i18n("Style preview"), page + ) + ); + layout->addWidget(m_settings.displayStyle.stylePreview->view()); + + m_settings.displayStyle.styleChooser->insertStringList( + CPointers::displayTemplateManager()->availableTemplates() + ); + + for (int i = 0; i < m_settings.displayStyle.styleChooser->count(); ++i) { + if ( m_settings.displayStyle.styleChooser->text(i) == CBTConfig::get(CBTConfig::displayStyle) ) { + m_settings.displayStyle.styleChooser->setCurrentItem( i ); + break; + } + } + + updateStylePreview(); //render it +} + +/** Init fonts section. */ +void COptionsDialog::initLanguages() { + QFrame* page = addPage(i18n("Languages"), QString::null, DesktopIcon(CResMgr::settings::fonts::icon, 32)); + QVBoxLayout* layout = new QVBoxLayout(page,5); + layout->setResizeMode( QLayout::Minimum ); + + { //Sword locales + layout->addWidget( + CToolClass::explanationLabel(page, i18n("Specify a language for names of Bible books"), + i18n("Sword has a number of locales available which can be used to internationalize the \ + names of books of the Bible. You can specify which locale to use. If you want to \ + create a new locale, see http://www.crosswire.org/sword/develop for details.")) + ); + + m_settings.fonts.swordLocaleCombo = new QComboBox(page); + QLabel* label = new QLabel(m_settings.fonts.swordLocaleCombo, i18n("Language for names of Bible books"), page); + QToolTip::add + (m_settings.fonts.swordLocaleCombo, CResMgr::settings::sword::general::language::tooltip); + + + QHBoxLayout* hBoxLayout = new QHBoxLayout(); + hBoxLayout->addWidget(label); + hBoxLayout->addWidget(m_settings.fonts.swordLocaleCombo); + hBoxLayout->addStretch(); + layout->addLayout(hBoxLayout); + + QStringList languageNames; + languageNames.append( languageMgr()->languageForAbbrev("en_US")->translatedName() ); + // languageNames.append( i18n("English") ); + + list locales = sword::LocaleMgr::getSystemLocaleMgr()->getAvailableLocales(); + // locales.push_back(SWBuf("en_US")); + + for (list::const_iterator it = locales.begin(); it != locales.end(); it++) { + // qWarning("working on %s", (*it).c_str()); + const CLanguageMgr::Language* const l = CPointers::languageMgr()->languageForAbbrev( + sword::LocaleMgr::getSystemLocaleMgr()->getLocale((*it).c_str())->getName() + ); + + if (l->isValid()) { + languageNames.append( l->translatedName() ); + } + else { + languageNames.append( + sword::LocaleMgr::getSystemLocaleMgr()->getLocale((*it).c_str())->getDescription() + ); + } + } + + languageNames.sort(); + m_settings.fonts.swordLocaleCombo->insertStringList( languageNames ); + + const CLanguageMgr::Language* const l = CPointers::languageMgr()->languageForAbbrev( + CBTConfig::get + (CBTConfig::language) + ); + + QString currentLanguageName; + if ( l->isValid() && languageNames.contains(l->translatedName()) ) { //tranlated language name is in the box + currentLanguageName = l->translatedName(); + } + else { //a language like "German Abbrevs" might be the language to set + sword::SWLocale* locale = sword::LocaleMgr::LocaleMgr::getSystemLocaleMgr()->getLocale( + CBTConfig::get + (CBTConfig::language).local8Bit() + ); + if (locale) { + currentLanguageName = QString::fromLatin1(locale->getDescription()); + } + } + + if (currentLanguageName.isEmpty()) { // set english as default if nothing was chosen + // currentLanguageName = i18n("English"); + Q_ASSERT(languageMgr()->languageForAbbrev("en_US")); + currentLanguageName = languageMgr()->languageForAbbrev("en_US")->translatedName(); + } + + //now set the item with the right name as current item + for (int i = 0; i < m_settings.fonts.swordLocaleCombo->count(); ++i) { + if (currentLanguageName == m_settings.fonts.swordLocaleCombo->text(i)) { + m_settings.fonts.swordLocaleCombo->setCurrentItem(i); + break; //item found, finish the loop + } + } + + layout->addSpacing( 20 ); + } + { //Font settings + layout->addWidget( + CToolClass::explanationLabel( + page, + i18n("Select custom fonts per-language"), + i18n("Here you find a list of all languages of the installed works. \ + You can specify a custom font for each language that needs a special font \ + to be displayed correctly.") + ) + ); + layout->addSpacing(5); + QHBoxLayout* hLayout = new QHBoxLayout(); + + m_settings.fonts.usage = new QComboBox(page); + QToolTip::add + (m_settings.fonts.usage, CResMgr::settings::fonts::typeChooser::tooltip); + + + hLayout->addWidget(m_settings.fonts.usage); + + CLanguageMgr::LangMap langMap = languageMgr()->availableLanguages(); + + for ( CLanguageMgr::LangMapIterator it( langMap ); it.current(); ++it ) { + const QString name = it.current()->translatedName().isEmpty() ? + it.current()->abbrev() : it.current()->translatedName(); + m_settings.fonts.fontMap.insert(name, CBTConfig::get + (it.current()) ); + } + + for( QMap::Iterator it = m_settings.fonts.fontMap.begin(); it != m_settings.fonts.fontMap.end(); ++it ) { + if ( m_settings.fonts.fontMap[it.key()].first ) { //show font icon + m_settings.fonts.usage->insertItem(SmallIcon("fonts"), it.key() ); + } + else { //don't show icon for font + m_settings.fonts.usage->insertItem(it.key()); + } + } + + m_settings.fonts.useOwnFontBox = new QCheckBox(i18n("Use custom font"), page, "font checkbox"); + connect(m_settings.fonts.useOwnFontBox, SIGNAL(toggled(bool)), SLOT(useOwnFontClicked(bool))); + hLayout->addWidget(m_settings.fonts.useOwnFontBox); + + layout->addLayout(hLayout); + //#warning TODO: remember the last selected font and jump there. + + m_settings.fonts.fontChooser = new KFontChooser(page, "fonts", false, QStringList(), true, 5); + m_settings.fonts.fontChooser->setSampleText(i18n("The quick brown fox jumps over the lazy dog.")); + layout->addWidget(m_settings.fonts.fontChooser); + + connect(m_settings.fonts.fontChooser, SIGNAL(fontSelected(const QFont&)), SLOT(newDisplayWindowFontSelected(const QFont&))); + connect(m_settings.fonts.usage, SIGNAL(activated(const QString&)), SLOT(newDisplayWindowFontAreaSelected(const QString&))); + + m_settings.fonts.fontChooser->setFont( m_settings.fonts.fontMap[m_settings.fonts.usage->currentText()].second ); + useOwnFontClicked( m_settings.fonts.fontMap[m_settings.fonts.usage->currentText()].first ); + m_settings.fonts.useOwnFontBox->setChecked( m_settings.fonts.fontMap[m_settings.fonts.usage->currentText()].first ); + m_settings.fonts.fontChooser->setMinimumSize(m_settings.fonts.fontChooser->sizeHint()); + } +} + + +/** Init accel key section. */ +void COptionsDialog::initAccelerators() { + QVBox* page = addVBoxPage(i18n("HotKeys"), QString::null, DesktopIcon(CResMgr::settings::keys::icon,32)); + + CBTConfig::setupAccelSettings( + CBTConfig::application, + m_settings.keys.application.actionCollection + ); + + QHBox* hbox = new QHBox(page); + QLabel* label = new QLabel(i18n("Choose type:"), hbox); + m_settings.keys.typeChooser = new QComboBox(hbox); + connect( + m_settings.keys.typeChooser, SIGNAL(activated(const QString&)), + SLOT(slotKeyChooserTypeChanged(const QString&)) + ); + QLabel* dummy = new QLabel( hbox ); // empty label for stretch + + hbox->setStretchFactor(label, 0); + hbox->setStretchFactor(m_settings.keys.typeChooser, 0); + hbox->setStretchFactor(dummy, 1); + + page->setStretchFactor(hbox, 0); + + m_settings.keys.keyChooserStack = new QWidgetStack(page); + Q_ASSERT(m_settings.keys.keyChooserStack); + + page->setStretchFactor(m_settings.keys.keyChooserStack, 5); + + m_settings.keys.application.title = i18n("BibleTime"); //don't set the app action collection to NULL + m_settings.keys.general = Settings::KeySettings::WindowType(i18n("All text windows")); + m_settings.keys.bible = Settings::KeySettings::WindowType(i18n("Bible windows")); + m_settings.keys.commentary = Settings::KeySettings::WindowType(i18n("Commentary windows")); + m_settings.keys.lexicon = Settings::KeySettings::WindowType(i18n("Lexicon windows")); + m_settings.keys.book = Settings::KeySettings::WindowType(i18n("Book windows")); + + m_settings.keys.typeChooser->insertItem(m_settings.keys.application.title); + m_settings.keys.typeChooser->insertItem(m_settings.keys.general.title); + m_settings.keys.typeChooser->insertItem(m_settings.keys.bible.title); + m_settings.keys.typeChooser->insertItem(m_settings.keys.commentary.title); + m_settings.keys.typeChooser->insertItem(m_settings.keys.lexicon.title); + m_settings.keys.typeChooser->insertItem(m_settings.keys.book.title); + + + Q_ASSERT(m_settings.keys.application.actionCollection); + m_settings.keys.application.keyChooser = new KKeyChooser( + m_settings.keys.application.actionCollection, + m_settings.keys.keyChooserStack + ); + + // ----- All display windows ------ // + m_settings.keys.general.actionCollection = new KActionCollection(this, "displayActions", 0); + CDisplayWindow::insertKeyboardActions( m_settings.keys.general.actionCollection); + CBTConfig::setupAccelSettings( + CBTConfig::allWindows, + m_settings.keys.general.actionCollection + ); + m_settings.keys.general.keyChooser = new KKeyChooser( + m_settings.keys.general.actionCollection, + m_settings.keys.keyChooserStack + ); + + // ----- Bible windows ------ // + m_settings.keys.bible.actionCollection = new KActionCollection(this, "bibleActions", 0); + CBibleReadWindow::insertKeyboardActions( m_settings.keys.bible.actionCollection); + CBTConfig::setupAccelSettings( + CBTConfig::bibleWindow, + m_settings.keys.bible.actionCollection + ); + + // ----- Commentary windows ------ // + m_settings.keys.commentary.actionCollection= new KActionCollection(this, "commentaryActions", 0); + CCommentaryReadWindow::insertKeyboardActions( m_settings.keys.commentary.actionCollection); + CBTConfig::setupAccelSettings( + CBTConfig::commentaryWindow, + m_settings.keys.commentary.actionCollection + ); + + // ----- Lexicon windows ------ // + m_settings.keys.lexicon.actionCollection = new KActionCollection(this, "lexiconActions", 0); + CLexiconReadWindow::insertKeyboardActions( m_settings.keys.lexicon.actionCollection ); + CBTConfig::setupAccelSettings( + CBTConfig::lexiconWindow, + m_settings.keys.lexicon.actionCollection + ); + + // ----- Book windows ------ // + m_settings.keys.book.actionCollection= new KActionCollection(this, "bookActions", 0); + CBookReadWindow::insertKeyboardActions( m_settings.keys.book.actionCollection); + CBTConfig::setupAccelSettings( + CBTConfig::bookWindow, + m_settings.keys.book.actionCollection + ); + + slotKeyChooserTypeChanged(m_settings.keys.application.title); +} + +/** Init Sword section. */ +void COptionsDialog::initSword() { + QVBox* page = addVBoxPage(i18n("Desk"),QString::null, DesktopIcon(CResMgr::settings::sword::icon,32)); + KTabCtl* tabCtl = new KTabCtl(page); + + { //Standard works + QFrame* currentTab = new QFrame(tabCtl); + tabCtl->addTab(currentTab, i18n("Standard works")); + QGridLayout* gridLayout = new QGridLayout(currentTab,10,2, 5,5); //the last row is for stretching available space + gridLayout->setResizeMode(QLayout::Minimum); + + gridLayout->addMultiCellWidget( + CToolClass::explanationLabel(currentTab, i18n("Standard works"), + i18n("Standard works are used when no particular work is specified, \ + for example when a hyperlink into a Bible or lexicon was clicked .")), + 0,0,0,-1 /*fill the horizontal space*/ + ); + + m_settings.swords.standardBible = new QComboBox(currentTab); + QLabel* label = new QLabel(m_settings.swords.standardBible, i18n("Standard Bible"), currentTab); + label->setAutoResize(true); + QToolTip::add + (m_settings.swords.standardBible, CResMgr::settings::sword::modules::bible::tooltip); + + gridLayout->addWidget(label,1,0); + gridLayout->addWidget(m_settings.swords.standardBible,1,1); + + m_settings.swords.standardCommentary = new QComboBox(currentTab); + label = new QLabel(m_settings.swords.standardCommentary, i18n("Standard Commentary"), currentTab); + label->setAutoResize(true); + QToolTip::add + (m_settings.swords.standardCommentary, CResMgr::settings::sword::modules::commentary::tooltip); + + gridLayout->addWidget(label,2,0); + gridLayout->addWidget(m_settings.swords.standardCommentary,2,1); + + + m_settings.swords.standardLexicon = new QComboBox(currentTab); + label = new QLabel(m_settings.swords.standardLexicon, i18n("Standard Lexicon"), currentTab); + label->setAutoResize(true); + QToolTip::add + (m_settings.swords.standardLexicon, CResMgr::settings::sword::modules::lexicon::tooltip); + + gridLayout->addWidget(label,3,0); + gridLayout->addWidget(m_settings.swords.standardLexicon,3,1); + + m_settings.swords.standardDailyDevotional = new QComboBox(currentTab); + label = new QLabel(m_settings.swords.standardDailyDevotional, i18n("Standard Daily Devotional"), currentTab); + label->setAutoResize(true); + QToolTip::add + (m_settings.swords.standardDailyDevotional, CResMgr::settings::sword::modules::dailyDevotional::tooltip); + + gridLayout->addWidget(label,4,0); + gridLayout->addWidget(m_settings.swords.standardDailyDevotional,4,1); + + m_settings.swords.standardHebrewStrong = new QComboBox(currentTab); + label = new QLabel(m_settings.swords.standardHebrewStrong, i18n("Standard Hebrew Strong's Lexicon"), currentTab); + label->setAutoResize(true); + QToolTip::add + (m_settings.swords.standardHebrewStrong, CResMgr::settings::sword::modules::hebrewStrongs::tooltip); + + gridLayout->addWidget(label,5,0); + gridLayout->addWidget(m_settings.swords.standardHebrewStrong,5,1); + + m_settings.swords.standardGreekStrong = new QComboBox(currentTab); + label = new QLabel(m_settings.swords.standardGreekStrong, i18n("Standard Greek Strong's Lexicon"), currentTab); + label->setAutoResize(true); + QToolTip::add + (m_settings.swords.standardGreekStrong, CResMgr::settings::sword::modules::greekStrongs::tooltip); + + gridLayout->addWidget(label,6,0); + gridLayout->addWidget(m_settings.swords.standardGreekStrong,6,1); + + m_settings.swords.standardHebrewMorph = new QComboBox(currentTab); + label = new QLabel(m_settings.swords.standardHebrewMorph, i18n("Standard Hebrew Morphological Lexicon"), currentTab); + QToolTip::add + (m_settings.swords.standardHebrewMorph, CResMgr::settings::sword::modules::hebrewMorph::tooltip); + + gridLayout->addWidget(label,7,0); + gridLayout->addWidget(m_settings.swords.standardHebrewMorph,7,1); + + m_settings.swords.standardGreekMorph = new QComboBox(currentTab); + label = new QLabel(m_settings.swords.standardGreekMorph, i18n("Standard Greek Morphological Lexicon"), currentTab); + label->setAutoResize(true); + QToolTip::add + (m_settings.swords.standardGreekMorph, CResMgr::settings::sword::modules::greekMorph::tooltip); + + gridLayout->addWidget(label,8,0); + gridLayout->addWidget(m_settings.swords.standardGreekMorph,8,1); + + gridLayout->setRowStretch(9,5); + + //fill the comboboxes with the right modules + ListCSwordModuleInfo& modules = backend()->moduleList(); + QString modDescript; + ListCSwordModuleInfo::iterator end_it = modules.end(); + for (ListCSwordModuleInfo::iterator it(modules.begin()); it != end_it; ++it) { + modDescript = (*it)->config(CSwordModuleInfo::Description); + + switch ((*it)->type()) { + case CSwordModuleInfo::Bible: + m_settings.swords.standardBible->insertItem(modDescript); + break; + case CSwordModuleInfo::Commentary: + m_settings.swords.standardCommentary->insertItem(modDescript); + break; + case CSwordModuleInfo::Lexicon: { + bool inserted = false; + if ((*it)->has(CSwordModuleInfo::HebrewDef)) { + m_settings.swords.standardHebrewStrong->insertItem(modDescript); + inserted = true; + } + if ((*it)->has(CSwordModuleInfo::GreekDef)) { + m_settings.swords.standardGreekStrong->insertItem(modDescript); + inserted = true; + } + if ((*it)->has(CSwordModuleInfo::HebrewParse)) { + m_settings.swords.standardHebrewMorph->insertItem(modDescript); + inserted = true; + } + if ((*it)->has(CSwordModuleInfo::GreekParse)) { + m_settings.swords.standardGreekMorph->insertItem(modDescript); + inserted = true; + } + if ((*it)->category() == CSwordModuleInfo::DailyDevotional) { + m_settings.swords.standardDailyDevotional->insertItem(modDescript); + inserted = true; + } + + if (!inserted) {//daily dvotionals, striong lexicons etc. are not very useful for word lookups + m_settings.swords.standardLexicon->insertItem(modDescript); + } + + break; + } + default://unknown type + break; + } + } + + //using two lists and one loop is better than six loops with almost the same code :) + QPtrList comboList; + comboList.setAutoDelete(false);//don't delete the combos accidentally + QStringList moduleList; + + for (int i = 0; i <= (int)CBTConfig::lastModuleType; ++i) { + //fill the combobox list in the right order (i.e. same order as the CBTConfig::module enum list) + CBTConfig::modules moduleType = (CBTConfig::modules)(i); + switch (moduleType) { + case CBTConfig::standardBible: + comboList.append(m_settings.swords.standardBible); + break; + case CBTConfig::standardCommentary: + comboList.append(m_settings.swords.standardCommentary); + break; + case CBTConfig::standardLexicon: + comboList.append(m_settings.swords.standardLexicon); + break; + case CBTConfig::standardDailyDevotional: + comboList.append(m_settings.swords.standardDailyDevotional); + break; + case CBTConfig::standardHebrewStrongsLexicon: + comboList.append(m_settings.swords.standardHebrewStrong); + break; + case CBTConfig::standardGreekStrongsLexicon: + comboList.append(m_settings.swords.standardGreekStrong); + break; + case CBTConfig::standardHebrewMorphLexicon: + comboList.append(m_settings.swords.standardHebrewMorph); + break; + case CBTConfig::standardGreekMorphLexicon: + comboList.append(m_settings.swords.standardGreekMorph); + break; + }; + + //fill the module list + CSwordModuleInfo* const m = CBTConfig::get + ( (CBTConfig::modules)(i) ); + if (m) { + moduleList << m->config(CSwordModuleInfo::Description); + } + else { + moduleList << QString::null; + } + } + + QString module = QString::null; + int item = 0; + int count = 0; + for (QComboBox* combo = comboList.first(); combo; combo = comboList.next() ) { + module = moduleList[comboList.at()]; + count = combo->count(); + combo->setMaximumWidth(300); + + for (item = 0; item < count; item++) { + if (combo->text(item) == module ) { + combo->setCurrentItem(item); + break; + } + } + } + } + { // ---------- new tab: filters -------- // + QFrame* currentTab = new QFrame(tabCtl); + tabCtl->addTab(currentTab, i18n("Text filters")); + QVBoxLayout* layout = new QVBoxLayout(currentTab,5); + + layout->addWidget( CToolClass::explanationLabel(currentTab, i18n("Text filters"), + i18n("Filters control the appearance of text. \ +Here you can specify default settings for all filters. \ +You can change the filter settings in each display window, of course.")) ); + + layout->addSpacing(5); + + m_settings.swords.lineBreaks = new QCheckBox(currentTab); + m_settings.swords.lineBreaks->setText(i18n("Insert line break after each verse")); + m_settings.swords.lineBreaks->setChecked(CBTConfig::get + (CBTConfig::lineBreaks)); + layout->addWidget(m_settings.swords.lineBreaks); + + m_settings.swords.verseNumbers = new QCheckBox(currentTab); + m_settings.swords.verseNumbers->setText(i18n("Show verse numbers")); + m_settings.swords.verseNumbers->setChecked(CBTConfig::get + (CBTConfig::verseNumbers)); + layout->addWidget(m_settings.swords.verseNumbers); + + m_settings.swords.headings = new QCheckBox(currentTab); + m_settings.swords.headings->setText(i18n("Show section headings")); + m_settings.swords.headings->setChecked(CBTConfig::get + (CBTConfig::headings)); + layout->addWidget(m_settings.swords.headings); + + + m_settings.swords.scriptureReferences = new QCheckBox(currentTab); + m_settings.swords.scriptureReferences->setText(i18n("Show scripture cross-references")); + m_settings.swords.scriptureReferences->setChecked(CBTConfig::get + (CBTConfig::scriptureReferences)); + layout->addWidget(m_settings.swords.scriptureReferences); + + m_settings.swords.greekAccents = new QCheckBox(currentTab); + m_settings.swords.greekAccents->setText(i18n("Show Greek accents")); + m_settings.swords.greekAccents->setChecked(CBTConfig::get + (CBTConfig::greekAccents)); + layout->addWidget(m_settings.swords.greekAccents); + + m_settings.swords.hebrewPoints = new QCheckBox(currentTab); + m_settings.swords.hebrewPoints->setText(i18n("Show Hebrew vowel points")); + m_settings.swords.hebrewPoints->setChecked(CBTConfig::get + (CBTConfig::hebrewPoints)); + layout->addWidget(m_settings.swords.hebrewPoints); + + m_settings.swords.hebrewCantillation = new QCheckBox(currentTab); + m_settings.swords.hebrewCantillation->setText(i18n("Show Hebrew cantillation marks")); + m_settings.swords.hebrewCantillation->setChecked(CBTConfig::get + (CBTConfig::hebrewCantillation)); + layout->addWidget(m_settings.swords.hebrewCantillation); + + m_settings.swords.morphSegmentation = new QCheckBox(currentTab); + m_settings.swords.morphSegmentation->setText(i18n("Show morph segmentation")); + m_settings.swords.morphSegmentation->setChecked(CBTConfig::get + (CBTConfig::morphSegmentation)); + layout->addWidget(m_settings.swords.morphSegmentation); + + m_settings.swords.textualVariants = new QCheckBox(currentTab); + m_settings.swords.textualVariants->setText(i18n("Use textual variants")); + m_settings.swords.textualVariants->setChecked(CBTConfig::get + (CBTConfig::textualVariants)); + layout->addWidget(m_settings.swords.textualVariants); + + layout->addStretch(4); + } +} + +void COptionsDialog::saveAccelerators() { + if (m_settings.keys.general.keyChooser) { + m_settings.keys.general.keyChooser->commitChanges(); + } + + if (m_settings.keys.bible.keyChooser) { + m_settings.keys.bible.keyChooser->commitChanges(); + } + + if (m_settings.keys.commentary.keyChooser) { + m_settings.keys.commentary.keyChooser->commitChanges(); + } + + if (m_settings.keys.lexicon.keyChooser) { + m_settings.keys.lexicon.keyChooser->commitChanges(); + } + + if (m_settings.keys.book.keyChooser) { + m_settings.keys.book.keyChooser->commitChanges(); + } + + CBTConfig::saveAccelSettings( //application + CBTConfig::application, + m_settings.keys.application.actionCollection + ); + CBTConfig::saveAccelSettings( //read display windows + CBTConfig::allWindows, + m_settings.keys.general.actionCollection + ); + CBTConfig::saveAccelSettings( //bible + CBTConfig::bibleWindow, + m_settings.keys.bible.actionCollection + ); + CBTConfig::saveAccelSettings( //commentary + CBTConfig::commentaryWindow, + m_settings.keys.commentary.actionCollection + ); + CBTConfig::saveAccelSettings( //lexicon + CBTConfig::lexiconWindow, + m_settings.keys.lexicon.actionCollection + ); + CBTConfig::saveAccelSettings( //book + CBTConfig::bookWindow, + m_settings.keys.book.actionCollection + ); +} + +/** No descriptions */ +void COptionsDialog::saveLanguages() { + for(QMap::Iterator it = m_settings.fonts.fontMap.begin(); it != m_settings.fonts.fontMap.end(); ++it ) { + const CLanguageMgr::Language* const lang = languageMgr()->languageForTranslatedName(it.key()); + if (!lang->isValid()) { //we probably use a language, for which we have only the abbrev + CLanguageMgr::Language l(it.key(), it.key(), it.key()); //create a temp language + CBTConfig::set(&l, it.data()); + } + else { + CBTConfig::set(lang, it.data()); + } + } +} + +/** No descriptions */ +void COptionsDialog::saveDisplay() { + CBTConfig::set + ( CBTConfig::logo, m_settings.startup.showLogo->isChecked() ); + CBTConfig::set + ( CBTConfig::tips, m_settings.startup.showTips->isChecked() ); + CBTConfig::set + ( CBTConfig::displayStyle, m_settings.displayStyle.styleChooser->currentText() ); +} + +/** No descriptions */ +void COptionsDialog::saveSword() { + for (int i = 0; i <= (int)CBTConfig::lastModuleType; ++i) { + QString moduleDescription = QString::null; + + CBTConfig::modules moduleType = (CBTConfig::modules)(i); + switch (moduleType) { + case CBTConfig::standardBible: + moduleDescription = m_settings.swords.standardBible->currentText(); + break; + case CBTConfig::standardCommentary: + moduleDescription = m_settings.swords.standardCommentary->currentText(); + break; + case CBTConfig::standardLexicon: + moduleDescription = m_settings.swords.standardLexicon->currentText(); + break; + case CBTConfig::standardDailyDevotional: + moduleDescription = m_settings.swords.standardDailyDevotional->currentText(); + break; + case CBTConfig::standardHebrewStrongsLexicon: + moduleDescription = m_settings.swords.standardHebrewStrong->currentText(); + break; + case CBTConfig::standardGreekStrongsLexicon: + moduleDescription = m_settings.swords.standardGreekStrong->currentText(); + break; + case CBTConfig::standardHebrewMorphLexicon: + moduleDescription = m_settings.swords.standardHebrewMorph->currentText(); + break; + case CBTConfig::standardGreekMorphLexicon: + moduleDescription = m_settings.swords.standardGreekMorph->currentText(); + break; + default: + qWarning("Unhandled module type."); + }; + + CSwordModuleInfo* const module = backend()->findModuleByDescription(moduleDescription); + CBTConfig::set + (moduleType, module); + } + + + QString languageAbbrev; + + const QString currentLanguageName = m_settings.fonts.swordLocaleCombo->currentText(); + const CLanguageMgr::Language* const l = CPointers::languageMgr()->languageForTranslatedName( currentLanguageName ); + + if (l && l->isValid()) { + languageAbbrev = l->abbrev(); + } + else { //it can be the lang abbrev like de_abbrev or the Sword description + list locales = sword::LocaleMgr::getSystemLocaleMgr()->getAvailableLocales(); + + for (list ::iterator it = locales.begin(); it != locales.end(); it++) { + SWLocale* locale = LocaleMgr::getSystemLocaleMgr()->getLocale((*it).c_str()); + Q_ASSERT(locale); + + if ( locale && (QString::fromLatin1(locale->getDescription()) == currentLanguageName) ) { + languageAbbrev = QString::fromLatin1(locale->getName()); //we found the abbrevation for the current language + break; + } + } + + if (languageAbbrev.isEmpty()) { + languageAbbrev = currentLanguageName; //probably a non-standard locale name like de_abbrev + } + } + + if (!languageAbbrev.isEmpty()) { + CBTConfig::set + (CBTConfig::language, languageAbbrev); + } + + CBTConfig::set + (CBTConfig::lineBreaks, m_settings.swords.lineBreaks->isChecked()); + CBTConfig::set + (CBTConfig::verseNumbers, m_settings.swords.verseNumbers->isChecked()); + CBTConfig::set + (CBTConfig::headings, m_settings.swords.headings->isChecked()); + CBTConfig::set + (CBTConfig::scriptureReferences, m_settings.swords.scriptureReferences->isChecked()); + CBTConfig::set + (CBTConfig::hebrewPoints, m_settings.swords.hebrewPoints->isChecked()); + CBTConfig::set + (CBTConfig::hebrewCantillation, m_settings.swords.hebrewCantillation->isChecked()); + CBTConfig::set + (CBTConfig::morphSegmentation, m_settings.swords.morphSegmentation->isChecked()); + CBTConfig::set + (CBTConfig::greekAccents, m_settings.swords.greekAccents->isChecked()); + CBTConfig::set + (CBTConfig::textualVariants, m_settings.swords.textualVariants->isChecked()); +} + +/** This slot is called when the "Use own font for language" bo was clicked. */ +void COptionsDialog::useOwnFontClicked( bool isOn ) { + m_settings.fonts.fontChooser->setEnabled(isOn); + m_settings.fonts.fontMap[ m_settings.fonts.usage->currentText() ].first = isOn; + + if (isOn) { //show font icon + m_settings.fonts.usage->changeItem( + SmallIcon("fonts"), + m_settings.fonts.usage->currentText(), + m_settings.fonts.usage->currentItem() + ); + } + else { //don't show + m_settings.fonts.usage->changeItem( + m_settings.fonts.usage->currentText(), + m_settings.fonts.usage->currentItem() + ); + } +} + +void COptionsDialog::updateStylePreview() { + //update the style preview widget + using namespace Rendering; + + const QString styleName = m_settings.displayStyle.styleChooser->currentText(); + + CTextRendering::KeyTree tree; + + CTextRendering::KeyTreeItem::Settings settings; + settings.highlight = false; + + tree.append( new CTextRendering::KeyTreeItem( + QString("\n16%1") + .arg(i18n("For God so loved the world, that he gave his one and only Son, that whoever believes in him should not perish, but have eternal life.")), + settings)); + + tree.append( new CTextRendering::KeyTreeItem( + QString("\n17%1") + .arg(i18n("For God didn't send his Son into the world to judge the world, but that the world should be saved through him.")), + settings)); + + settings.highlight = true; + + tree.append( new CTextRendering::KeyTreeItem( + QString("\n18%1") + .arg(i18n("He who believes in him is not judged. He who doesn't believe has been judged already, because he has not believed in the name of the one and only Son of God.")), + settings) ); + + settings.highlight = false; + + tree.append( new CTextRendering::KeyTreeItem( + QString("\n19%1") + .arg(i18n("This is the judgment, that the light has come into the world, and men loved the darkness rather than the light; for their works were evil.")), + settings)); + + tree.append( new CTextRendering::KeyTreeItem( + QString("\n20%1
") + .arg(i18n("For everyone who does evil hates the light, and doesn't come to the light, lest his works would be exposed.")), + settings)); + + tree.append( new CTextRendering::KeyTreeItem( + QString("\n21%1") + .arg(i18n("But he who does the truth comes to the light, that his works may be revealed, that they have been done in God.")), + settings)); + + const QString oldStyleName = CBTConfig::get + (CBTConfig::displayStyle); + CBTConfig::set + (CBTConfig::displayStyle, styleName); + + CDisplayRendering render; + m_settings.displayStyle.stylePreview->begin(); + m_settings.displayStyle.stylePreview->write( render.renderKeyTree(tree)); + m_settings.displayStyle.stylePreview->end(); + + CBTConfig::set + (CBTConfig::displayStyle, oldStyleName); +} + +void COptionsDialog::slotKeyChooserTypeChanged(const QString& title) { + //delete all KKeyChoosers which may not share accels, because this class checks in all instances for key conflicts + typedef QPtrList KeyChooserList; + KeyChooserList list; + list.append(m_settings.keys.bible.keyChooser); + list.append(m_settings.keys.commentary.keyChooser); + list.append(m_settings.keys.lexicon.keyChooser); + list.append(m_settings.keys.book.keyChooser); + + //commit all changes in the keychoosers +#if QT_VERSION >= 0x030200 + for (KeyChooserList::iterator it(list.begin()); it != list.end(); ++it) { + if (*it) { //the list may contain NULL pointers + (*it)->commitChanges(); + } + } +#else + //Normally we know a QPtrListIterator is done when it.current() == 0 + //but now a value can actually be zero, which would be + //indistinguishable from the end condition. + //Therefore, more complex logic is needed. + QPtrListIterator it(list); + if (!it.isEmpty()){ + while (!it.atLast()){ + if (it.current()){ + it.current()->commitChanges(); + } + ++it; + } + //We still have the last item to process. + if (it.current()){ + it.current()->commitChanges(); + } + } +#endif + /* Delete all the keychoosers in the list, + * the keychoosers are set to NULL, because they are QGuardedPtr + */ + list.setAutoDelete(true); + list.clear(); + + Settings::KeySettings::WindowType* t = 0; + if (title == m_settings.keys.application.title) { //Application wide + t = &m_settings.keys.application; + } + else if (title == m_settings.keys.general.title) { // All display windows + t = &m_settings.keys.general; + } + else if (title == m_settings.keys.bible.title) { // Bible windows + t = &m_settings.keys.bible; + } + else if (title == m_settings.keys.commentary.title) { // Commentary windows + t = &m_settings.keys.commentary; + } + else if (title == m_settings.keys.lexicon.title) { // Lexicon windows + t = &m_settings.keys.lexicon; + } + else if (title == m_settings.keys.book.title) { // Book windows + t = &m_settings.keys.book; + } + + Q_ASSERT(t); + if (!t->keyChooser) { //was deleted, create a new one + t->keyChooser = new KKeyChooser( + m_settings.keys.keyChooserStack + ); + t->keyChooser->insert( + t->actionCollection, + t->title + ); + } + + m_settings.keys.keyChooserStack->raiseWidget(t->keyChooser); +} diff --git a/bibletime/frontend/coptionsdialog.h b/bibletime/frontend/coptionsdialog.h new file mode 100644 index 0000000..b6431ca --- /dev/null +++ b/bibletime/frontend/coptionsdialog.h @@ -0,0 +1,214 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef COPTIONSDIALOG_H +#define COPTIONSDIALOG_H + +#include "cprofilemgr.h" +#include "cbtconfig.h" +#include "util/cpointers.h" + +//QT includes +#include +#include +#include +#include +#include +#include +#include +#include + +//KDE includes +#include +#include +#include +#include +#include +#include + +class QHBox; +class QCheckBox; +class QComboBox; +class QRadioButton; +class QWidgetStack; + +class KListBox; +class KKeyChooser; +class KTabCtl; +class KHTMLPart; +class KActionCollection; + +/** + * The optionsdialog of BibleTime + * @author The BibleTime Team + */ +class COptionsDialog : public KDialogBase, public CPointers { + Q_OBJECT + +public: + COptionsDialog(QWidget *parent, const char *name, KActionCollection* actionCollection); + virtual ~COptionsDialog(); + + enum Parts { + Startup, + Font, + DisplayTemplates, + Desk, + Hotkeys + }; + + /** Opens the page which contaisn the given part ID. */ + const bool showPart( COptionsDialog::Parts ID ); + +private: + struct Settings { + struct StartupSettings { + QCheckBox* showTips; + QCheckBox* showLogo; + } + startup; + + struct SwordSettings { + QComboBox* standardBible; + QComboBox* standardCommentary; + QComboBox* standardLexicon; + QComboBox* standardDailyDevotional; + QComboBox* standardHebrewStrong; + QComboBox* standardGreekStrong; + QComboBox* standardHebrewMorph; + QComboBox* standardGreekMorph; + QCheckBox* lineBreaks; + QCheckBox* verseNumbers; + QCheckBox* headings; + QCheckBox* hebrewPoints; + QCheckBox* hebrewCantillation; + QCheckBox* morphSegmentation; + QCheckBox* greekAccents; + QCheckBox* textualVariants; + QCheckBox* scriptureReferences; + } + swords; // not: sword instead of sword -> namespace error + + struct KeySettings { + QComboBox* typeChooser; + QWidgetStack* keyChooserStack; + + struct WindowType { + QGuardedPtr keyChooser; + KActionCollection* actionCollection; + QString title; + + WindowType() { + keyChooser = 0; + actionCollection = 0; + }; + WindowType(const QString& newTitle) { + title = newTitle; + + keyChooser = 0; + actionCollection = 0; + } + }; + + WindowType application; + WindowType general; + WindowType bible; + WindowType commentary; + WindowType lexicon; + WindowType book; + } + keys; + + struct DisplayStyleSettings { + QComboBox* styleChooser; + KHTMLPart* stylePreview; + } + displayStyle; + + struct FontSettings { + QComboBox* swordLocaleCombo; + KFontChooser* fontChooser; + QComboBox* usage; + QCheckBox* useOwnFontBox; + //the pair os to check whether the standard font (bool == false) or whether an own font should be used (true) + QMap fontMap; + } + fonts; + } + m_settings; + +protected slots: // Protected slots + /** + * Called when a new font in the fonts page was selected. + */ + void newDisplayWindowFontSelected(const QFont &); + /** + * Called when the combobox contents is changed + */ + void newDisplayWindowFontAreaSelected(const QString&); + /** + * Called if the OK button was clicked + */ + void slotOk(); + /** + * Called if the Apply button was clicked + * commented out for the time being. ck + */ + void slotApply(); + /** + * This slot is called when the "Use own font for language" bo was clicked. + */ + void useOwnFontClicked(bool); + /** + * Update the style preview widget + */ + void updateStylePreview(); + /** + * The type of the keyaccel area changed + */ + void slotKeyChooserTypeChanged(const QString&); + +protected: // Protected methods + /** + * Initializes the startup section of the OD. + */ + void initDisplay(); + /** + * Init Sword section. + */ + void initSword(); + /** + * Init accel key section. + */ + void initAccelerators(); + /** + * Init fonts section. + */ + void initLanguages(); + + /** Save the display settings. + */ + void saveDisplay(); + /** Save the key accel settings. + */ + void saveAccelerators(); + /** Save the font settings. + */ + void saveLanguages(); + /** Save the Sword specific settings. + */ + void saveSword(); + +signals: // Signals + void signalSettingsChanged(); +}; + +#endif diff --git a/bibletime/frontend/cprinter.cpp b/bibletime/frontend/cprinter.cpp new file mode 100644 index 0000000..1fad2bc --- /dev/null +++ b/bibletime/frontend/cprinter.cpp @@ -0,0 +1,130 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cprinter.h" + +//BibleTime includes +#include "backend/cdisplaytemplatemgr.h" +#include "backend/cswordversekey.h" + +//KDE includes +#include +#include + +/* Class: CPrinter */ + +namespace Printing { + + CPrinter::CPrinter(QObject *, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions) +: QObject(0), + CDisplayRendering(displayOptions, filterOptions), + m_htmlPart(new KHTMLPart(0, 0, this)) { + + //override the filteroptions set in the c-tor of CDisplayRendering + m_filterOptions.footnotes = false; + m_filterOptions.scriptureReferences = false; + m_filterOptions.strongNumbers = false; + m_filterOptions.morphTags = false; + m_filterOptions.headings = false; + + m_htmlPart->setJScriptEnabled(false); + m_htmlPart->setJavaEnabled(false); + m_htmlPart->setMetaRefreshEnabled(false); + m_htmlPart->setPluginsEnabled(false); + m_htmlPart->view()->resize(500,500); + m_htmlPart->view()->hide(); + } + + CPrinter::~CPrinter() { + delete m_htmlPart; + m_htmlPart = 0; + } + + void CPrinter::printKeyTree( KeyTree& tree ) { + m_htmlPart->begin(); + m_htmlPart->write(renderKeyTree(tree)); + m_htmlPart->end(); + + m_htmlPart->view()->layout(); + m_htmlPart->view()->print(); + } + + const QString CPrinter::entryLink(const KeyTreeItem& item, CSwordModuleInfo* module) { + Q_ASSERT(module); + + if (module->type() == CSwordModuleInfo::Bible) { + CSwordVerseKey vk(module); + vk = item.key(); + + switch (item.settings().keyRenderingFace) { + case KeyTreeItem::Settings::CompleteShort: + return QString::fromUtf8(vk.getShortText()); + + case KeyTreeItem::Settings::CompleteLong: + return vk.key(); + + case KeyTreeItem::Settings::NoKey: + return QString::null; + + case KeyTreeItem::Settings::SimpleKey: //fall through + default: + return QString::number(vk.Verse()); + } + + } + + return item.key(); + } + + const QString CPrinter::renderEntry( const KeyTreeItem& i, CSwordKey* ) { + const CPrinter::KeyTreeItem* printItem = dynamic_cast(&i); + Q_ASSERT(printItem); + + if (printItem && printItem->hasAlternativeContent()) { + QString ret = QString::fromLatin1("
%1
").arg(printItem->getAlternativeContent()); + + if (i.hasChildItems()) { + KeyTree const * tree = i.childList(); + + for ( KeyTreeItem* c = tree->first(); c; c = tree->next() ) { + ret.append( CDisplayRendering::renderEntry( *c ) ); + } + } + + ret.append("
"); + return ret; + } + + return CDisplayRendering::renderEntry(i); + } + + const QString CPrinter::finishText(const QString& text, KeyTree& tree) { + ListCSwordModuleInfo modules = tree.collectModules(); + Q_ASSERT(modules.count() > 0); + + const CLanguageMgr::Language* const lang = modules.first()->language(); + Q_ASSERT(lang); + + CDisplayTemplateMgr::Settings settings; + //settings.modules = modules; + settings.pageCSS_ID = "printer"; + settings.langAbbrev = (lang && (modules.count() == 1) && lang->isValid()) + ? lang->abbrev() + : "unknown"; + settings.pageDirection = (modules.count() == 1) + ? ((modules.first()->textDirection() == CSwordModuleInfo::LeftToRight) ? "ltr" : "rtl") + : QString::null; + + CDisplayTemplateMgr* tMgr = CPointers::displayTemplateManager(); + return tMgr->fillTemplate(CBTConfig::get(CBTConfig::displayStyle), text, settings); + } + +} //end of namespace diff --git a/bibletime/frontend/cprinter.h b/bibletime/frontend/cprinter.h new file mode 100644 index 0000000..fd28280 --- /dev/null +++ b/bibletime/frontend/cprinter.h @@ -0,0 +1,56 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CPRINTER_H +#define CPRINTER_H + +//BibleTime backend +#include "backend/cswordbackend.h" +#include "backend/cdisplayrendering.h" + +//BibleTime frontend +#include "frontend/cbtconfig.h" + +//Qt includes +#include + +class KHTMLPart; + +namespace Printing { + + /** + * The CPrinter class manages the print item queue and the printing of them to the printer. + * + * @author The BibleTime team + */ +class CPrinter : public QObject, public Rendering::CDisplayRendering { + Q_OBJECT +public: + CPrinter( + QObject *parent, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions + ); + + virtual ~CPrinter(); + + void printKeyTree( KeyTree& ); + +protected: + virtual const QString entryLink(const KeyTreeItem& item, CSwordModuleInfo* const module); + virtual const QString renderEntry( const KeyTreeItem&, CSwordKey* = 0 ); + virtual const QString finishText(const QString& arg1, KeyTree& tree); + +private: + KHTMLPart* m_htmlPart; + }; + +} + +#endif diff --git a/bibletime/frontend/cprofile.cpp b/bibletime/frontend/cprofile.cpp new file mode 100644 index 0000000..309329e --- /dev/null +++ b/bibletime/frontend/cprofile.cpp @@ -0,0 +1,397 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cprofile.h" + +//Qt includes +#include +#include +#include +#include +#include + +//KDE includes +#include +#include + +#define CURRENT_SYNTAX_VERSION 2 + +namespace Profile { + +CProfile::CProfile( const QString& file, const QString& name ): +m_name(name.isEmpty() ? i18n("unknown") : name), +m_filename(file), +m_fullscreen(false), +m_geometry(10,20,640,480) { + + m_profileWindows.setAutoDelete(true); + if (!m_filename.isEmpty() && name.isEmpty()) { + loadBasics(); + } + else if (m_filename.isEmpty() && !name.isEmpty()) { + m_filename = name; + m_filename.replace(QRegExp("\\s=#."),"_"); + KStandardDirs stdDirs; + m_filename = stdDirs.saveLocation("data", "bibletime/sessions/") + m_filename + ".xml"; + init(m_filename); + } + else { + qWarning("CProfile: empty file name!"); + } +} + +CProfile::~CProfile() { + m_profileWindows.clear(); //delete all CProfileWindows objects (autodelete is enabled) +} + +/** Loads the profile from the file given in the constructor. */ +QPtrList CProfile::load() { + QFile file(m_filename); + if (!file.exists()) + return QPtrList(); + + QDomDocument doc; + if (file.open(IO_ReadOnly)) { + QTextStream t( &file ); + t.setEncoding(QTextStream::UnicodeUTF8); + doc.setContent(t.read()); + file.close(); + } + + QDomElement document = doc.documentElement(); + if( document.tagName() != "BibleTimeProfile" && document.tagName() != "BibleTime" ) { //BibleTime was used in syntax version 1.0 + qWarning("CProfile::load: Missing BibleTime doc"); + return m_profileWindows; + } + if (document.hasAttribute("name")) { + m_name = document.attribute("name"); + } + + + //load settings of the main window + { + // see if there's a section with the name MAINWINDOW + QDomElement elem = document.firstChild().toElement(); + QDomElement mainWindow; + while (!elem.isNull()) { + if (elem.tagName() == "MAINWINDOW") { + mainWindow = elem; + break; //found the element + } + elem = elem.nextSibling().toElement(); + } + if (!mainWindow.isNull()) { //was found + setFullscreen( (bool)mainWindow.attribute("fullscreen").toInt()); + QDomElement object = mainWindow.namedItem("GEOMETRY").toElement(); + QRect rect; + if(!object.isNull()) { + if (object.hasAttribute("x")) { + rect.setX(object.attribute("x").toInt()); + } + if (object.hasAttribute("y")) { + rect.setY(object.attribute("y").toInt()); + } + if (object.hasAttribute("width")) { + rect.setWidth(object.attribute("width").toInt()); + } + if (object.hasAttribute("height")) { + rect.setHeight(object.attribute("height").toInt()); + } + if (object.hasAttribute("isMaximized")) { + this->setMaximized( static_cast(object.attribute("isMaximized").toInt()) ); + } + + } + setGeometry(rect); + } + } + + m_profileWindows.clear(); + QDomElement elem = document.firstChild().toElement(); + while (!elem.isNull()) { + CProfileWindow* p = 0; + if (elem.tagName() == "BIBLE") { + p = new CProfileWindow(CSwordModuleInfo::Bible); + } + else if (elem.tagName() == "COMMENTARY") { + p = new CProfileWindow(CSwordModuleInfo::Commentary); + } + else if (elem.tagName() == "LEXICON") { + p = new CProfileWindow(CSwordModuleInfo::Lexicon); + } + else if (elem.tagName() == "BOOK") { + p = new CProfileWindow(CSwordModuleInfo::GenericBook); + } + + if (p) { + m_profileWindows.append(p); + + if (elem.hasAttribute("windowSettings")) { + p->setWindowSettings( elem.attribute("windowSettings").toInt() ); + } + if (elem.hasAttribute("writeWindowType")) { + p->setWriteWindowType( elem.attribute("writeWindowType").toInt() ); + } + if (elem.hasAttribute("hasFocus")) { + p->setFocus( static_cast(elem.attribute("hasFocus").toInt()) ); + } + + QRect rect; + + QDomElement object = elem.namedItem("GEOMETRY").toElement(); + if(!object.isNull()) { + if (object.hasAttribute("x")) { + rect.setX(object.attribute("x").toInt()); + } + if (object.hasAttribute("y")) { + rect.setY(object.attribute("y").toInt()); + } + if (object.hasAttribute("width")) { + rect.setWidth(object.attribute("width").toInt()); + } + if (object.hasAttribute("height")) { + rect.setHeight(object.attribute("height").toInt()); + } + if (object.hasAttribute("isMaximized")) { + p->setMaximized( static_cast(object.attribute("isMaximized").toInt()) ); + } + } + p->setGeometry(rect); + + object = elem.namedItem("MODULES").toElement(); + if(!object.isNull()) { + if (object.hasAttribute("list")) { + const QString sep = object.hasAttribute("separator") ? object.attribute("separator") : "|"; + QStringList modules = QStringList::split(sep, object.attribute("list")); + p->setModules(modules); + } + } + + object = elem.namedItem("KEY").toElement(); + if(!object.isNull()) { + if (object.hasAttribute("name")) + p->setKey(object.attribute("name")); + } + + object = elem.namedItem("SCROLLBARS").toElement(); + if(!object.isNull()) { + int horizontal = 0, vertical = 0; + if (object.hasAttribute("horizontal")) + horizontal = object.attribute("horizontal").toInt(); + if (object.hasAttribute("vertical")) + vertical = object.attribute("vertical").toInt(); + + p->setScrollbarPositions(horizontal, vertical); + } + } + elem = elem.nextSibling().toElement(); + } + return m_profileWindows; +} + +/** Saves the profile to the file given in the constructor. */ +const bool CProfile::save(QPtrList windows) { + /** Save the settings using a XML file + * Save the CProfileWindow objects using a XML file which name is in m_filename + */ + bool ret = false; + QDomDocument doc("DOC"); + doc.appendChild( doc.createProcessingInstruction( "xml", "version=\"1.0\" encoding=\"UTF-8\"" ) ); + + QDomElement content = doc.createElement("BibleTimeProfile"); + content.setAttribute("syntaxVersion", CURRENT_SYNTAX_VERSION); + content.setAttribute("name", m_name); + doc.appendChild(content); + + //save mainwindow settings + { + QDomElement mainWindow = doc.createElement("MAINWINDOW"); + mainWindow.setAttribute("fullscreen", fullscreen()); + + QDomElement geometry = doc.createElement("GEOMETRY"); + mainWindow.appendChild(geometry); + const QRect r = this->geometry(); + geometry.setAttribute("x",r.x()); + geometry.setAttribute("y",r.y()); + geometry.setAttribute("width",r.width()); + geometry.setAttribute("height",r.height()); + geometry.setAttribute("isMaximized",static_cast(this->maximized())); + + content.appendChild(mainWindow); + } + + for (CProfileWindow* p = windows.first(); p; p = windows.next()) { + QDomElement window; + switch (p->type()) { + case CSwordModuleInfo::Bible: + window = doc.createElement("BIBLE"); + break; + case CSwordModuleInfo::Commentary: + window = doc.createElement("COMMENTARY"); + break; + case CSwordModuleInfo::Lexicon: + window = doc.createElement("LEXICON"); + break; + case CSwordModuleInfo::GenericBook: + window = doc.createElement("BOOK"); + break; + default: + break; + } + if (window.isNull()) + break; + window.setAttribute("windowSettings", p->windowSettings()); + window.setAttribute("writeWindowType", p->writeWindowType()); + window.setAttribute("hasFocus", p->hasFocus()); + + //save geomtery + const QRect r = p->geometry(); + QDomElement geometry = doc.createElement("GEOMETRY"); + geometry.setAttribute("x",r.x()); + geometry.setAttribute("y",r.y()); + geometry.setAttribute("width",r.width()); + geometry.setAttribute("height",r.height()); + geometry.setAttribute("isMaximized",static_cast(p->maximized())); + window.appendChild( geometry ); + + QDomElement modules = doc.createElement("MODULES"); + modules.setAttribute("separator", "|"); + modules.setAttribute("list", p->modules().join("|")); + window.appendChild( modules ); + + QDomElement key = doc.createElement("KEY"); + key.setAttribute("name", p->key()); + window.appendChild( key ); + + QDomElement scrollbars = doc.createElement("SCROLLBARS"); + scrollbars.setAttribute("horizontal", p->scrollbarPositions().horizontal); + scrollbars.setAttribute("vertical", p->scrollbarPositions().vertical); + window.appendChild( scrollbars ); + + content.appendChild( window ); + } + + QFile file(m_filename); + if ( file.open(IO_WriteOnly) ) { + ret = true; + QTextStream t( &file ); + t.setEncoding(QTextStream::UnicodeUTF8); + t << doc.toString(); + file.close(); + } + else + ret = false; + + return ret; +} + +/** Saves the profile to the file given in the constructor. */ +const bool CProfile::save() { + return save(m_profileWindows); +} + +/** Returns the filename used for this profile. */ +const QString& CProfile::filename() { + return m_filename; +} + +/** Returns the name of this profile. */ +const QString& CProfile::name() { + return m_name; +} + +/** Initializes the XML for the first time (use to create a new profile) */ +void CProfile::init(const QString file) { + const QString oldFile = m_filename; + m_filename = file; + save(QPtrList()); + m_filename = oldFile; +} + +/** Changes the name of this profile. */ +void CProfile::setName( const QString& newName ) { + m_name = newName; + saveBasics(); //save chanegd name +} + +/** Loads the basic settings requires for proper operation. */ +void CProfile::loadBasics() { + QFile file(m_filename); + if (!file.exists()) + return; + + QDomDocument doc; + if (file.open(IO_ReadOnly)) { + QTextStream t( &file ); + t.setEncoding(QTextStream::UnicodeUTF8); + doc.setContent(t.read()); + file.close(); + } + QDomElement document = doc.documentElement(); + if (document.hasAttribute("name")) + m_name = document.attribute("name"); +} + +void CProfile::saveBasics() { + QFile file(m_filename); + if (!file.exists()) + return; + + QDomDocument doc; + if (file.open(IO_ReadOnly)) { + QTextStream t(&file); + t.setEncoding(QTextStream::UnicodeUTF8); + doc.setContent(t.read()); + file.close(); + } + + QDomElement document = doc.documentElement(); + document.setAttribute("name", m_name); + + if (file.open(IO_WriteOnly)) { + QTextStream t( &file ); + t.setEncoding(QTextStream::UnicodeUTF8); + t << doc.toString(); + file.close(); + } +} + +/** Returns true if the main window was in fullscreen mode as the profile was saved. */ +const bool CProfile::fullscreen() const { + return m_fullscreen; +} + +/** Set the parameter to true if the main window coveres the full screen size. */ +void CProfile::setFullscreen( const bool fullscreen ) { + m_fullscreen = fullscreen; +} + +/** Returns true if the main window was maximized as the profile was saved. */ +const bool CProfile::maximized() const { + return m_maximized; +} + +/** Set the parameter to true if the main window is maximized. */ +void CProfile::setMaximized( const bool maximized ) { + m_maximized = maximized; +} + +/** Returns the geometry of the main window */ +const QRect CProfile::geometry() { + return m_geometry; +} + +/** Stes the geoemtry of the main window */ +void CProfile::setGeometry( const QRect rect ) { + m_geometry = rect; +} + +} //end of namespace Profile diff --git a/bibletime/frontend/cprofile.h b/bibletime/frontend/cprofile.h new file mode 100644 index 0000000..711bdf5 --- /dev/null +++ b/bibletime/frontend/cprofile.h @@ -0,0 +1,102 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CPROFILE_H +#define CPROFILE_H + +#include "cprofilewindow.h" + +//Qt includes +#include + +namespace Profile { + +/** Manages one profile file. Provides functions to save and restore settings of the available display windows. + * @author The BibleTime team + */ +class CProfile { +public: + CProfile(const QString& fileName, const QString& name = QString::null); + ~CProfile(); + + /** + * Saves the profile to the file given in the constructor. + * @param windows The list of windows available in the profile. + */ + const bool save( QPtrList windows ); + /** + * Saves the profile to the file given in the constructor. + */ + const bool save(); + /** + * Loads the profile from the file given in the constructor. + * @return The list of profiled window which exist in the profile. + */ + QPtrList load(); + /** + * Returns the name of this profile. + */ + const QString& name(); + /** + * Returns the filename used for this profile. + */ + const QString& filename(); + /** + * Initializes the XML for the first time (use to create a new profile) + */ + void init(const QString); + /** + * Chnages the name of this profile. + */ + void setName( const QString& ); + /** + * Returns true if the main window was in fullscreen mode as the profile was saved. + */ + const bool fullscreen() const; + /** + * Set the parameter to true if the main window coveres the full screen size. + */ + void setFullscreen( const bool fullscreen ); + /** + * Returns true if the main window was maximized as the profile was saved. + */ + const bool maximized() const; + /** + * Set the parameter to true if the main window is maximized. + */ + void setMaximized( const bool maximized ); + /** + * Sets the geoemtry of the main window + */ + void setGeometry( const QRect rect ); + /** + * Returns the geometry of the main window + */ + const QRect geometry(); + +private: + /** + * Loads the basic settings requires for proper operation. + */ + void loadBasics(); + void saveBasics(); + + QPtrList m_profileWindows; + QString m_name; + QString m_filename; + bool m_fullscreen; + bool m_maximized; + QRect m_geometry; +}; + +} //end of namespace Profile + +#endif diff --git a/bibletime/frontend/cprofilemgr.cpp b/bibletime/frontend/cprofilemgr.cpp new file mode 100644 index 0000000..ef810a1 --- /dev/null +++ b/bibletime/frontend/cprofilemgr.cpp @@ -0,0 +1,124 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cprofilemgr.h" + +//Qt includes +#include +#include +#include + +//KDE includes +#include + +namespace Profile { + +CProfileMgr::CProfileMgr() : m_startupProfile(0) { + m_profiles.setAutoDelete(true); + + KStandardDirs stdDirs; + m_profilePath = stdDirs.saveLocation("data", "bibletime/sessions/"); + + QDir d( m_profilePath ); + QStringList files = d.entryList("*.xml"); + for ( QStringList::Iterator it = files.begin(); it != files.end(); ++it ) { + if ((*it) != "_startup_.xml") { + m_profiles.append(new CProfile(m_profilePath + *it)); + } + else { + m_startupProfile = new CProfile(m_profilePath + *it); + } + } +} + +CProfileMgr::~CProfileMgr() { + m_profiles.clear(); // autoDelete is enabled, so all profiles are deleted + delete m_startupProfile; +} + +/** Returns a list of available profiles. */ +const QPtrList& CProfileMgr::profiles() { + return m_profiles; +} + +/** Creates a new profile with the name "name" (first parameter). @return The profile object */ +CProfile* CProfileMgr::create( const QString name ) { + CProfile* p = new CProfile(QString::null, name); + m_profiles.append(p); + + return p; +} + +/** Removes the profile from the list and from the directory containg the profile files. */ +const bool CProfileMgr::remove + ( CProfile* p ) { + bool ret = false; + QFile f( p->filename() ); + if (f.exists()) + f.remove(); + if(m_profiles.remove(p)) + ; //auto delete is enabled + ret = true; + return ret; +} + +const bool CProfileMgr::remove + ( const QString& profile) { + bool ret = false; + for (CProfile* p = m_profiles.first(); p; p = m_profiles.next()) { + if (p->name() == profile) { + remove + (p); + ret = true; + } + } + return ret; +} + +/** Returns the profile with the desired name. If there's no such profile 0 is returned. */ +CProfile* CProfileMgr::profile(const QString& name) { + for (m_profiles.first(); m_profiles.current(); m_profiles.next()) { + if (m_profiles.current()->name() == name) { + return m_profiles.current(); + } + } + + return 0; +} + +/** Returns the startup profile if it exists, otherwise return 0. */ +CProfile* CProfileMgr::startupProfile() { + if (!m_startupProfile) { + m_startupProfile = new CProfile(QString::null, "_startup_"); + } + + return m_startupProfile; +} + +/** Refreshes the profiles available on disk. Use this function to update the list of profiles after another instance of CProfileMgr created a new profile. */ +void CProfileMgr::refresh() { + m_profiles.clear(); //delete all profiles + QDir d( m_profilePath ); + QStringList files = d.entryList("*.xml"); + for ( QStringList::Iterator it = files.begin(); it != files.end(); ++it ) { + CProfile p(m_profilePath + *it); + if (p.name() == "_startup_") { //new startup profile + if (!m_startupProfile) { //don't put this in the if clause above,it doesn't work! + m_startupProfile = new CProfile(m_profilePath + *it); + } + } + else if (!profile(p.name())) { //don't have it already + m_profiles.append(new CProfile(m_profilePath + *it)); + } + } +} + +} //end of namespace Profile diff --git a/bibletime/frontend/cprofilemgr.h b/bibletime/frontend/cprofilemgr.h new file mode 100644 index 0000000..b1f55d9 --- /dev/null +++ b/bibletime/frontend/cprofilemgr.h @@ -0,0 +1,69 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CPROFILEMGR_H +#define CPROFILEMGR_H + +#include "cprofile.h" + +//Qt includes +#include + +namespace Profile { +/** The manager for profiles. + * Provides functions to create, delete, save and load profiles. + * @author The BibleTime team + */ +class CProfileMgr { +public: + CProfileMgr(); + ~CProfileMgr(); + + /** Creates a new profile with the name "name" (first parameter). + * @return The profile object + */ + CProfile* create( const QString name ); + /** + * @return a list of available profiles + */ + const QPtrList& profiles(); + /** + * Removes the profile from the list and from the directory containg the profile files. + */ + const bool remove + ( CProfile* p ); + /** + * Removes the profile from the list and from the directory containg the profile files. + */ + const bool remove + ( const QString& ); + /** + * Returns the profile with the desired name. If there's no such profile 0 is returned. + */ + CProfile* profile(const QString&); + /** + * Returns the startup profile if it exists, otherwise return 0. + */ + CProfile* startupProfile(); + /** + * Refreshes the profiles available on disk. Use this function to update the list of profiles after another instance of CProfileMgr created a new profile. + */ + void refresh(); + +protected: + QPtrList m_profiles; + QString m_profilePath; + CProfile* m_startupProfile; +}; + +} //end of namespace Profile + +#endif diff --git a/bibletime/frontend/cprofilewindow.cpp b/bibletime/frontend/cprofilewindow.cpp new file mode 100644 index 0000000..142dd41 --- /dev/null +++ b/bibletime/frontend/cprofilewindow.cpp @@ -0,0 +1,125 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cprofilewindow.h" + +namespace Profile { + +CProfileWindow::CProfileWindow(CSwordModuleInfo::ModuleType type) +: m_type(type), +m_windowGeometry(), +m_moduleList(), +m_key(QString::null), +m_maximized(false), +m_hasFocus(false), +m_windowSettings(0), +m_writeWindowType(0) { + m_scrollbarPos.horizontal = 0; + m_scrollbarPos.vertical = 0; +} + +CProfileWindow::~CProfileWindow() {} + +/** Returns the size of the window including the x,y coordinates. */ +const QRect& CProfileWindow::geometry() const { + return m_windowGeometry; +} + +/** Sets the size of the window. */ +void CProfileWindow::setGeometry( const QRect& rect ) { + m_windowGeometry = rect; +} + +/** Returns the type of the managed window (bible window, commentary window or lexicon window). */ +const CSwordModuleInfo::ModuleType CProfileWindow::type() const { + if (m_type != CSwordModuleInfo::Unknown) + return m_type; + return CSwordModuleInfo::Unknown; +} + +/** Sets the modules. */ +void CProfileWindow::setModules( const QStringList& modules ) { + m_moduleList = modules; //copy module pointers into our own list +} + +/** Returns a list of module names which are chosen in the managed window profile. */ +const QStringList& CProfileWindow::modules() const { + return m_moduleList; +} + +/** Returns the current key set in the modules. */ +const QString& CProfileWindow::key() const { + return m_key; +} + +/** Set the key used in the modules. */ +void CProfileWindow::setKey( const QString& key ) { + m_key = key; +} + +/** Sets the current position of the scrollbars. */ +void CProfileWindow::setScrollbarPositions(const int& horizontal, const int& vertical) { + // m_scrollbarPos = {x,y}; + m_scrollbarPos.horizontal = horizontal; + m_scrollbarPos.vertical = vertical; +} + +/** Returns tghe position of the scrollbars */ +const CProfileWindow::ScrollbarPos& CProfileWindow::scrollbarPositions() const { + return m_scrollbarPos; +} + +/** Sets the type of the used modules. */ +void CProfileWindow::setType(const CSwordModuleInfo::ModuleType& type) { + m_type = type; +} + +/** Returns true if the window is maximized. */ +const bool& CProfileWindow::maximized() const { + return m_maximized; +} + +/** Sets the windows maximized state to true or false. */ +void CProfileWindow::setMaximized( const bool& maximized ) { + m_maximized = maximized; +} + +/** Returns true if the window is maximized. */ +const bool& CProfileWindow::hasFocus() const { + return m_hasFocus; +} + +/** Sets the windows maximized state to true or false. */ +void CProfileWindow::setFocus( const bool& hasFocus ) { + m_hasFocus = hasFocus; +} + +/** Returns an integer with the window specific settings */ +const int& CProfileWindow::windowSettings() const { + return m_windowSettings; +} + +/** Sets the window specific settings. */ +void CProfileWindow::setWindowSettings( const int& settings ) { + m_windowSettings = settings; +} + +/** Tells this profile window to represent a write window. */ +void CProfileWindow::setWriteWindowType( const int& writeWindowType ) { + m_writeWindowType = writeWindowType; +} + +/** Returns whether this profile window represents a write window. */ +const int& CProfileWindow::writeWindowType() const { + return m_writeWindowType; +} + +} //end of namespace Profile diff --git a/bibletime/frontend/cprofilewindow.h b/bibletime/frontend/cprofilewindow.h new file mode 100644 index 0000000..ddc5059 --- /dev/null +++ b/bibletime/frontend/cprofilewindow.h @@ -0,0 +1,126 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CPROFILEWINDOW_H +#define CPROFILEWINDOW_H + +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordbackend.h" + +//Qt includes +#include +#include +#include +#include + +namespace Profile { + +/** Contains the settings for one window saved in the profile. + * @author The BibleTime team + */ +class CProfileWindow { +public: + struct ScrollbarPos { + int horizontal; //the position of the horizontal scrollbar + int vertical; //the position of the vertical scrollbar + }; + + CProfileWindow(CSwordModuleInfo::ModuleType type = CSwordModuleInfo::Unknown); + ~CProfileWindow(); + /** + * Sets the modules. + */ + void setModules( const QStringList& modules ); + /** + * Returns the type of the managed window (bible window, commentary window or lexicon window). + */ + const CSwordModuleInfo::ModuleType type() const; + /** + * Sets the type of the used modules. + */ + void setType(const CSwordModuleInfo::ModuleType& type); + /** + * Sets the size of the window. + */ + void setGeometry( const QRect& s ); + /** + * Returns the size of the window including the x,y coordinates. + */ + const QRect& geometry() const; + /** + * Returns a list of module names which are chosen in the managed window profile. + */ + const QStringList& modules() const; + /** + * Set the key used in the modules. + */ + void setKey( const QString& ); + /** + * Returns the current key set in the modules. + */ + const QString& key() const; + /** + * Sets the current position of the scrollbars. + */ + void setScrollbarPositions(const int& x, const int& y); + /** + * Sets the windows maximized state to true or false. + */ + void setMaximized( const bool& maximized ); + /** + * Sets the windows hasFocus state to true or false. + */ + void setFocus( const bool& hasFocus ); + /** + * Sets the window specific settings. + */ + void setWindowSettings( const int& settings ); + /** + * Returns an integer with the window specific settings + */ + const int& windowSettings() const; + /** + * Returns true if the window is maximized. + */ + const bool& maximized() const; + /** + * Returns true if the window has the focus in the MDI area. + */ + const bool& hasFocus() const; + /** + * Returns tghe position of the scrollbars + */ + const CProfileWindow::ScrollbarPos& scrollbarPositions() const; + /** + * Returns whether this profile window represents a write window. + */ + const int& writeWindowType() const; + /** + * Tells this profile window to represent a write window. + */ + void setWriteWindowType( const int& writeWindowType ); + +private: + CSwordModuleInfo::ModuleType m_type; + QRect m_windowGeometry; + QStringList m_moduleList; + QString m_key; + ScrollbarPos m_scrollbarPos; + bool m_maximized; + bool m_hasFocus; + int m_windowSettings; + int m_writeWindowType; +}; + +} //end of namespace Profile + +#endif + diff --git a/bibletime/frontend/crossrefrendering.cpp b/bibletime/frontend/crossrefrendering.cpp new file mode 100644 index 0000000..aad9d44 --- /dev/null +++ b/bibletime/frontend/crossrefrendering.cpp @@ -0,0 +1,88 @@ +// +// C++ Implementation: crossrefrendering +// +// Description: +// +// +// Author: The BibleTime team , (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +#include "crossrefrendering.h" + +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordversekey.h" +#include "backend/creferencemanager.h" + +namespace InfoDisplay { + + /** + */ + CrossRefRendering::CrossRefRendering( CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions) +: CHTMLExportRendering(Settings(), displayOptions, filterOptions) {} + + const QString CrossRefRendering::finishText( const QString& text, KeyTree& ) { + // qDebug("CrossRefRendering::finishText"); + return text; + } + + const QString CrossRefRendering::entryLink( const KeyTreeItem& item, CSwordModuleInfo* module ) { + QString linkText; + + const bool isBible = module && (module->type() == CSwordModuleInfo::Bible); + CSwordVerseKey vk(module); //only valid for bible modules, i.e. isBible == true + if (isBible) { + vk = item.key(); + } + + switch (item.settings().keyRenderingFace) { + case KeyTreeItem::Settings::NoKey: { + linkText = QString::null; + break; //no key is valid for all modules + } + case KeyTreeItem::Settings::CompleteShort: { + if (isBible) { + linkText = QString::fromUtf8(vk.getShortText()); + break; + } + //fall through for non-Bible modules + } + case KeyTreeItem::Settings::CompleteLong: { + if (isBible) { + linkText = vk.key(); + break; + } + //fall through for non-Bible modules + } + case KeyTreeItem::Settings::SimpleKey: { + if (isBible) { + linkText = QString::number(vk.Verse()); + break; + } + //fall through for non-Bible modules + } + default: { //default behaviour to return the passed key + linkText = item.key(); + break; + } + } + + if (!linkText.isEmpty()) { //if we have a valid link text + // qWarning("rendering"); + return QString("%2") + .arg( + CReferenceManager::encodeHyperlink( + module->name(), + item.key(), + CReferenceManager::typeFromModule(module->type()) + ) + ) + .arg(linkText); + } + + return QString::null; + } + +}; diff --git a/bibletime/frontend/crossrefrendering.h b/bibletime/frontend/crossrefrendering.h new file mode 100644 index 0000000..144d9d0 --- /dev/null +++ b/bibletime/frontend/crossrefrendering.h @@ -0,0 +1,36 @@ +// +// C++ Interface: crossrefrendering +// +// Description: +// +// +// Author: The BibleTime team , (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef INFODISPLAYCROSSREFRENDERING_H +#define INFODISPLAYCROSSREFRENDERING_H + +//Backend includes +#include "backend/chtmlexportrendering.h" + +namespace InfoDisplay { + +class CrossRefRendering : public Rendering::CHTMLExportRendering { +protected: + friend class CInfoDisplay; + + CrossRefRendering( + CSwordBackend::DisplayOptions displayOptions = CBTConfig::getDisplayOptionDefaults(), + CSwordBackend::FilterOptions filterOptions = CBTConfig::getFilterOptionDefaults() + ); + + virtual const QString entryLink( const KeyTreeItem& item, CSwordModuleInfo* module ); + virtual const QString finishText( const QString&, KeyTree& tree ); + }; + + +}; + +#endif diff --git a/bibletime/frontend/cswordsetupdialog.cpp b/bibletime/frontend/cswordsetupdialog.cpp new file mode 100644 index 0000000..d2b6950 --- /dev/null +++ b/bibletime/frontend/cswordsetupdialog.cpp @@ -0,0 +1,918 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cswordsetupdialog.h" +#include "cswordsetupmodulelistview.h" +#include "cswordsetupinstallsourcesdialog.h" + +#include "backend/cswordbackend.h" +#include "backend/cswordmoduleinfo.h" +// #include "btinstallmgr.h" + +#include "cmanageindiceswidget.h" + +#include "util/cresmgr.h" +#include "util/ctoolclass.h" +#include "util/scoped_resource.h" + +//QT includes +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//KDE includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//Sword includes +#include +#include +#include + +using namespace sword; + +namespace BookshelfManager { + + CSwordSetupDialog::CSwordSetupDialog(QWidget *parent, const char *name ) +: KDialogBase(IconList, i18n("Bookshelf Manager"), Ok, Ok, parent, name, true, true, QString::null, QString::null, QString::null), + m_removeModuleListView(0), + m_installModuleListPage(0), + m_installModuleListView(0), + m_progressDialog(0), + m_refreshedRemoteSources(false) { + setIconListAllVisible(true); + m_swordSetupChanged = false; + + initSwordConfig(); + initInstall(); + initRemove(); + initManageIndices(); + } + + void CSwordSetupDialog::initSwordConfig() { + QFrame* page = m_swordConfigPage = addPage(i18n("Bookshelf path(s)"), QString::null, SmallIcon("bt_swordconfig",32)); + page->setMinimumSize(500,400); + + QGridLayout* layout = new QGridLayout(page, 6, 4); + layout->setMargin(5); + + layout->setSpacing(10); + layout->setColStretch(0,1); + layout->setRowStretch(5,1); + + QLabel* mainLabel = CToolClass::explanationLabel(page, + i18n("Configure bookshelf path(s)"), + i18n("You can store your bookshelfs in one or more directories, which you can specify here.") + ); + layout->addMultiCellWidget(mainLabel, 0, 0, 0, 3); + + + QString swordConfPath = BTInstallMgr::Tool::LocalConfig::swordConfigFilename(); + QLabel* confPathLabel = new QLabel(i18n("Your bookshelf configuration file is %1").arg(swordConfPath), page); + layout->addMultiCellWidget(confPathLabel, 1,1,0,3); + + m_swordPathListBox = new QListView(page); + // m_swordPathListBox->setFullWidth(true); + m_swordPathListBox->addColumn(i18n("Path to bookshelf")); + connect(m_swordPathListBox, SIGNAL(selectionChanged()), this, SLOT(slot_swordPathSelected())); + layout->addMultiCellWidget(m_swordPathListBox, 2,5,0,1); + + m_swordEditPathButton = new QPushButton(i18n("Edit Entry"), page); + m_swordEditPathButton->setIconSet(SmallIcon("edit", 16)); + connect(m_swordEditPathButton, SIGNAL(clicked()), this, SLOT(slot_swordEditClicked())); + layout->addWidget(m_swordEditPathButton, 2, 3); + + m_swordAddPathButton = new QPushButton(i18n("Add Entry"), page); + m_swordAddPathButton->setIconSet(SmallIcon("edit_add", 16)); + connect(m_swordAddPathButton, SIGNAL(clicked()), this, SLOT(slot_swordAddClicked())); + layout->addWidget(m_swordAddPathButton, 3,3); + + m_swordRemovePathButton = new QPushButton(i18n("Remove Entry"), page); + m_swordRemovePathButton->setIconSet(SmallIcon("editdelete", 16)); + connect(m_swordRemovePathButton, SIGNAL(clicked()), this, SLOT(slot_swordRemoveClicked())); + layout->addWidget(m_swordRemovePathButton, 4,3); + + setupSwordPathListBox(); + } + + void CSwordSetupDialog::initInstall() { + m_installPage = addPage(i18n("Install/Update works"), QString::null, SmallIcon("bt_bible",32)); + + QVBoxLayout* vboxlayout = new QVBoxLayout(m_installPage); + QHBoxLayout* hboxlayout = new QHBoxLayout(); + hboxlayout->setAutoAdd( true ); + + vboxlayout->addLayout(hboxlayout); + + m_installWidgetStack = new QWidgetStack(m_installPage); + hboxlayout->addWidget(m_installWidgetStack); + + m_installSourcePage = new QWidget(0); + m_installWidgetStack->addWidget(m_installSourcePage); + + // m_installSourcePage->setMinimumSize(500,400); + + QGridLayout* layout = new QGridLayout(m_installSourcePage, 7, 3); + layout->setMargin(5); + layout->setSpacing(10); + layout->setRowStretch(6,5); + layout->setColStretch(0,5); + + QLabel* installLabel = CToolClass::explanationLabel(m_installSourcePage, + i18n("Install/update works - Step 1"), + i18n("Please choose a (local or remote) library and a bookshelf path to install the work(s) to. \ +After that step click on the connect button.
\ +WARNING: If you live in a persecuted country and do not wish to risk detection you should NOT use \ +the module remote installation feature!") + ); + layout->addMultiCellWidget(installLabel, 0,0,0,2); + + QLabel* sourceHeadingLabel = new QLabel(QString("%1").arg(i18n("Select library")), m_installSourcePage); + layout->addMultiCellWidget(sourceHeadingLabel, 1,1,0,1); + + m_sourceCombo = new QComboBox(m_installSourcePage); + layout->addWidget(m_sourceCombo, 2, 0); + + QPushButton* deleteSourceButton = new QPushButton(i18n("Delete library"), m_installSourcePage); + deleteSourceButton->setIconSet(SmallIcon("remove", 16)); + connect(deleteSourceButton, SIGNAL(clicked()), SLOT(slot_installDeleteSource())); + layout->addWidget(deleteSourceButton, 2, 1, Qt::AlignLeft); + + QPushButton* addSourceButton = new QPushButton(i18n("Add library"), m_installSourcePage); + addSourceButton->setIconSet(SmallIcon("folder_new", 16)); + connect(addSourceButton, SIGNAL(clicked()), SLOT(slot_installAddSource())); + layout->addWidget(addSourceButton, 2, 2, Qt::AlignLeft); + + m_sourceLabel = new QLabel(m_installSourcePage); + layout->addMultiCellWidget(m_sourceLabel, 3,3,0,1); + + QLabel* targetHeadingLabel = new QLabel(QString("%1").arg(i18n("Select bookshelf path")), m_installSourcePage); + layout->addMultiCellWidget(targetHeadingLabel, 4,4,0,1); + + m_targetCombo = new QComboBox(m_installSourcePage); + layout->addWidget(m_targetCombo, 5, 0); + + m_targetLabel = new QLabel(m_installSourcePage); + layout->addMultiCellWidget(m_targetLabel, 6,6,0,0,Qt::AlignTop); + + //part beloew main layout with the back/next buttons + QHBoxLayout* myHBox = new QHBoxLayout(); + vboxlayout->addLayout(myHBox); + + m_installBackButton = new QPushButton(i18n("Back"), m_installPage); + m_installBackButton->setIconSet(SmallIcon("back",16)); + myHBox->addWidget(m_installBackButton); + + myHBox->addSpacing(10); + myHBox->addStretch(5); + + m_installContinueButton = new QPushButton(i18n("Connect to library"), m_installPage); + m_installContinueButton->setIconSet(SmallIcon("forward",16)); + connect(m_installContinueButton, SIGNAL(clicked()), this, SLOT(slot_connectToSource())); + myHBox->addWidget(m_installContinueButton); + + m_installBackButton->setEnabled(false); + + connect(m_sourceCombo, SIGNAL( highlighted(const QString&) ), SLOT( slot_sourceSelected( const QString&) )); + connect(m_targetCombo, SIGNAL( highlighted(const QString&) ), SLOT( slot_targetSelected( const QString&) )); + populateInstallCombos(); + + slot_sourceSelected( m_sourceCombo->currentText() ); + } + + void CSwordSetupDialog::initRemove() { + QFrame* page = m_removePage = addPage(i18n("Remove works"), QString::null, SmallIcon("edittrash",32)); + + page->setMinimumSize(500,400); + + QGridLayout* layout = new QGridLayout(page, 4, 4); + layout->setMargin(5); + + layout->setSpacing(10); + layout->setColStretch(1,1); + layout->setRowStretch(2,1); + + QLabel* mainLabel= CToolClass::explanationLabel(page, + i18n("Remove installed work(s)"), + i18n("This dialog lets you remove installed works from your system. Choose the modules and then click on the remove button.") + ); + layout->addMultiCellWidget(mainLabel, 0, 0, 0, 3); + + QLabel* headingLabel = new QLabel(QString("%1").arg(i18n("Select works to be uninstalled")), page); + layout->addMultiCellWidget(headingLabel, 1, 1, 0, 3); + + m_removeModuleListView = new CSwordSetupModuleListView(page, false); + layout->addMultiCellWidget( m_removeModuleListView, 2,2,0,3); + + m_removeRemoveButton = new QPushButton(i18n("Remove selected work(s)"), page); + m_removeRemoveButton->setIconSet( SmallIcon("edittrash", 16) ); + layout->addWidget(m_removeRemoveButton, 3, 3, Qt::AlignRight); + + connect(m_removeRemoveButton, SIGNAL(clicked()), + this, SLOT(slot_doRemoveModules())); + + populateRemoveModuleListView(); + } + + void CSwordSetupDialog::initManageIndices() + { + QFrame* page = m_manageIndiciesPage = addPage(i18n("Manage search indicies"), + QString::null, SmallIcon("filefind",32)); + + page->setMinimumSize(500,400); + QVBoxLayout* box = new QVBoxLayout(page, 4, 4); + CManageIndicesWidget* mi = new CManageIndicesWidget(page); + box->addWidget(mi); + } + + void CSwordSetupDialog::slotOk() { + writeSwordConfig(); + KDialogBase::slotOk(); + emit signalSwordSetupChanged( ); + } + + void CSwordSetupDialog::writeSwordConfig() { + if (m_swordSetupChanged && m_swordPathListBox->childCount()) { + QStringList targets; + QListViewItemIterator it( m_swordPathListBox ); + while ( it.current() ) { + QListViewItem *item = it.current(); + if (!item->text(0).isEmpty()) { + targets << item->text(0); + } + ++it; + } + + BTInstallMgr::Tool::LocalConfig::setTargetList(targets); //creates new Sword config + } + } + + const bool CSwordSetupDialog::showPart( CSwordSetupDialog::Parts ID ) { + bool ret = false; + switch (ID) { + case CSwordSetupDialog::Sword: + showPage( pageIndex(m_swordConfigPage) ); + break; + case CSwordSetupDialog::Install: + showPage( pageIndex(m_installPage) ); + break; + case CSwordSetupDialog::Remove: + showPage( pageIndex(m_removePage) ); + break; + default: + break; + } + return ret; + } + + + void CSwordSetupDialog::populateInstallCombos() { + m_sourceCombo->clear(); + + BTInstallMgr::Tool::RemoteConfig::initConfig(); + + QStringList list; + { + BTInstallMgr mgr; + list = BTInstallMgr::Tool::RemoteConfig::sourceList(&mgr); + } + if (!list.count()) { //add Crosswire entry + InstallSource is("FTP"); //default return value + is.caption = "Crosswire"; + is.source = "ftp.crosswire.org"; + is.directory = "/pub/sword/raw"; + BTInstallMgr::Tool::RemoteConfig::addSource(&is); + + BTInstallMgr mgr; //make sure we're uptodate + list = BTInstallMgr::Tool::RemoteConfig::sourceList(&mgr); + + Q_ASSERT( list.count() > 0 ); + } + + BTInstallMgr mgr; + for (QStringList::iterator it = list.begin(); it != list.end(); ++it) { + sword::InstallSource is = BTInstallMgr::Tool::RemoteConfig::source(&mgr, *it); + + if (BTInstallMgr::Tool::RemoteConfig::isRemoteSource(&is)) { + m_sourceCombo->insertItem( i18n("[Remote]") + " " + *it ); //remote source + } + else { // local source + QFileInfo fi( is.directory.c_str() ); + if (fi.isDir() && fi.isReadable()) { + m_sourceCombo->insertItem( i18n("[Local]") + " " + *it ); + } + } + } + + //Fill in the targets in the targets combobox + //list = (m_targetCombo->count()) ? m_swordPathListBox : BTInstallMgr::Tool::LocalConfig::targetList(); + if (m_targetCombo->count()) { //we already read in the list once, we have to use the Sword paths list items now because this list is newer + list.clear(); + QListViewItemIterator it2( m_swordPathListBox ); + while (it2.current()) { + list << it2.current()->text(0); + + ++it2; + } + } + else { + list = BTInstallMgr::Tool::LocalConfig::targetList(); + } + + m_targetCombo->clear(); + for (QStringList::iterator it = list.begin(); it != list.end(); ++it) { + QFileInfo fi(*it); + if (fi.isDir() && fi.isWritable()) { + m_targetCombo->insertItem( *it ); + } + } + + //init widget states + m_targetCombo->setEnabled( (m_targetCombo->count() > 0) ); + m_installContinueButton->setEnabled( + (m_sourceCombo->count() > 0) && (m_targetCombo->count() > 0) + ); + + slot_sourceSelected( m_sourceCombo->currentText() ); + } + + + void CSwordSetupDialog::slot_sourceSelected(const QString &sourceName) { + //remove status parta + QString source = sourceName; + + QString rep = i18n("[Local]") + " "; + int i = source.find(rep); + if (i>=0) { + source.remove(i, rep.length()); + } + rep = i18n("[Remote]") + " "; + i = source.find(rep); + if (i>=0) { + source.remove(i, rep.length()); + } + + BTInstallMgr mgr; + QString url; + sword::InstallSource is = BTInstallMgr::Tool::RemoteConfig::source(&mgr, source) ; + + if (BTInstallMgr::Tool::RemoteConfig::isRemoteSource(&is)) { + url = QString("ftp://%1%2").arg(is.source.c_str()).arg(is.directory.c_str()); + } + else { + url = QString("%1").arg(is.directory.c_str()); + } + m_sourceLabel->setText( url ); + + m_refreshedRemoteSources = false; + } + + + void CSwordSetupDialog::slot_targetSelected(const QString &targetName) { + m_targetLabel->setText( m_targetMap[targetName] ); + target = m_targetMap[targetName]; + } + + + void CSwordSetupDialog::slot_doRemoveModules() { + + QStringList moduleList = m_removeModuleListView->selectedModules(); + + if ( moduleList.empty() ) { + return; //no message, just do nothing + } + + const QString message = i18n("You selected the following work(s): %1.\n\n" + "Do you really want to remove them from your system?").arg(moduleList.join(", ")); + + if ((KMessageBox::warningYesNo(0, message, i18n("Warning")) == KMessageBox::Yes)) { //Yes was pressed. + sword::InstallMgr installMgr; + QDict mgrDict; //maps config paths to SWMgr objects + + for ( QStringList::Iterator it = moduleList.begin(); it != moduleList.end(); ++it ) { + if (CSwordModuleInfo* m = backend()->findModuleByName(*it)) { //module found? + QString prefixPath = m->config(CSwordModuleInfo::AbsoluteDataPath) + "/"; + QString dataPath = m->config(CSwordModuleInfo::DataPath); + + if (dataPath.left(2) == "./") { + dataPath = dataPath.mid(2); + } + + if (prefixPath.contains(dataPath)) { //remove module part to get the prefix path + prefixPath = prefixPath.remove( prefixPath.find(dataPath), dataPath.length() ); + } + else { //fall back to default Sword config path + prefixPath = QString::fromLatin1(backend()->prefixPath); + } + + sword::SWMgr* mgr = mgrDict[ prefixPath ]; + if (!mgr) { //create new mgr if it's not yet available + mgrDict.insert(prefixPath, new sword::SWMgr(prefixPath.local8Bit())); + mgr = mgrDict[ prefixPath ]; + } + + installMgr.removeModule(mgr, m->name().latin1()); + } + } + + CPointers::backend()->reloadModules(); + populateRemoveModuleListView(); //rebuild the tree + populateInstallModuleListView( currentInstallSource() ); //rebuild the tree + + //delete all mgrs + mgrDict.setAutoDelete(true); + mgrDict.clear(); + } + } + + void CSwordSetupDialog::populateRemoveModuleListView() { + CSwordBackend myBackend; + KApplication::kApplication()->processEvents(); + myBackend.initModules(); + + m_removeModuleListView->clear(); + + ListCSwordModuleInfo list = myBackend.moduleList(); + int mod = 0; + sword::SWConfig moduleConfig(""); + + mod = 1; + ListCSwordModuleInfo::iterator end_it = list.end(); + + for (ListCSwordModuleInfo::iterator it(list.begin()); it != end_it; ++it, ++mod) { + m_removeModuleListView->addModule( + (*it), + (*it)->config(CSwordModuleInfo::ModuleVersion) + ); + } + + m_removeModuleListView->finish(); + } + + const bool CSwordSetupDialog::refreshRemoteModuleCache( const QString& sourceName ) { + if (m_refreshedRemoteSources) { //the module info is up-to-date + return true; + } + + BTInstallMgr iMgr; + m_currentInstallMgr = &iMgr; //for the progress dialog + sword::InstallSource is = BTInstallMgr::Tool::RemoteConfig::source(&iMgr, sourceName); + bool success = false; + + m_progressDialog = new KProgressDialog(this, 0, i18n("Download"), QString::null, true); + m_progressDialog->progressBar()->setTotalSteps(100); + m_progressDialog->setLabel( i18n("Downloading library information...") ); + m_progressDialog->setMinimumDuration(0); //show immediately + m_progressDialog->setAutoClose(false); + m_progressDialog->show(); + KApplication::kApplication()->processEvents(); + + connect( + m_progressDialog, SIGNAL(cancelClicked()), + SLOT(slot_moduleRefreshProgressCancelClicked()) + ); + connect( + &iMgr, SIGNAL(completed(const int, const int)), + SLOT(slot_moduleRefreshCompleted(const int, const int)) + ); + + + if (BTInstallMgr::Tool::RemoteConfig::isRemoteSource(&is)) { + // int errorCode = 0; + if (!m_refreshedRemoteSources) { + if (!iMgr.refreshRemoteSource( &is ) ) { //make sure the sources were updates sucessfully + m_refreshedRemoteSources = true; + success = true; + } + else { //an error occurres, the KIO library should display an error message + qWarning("InstallMgr: refreshRemoteSources returned an error."); + m_refreshedRemoteSources = false; + success = false; + } + } + } + + m_progressDialog->close(); + delete m_progressDialog; + m_progressDialog = 0; + + return success; + } + + bool CSwordSetupDialog::populateInstallModuleListView( const QString& sourceName ) { + KApplication::kApplication()->processEvents(); + Q_ASSERT(m_installModuleListView); + if (!m_installModuleListView) { // this may be an update after removing modules + return false; + } + + m_installModuleListView->clear(); + + BTInstallMgr iMgr; + sword::InstallSource is = BTInstallMgr::Tool::RemoteConfig::source(&iMgr, sourceName); + + if (BTInstallMgr::Tool::RemoteConfig::isRemoteSource(&is) + && !refreshRemoteModuleCache(sourceName)) { + // qWarning("finish"); + m_installModuleListView->finish(); + return false; + } + + //kind of a hack to provide a pointer to mgr next line + // qWarning("createing remote_backend"); + util::scoped_ptr remote_backend( BTInstallMgr::Tool::backend(&is) ); + // qWarning("config path1 is %s", remote_backend->configPath); + // qWarning("config path2 is %s", BTInstallMgr::Tool::backend(&is)->configPath ); //mem leak + // qWarning("after creating remote_backend"); + Q_ASSERT(remote_backend); + Q_ASSERT( BTInstallMgr::Tool::RemoteConfig::isRemoteSource(&is) ); + if (!remote_backend) { + m_installModuleListView->finish(); + return false; + } + + CSwordBackend* local_backend = CPointers::backend(); + Q_ASSERT(local_backend); + // qWarning("local backend has path %s", local_backend->); + KApplication::kApplication()->processEvents(); + //local_backend.initModules(); + + // qWarning("config path3 is %s", remote_backend->configPath); + ListCSwordModuleInfo mods = remote_backend->moduleList(); + Q_ASSERT(mods.count() > 0); + + ListCSwordModuleInfo::iterator end_it = mods.end(); + for (ListCSwordModuleInfo::iterator it(mods.begin()); it != end_it; ++it) { + // qWarning("adding module %s (%s)", (*it)->name().latin1(), (*it)->config(CSwordModuleInfo::AbsoluteDataPath).latin1()); + bool isUpdate = false; + + CSwordModuleInfo* const installedModule = local_backend->findModuleByName((*it)->name()); + if (installedModule) { + // qWarning("module is already installed in %s", installedModule->config(CSwordModuleInfo::AbsoluteDataPath).latin1()); + } + // Q_ASSERT(installedModule); + + if (installedModule) { //module already installed? + //check whether it's an uodated module or just the same + const SWVersion installedVersion( + installedModule->config(CSwordModuleInfo::ModuleVersion).latin1() + ); + + const SWVersion newVersion( + (*it)->config(CSwordModuleInfo::ModuleVersion).latin1() + ); + + isUpdate = (newVersion > installedVersion); + if (!isUpdate) { + // qWarning(" mod %s is not an update", (*it)->name().latin1()); + continue; + } + } + + // Q_ASSERT(installedModule); + m_installModuleListView->addModule( + (*it), + installedModule + ? installedModule->config(CSwordModuleInfo::ModuleVersion) + : QString::null + ); + } + m_installModuleListView->finish(); + return true; + } + + void CSwordSetupDialog::slot_connectToSource() { + if (!m_installModuleListPage) { //the widgets are not yet created + m_installModuleListPage = new QWidget(0); + + QGridLayout* layout = new QGridLayout(m_installModuleListPage, 7, 2); + layout->setMargin(5); + layout->setSpacing(10); + + QLabel* installLabel = CToolClass::explanationLabel(m_installModuleListPage, + i18n("Install/update works - Step 2"), + i18n("Please choose the works which should be installed and/or updated and click the install button.") + ); + layout->addMultiCellWidget(installLabel, 0,0,0,1); + layout->setRowStretch(0,0); + + m_installWidgetStack->addWidget(m_installModuleListPage); + m_installModuleListPage->setMinimumSize(500,400); + + //insert a list box which contains all available remote modules + BTInstallMgr iMgr; + sword::InstallSource is = BTInstallMgr::Tool::RemoteConfig::source(&iMgr, currentInstallSource()); + + m_installModuleListView = new CSwordSetupModuleListView(m_installModuleListPage, true, &is); + layout->addMultiCellWidget( m_installModuleListView, 1,6,0,1); + layout->setColStretch(0,5); + layout->setRowStretch(1,5); + + connect(m_installModuleListView, SIGNAL(selectedModulesChanged()), SLOT(slot_installModulesChanged())); + } + + if (populateInstallModuleListView( currentInstallSource() ) ){ + + //code valid for already existing and newly created widgets + disconnect( m_installContinueButton, SIGNAL(clicked()), this, SLOT(slot_connectToSource())); + connect( m_installContinueButton, SIGNAL(clicked()), this, SLOT(slot_installModules())); + + m_installContinueButton->setText(i18n("Install works")); + m_installContinueButton->setEnabled(false); + + m_installWidgetStack->raiseWidget(m_installModuleListPage); + + connect( m_installBackButton, SIGNAL(clicked()), this, SLOT(slot_showInstallSourcePage())); + m_installBackButton->setEnabled(true); + } + } + + void CSwordSetupDialog::slot_installAddSource() { + + sword::InstallSource newSource = CSwordSetupInstallSourcesDialog::getSource(); + + if ( !((QString)newSource.type.c_str()).isEmpty() ) { // we have a valid source to add + BTInstallMgr::Tool::RemoteConfig::addSource( &newSource ); + } + + populateInstallCombos(); //make sure the items are updated + } + + void CSwordSetupDialog::slot_installDeleteSource() { + + BTInstallMgr iMgr; + sword::InstallSource is = BTInstallMgr::Tool::RemoteConfig::source( &iMgr, currentInstallSource() ); + BTInstallMgr::Tool::RemoteConfig::removeSource( &iMgr, &is ); + + populateInstallCombos(); + } + + void CSwordSetupDialog::slot_installModulesChanged() { + // This function enabled the Install modules button if modules are chosen + // If an item was clicked to be not chosen look if there are other selected items + // If the item was clicked to be chosen enable the button without looking at the other items + + const int moduleCount = m_installModuleListView->selectedModules().count(); + m_installContinueButton->setEnabled(moduleCount > 0); + } + + void CSwordSetupDialog::slot_installModules() { + qWarning("CSwordSetupDialog::slot_installModules()"); + // m_installContinueButton->setEnabled(false); + // m_installBackButton->setEnabled(false); + + //first get all chosen modules + QStringList moduleList = m_installModuleListView->selectedModules(); + Q_ASSERT(moduleList.count() != 0); + if (moduleList.count() == 0) { // no modules selected + return; + } + + const QString message = i18n("You selected the following works: %1.\n\n\ + Do you really want to install them on your system?").arg(moduleList.join(", ")); + + if ((KMessageBox::warningYesNo(0, message, i18n("Warning")) == KMessageBox::Yes)) { //Yes was pressed. + BTInstallMgr iMgr; + m_currentInstallMgr = &iMgr; + sword::InstallSource is = BTInstallMgr::Tool::RemoteConfig::source(&iMgr, currentInstallSource()); + + qWarning("installing from %s/%s", is.source.c_str(), is.directory.c_str()); + QString target = m_targetCombo->currentText(); + + //make sure target/mods.d and target/modules exist + QDir dir(target.latin1()); + if (!dir.exists()) { + dir.mkdir(target, true); + } + if (!dir.exists("modules")) { + dir.mkdir("modules"); + } + if (!dir.exists("mods.d")) { + dir.mkdir("mods.d"); + } + + sword::SWMgr lMgr( target.latin1() ); + + //module are removed in this section of code + m_installedModuleCount = 0; + m_progressDialog = new KProgressDialog(this, 0, i18n("Download of work(s)"), QString::null, true); + m_progressDialog->progressBar()->setTotalSteps(100 * moduleList.count()); + m_progressDialog->setMinimumDuration(0); //show immediately + m_progressDialog->setAutoClose(false); + m_progressDialog->show(); + KApplication::kApplication()->processEvents(); + + connect( + m_progressDialog, SIGNAL(cancelClicked()), + SLOT(slot_installProgressCancelClicked()) + ); + connect( + &iMgr, SIGNAL(completed(const int, const int)), + SLOT(installCompleted(const int, const int)) + ); + + for ( QStringList::Iterator it = moduleList.begin(); (it != moduleList.end()) && !m_progressDialog->wasCancelled(); ++it, ++m_installedModuleCount ) { + + qWarning("installing %s", (*it).latin1()); + m_installingModule = *it; + + //check whether it's an update. If yes, remove existing module first + CSwordModuleInfo* m = backend()->findModuleByName(*it); + Q_ASSERT(!m); + if (m) { //module found? + QString prefixPath = m->config(CSwordModuleInfo::AbsoluteDataPath) + "/"; + QString dataPath = m->config(CSwordModuleInfo::DataPath); + if (dataPath.left(2) == "./") { + dataPath = dataPath.mid(2); + } + + if (prefixPath.contains(dataPath)) { + prefixPath.remove( prefixPath.find(dataPath), dataPath.length() ); //complicated to work with Qt 3.0 + //prefixPath = prefixPath.replace(dataPath, ""); //old code working with Qt 3.2 + } + else { + prefixPath = QString::fromLatin1(backend()->prefixPath); + } + + sword::SWMgr mgr(prefixPath.latin1()); + iMgr.removeModule(&mgr, m->name().latin1()); + } + + if (!m_progressDialog->wasCancelled() + && BTInstallMgr::Tool::RemoteConfig::isRemoteSource(&is)) { + // qWarning("calling install"); + int status = iMgr.installModule(&lMgr, 0, (*it).latin1(), &is); + // qWarning("status: %d", status); + Q_ASSERT(status != -1); + } + else if (!m_progressDialog->wasCancelled()) { //local source + iMgr.installModule(&lMgr, is.directory.c_str(), (*it).latin1()); + } + } + + m_progressDialog->close(); + delete m_progressDialog; + m_progressDialog = 0; + + //reload our backend because modules may have changed + backend()->reloadModules(); + populateInstallModuleListView( currentInstallSource() ); //rebuild the tree + populateRemoveModuleListView(); + } + + m_currentInstallMgr = 0; + m_installBackButton->setEnabled(true); + slot_installModulesChanged(); + } + + void CSwordSetupDialog::installCompleted( const int total, const int /* file */) { + if (m_progressDialog) { + m_progressDialog->progressBar()->setProgress(total+100*m_installedModuleCount); + m_progressDialog->setLabel( i18n("[%1]: %2% complete").arg(m_installingModule).arg(total) ); + } + KApplication::kApplication()->processEvents(); + } + + void CSwordSetupDialog::slot_showInstallSourcePage() { + connect( m_installContinueButton, SIGNAL(clicked()), this, SLOT(slot_connectToSource())); + disconnect( m_installContinueButton, SIGNAL(clicked()), this, SLOT(slot_installModules())); + m_installBackButton->setEnabled(false); + + m_installContinueButton->setText(i18n("Connect to library")); + m_installContinueButton->setEnabled(true); + + m_installWidgetStack->raiseWidget(m_installSourcePage); + } + + void CSwordSetupDialog::slot_swordEditClicked() { + if (QListViewItem* i = m_swordPathListBox->currentItem()) { + KURL url = KDirSelectDialog::selectDirectory(i->text(0), true); + if (url.isValid()) { + const QFileInfo fi( url.path() ); + if (!fi.exists() || !fi.isWritable()) { + const int result = KMessageBox::warningYesNo(this, i18n("This directory is not writable, so works \ + can not be installed here using BibleTime. \ + Do you want to use this directory instead of the previous value?")); + if (result == KMessageBox::No) { + return; + } + } + i->setText(0, url.path()); + m_swordSetupChanged = true; + writeSwordConfig(); //to make sure other parts work with the new setting + populateInstallCombos(); //update target list bof on install page + populateRemoveModuleListView(); + } + } + } + + void CSwordSetupDialog::slot_swordAddClicked() { + KURL url = KDirSelectDialog::selectDirectory(QString::null, true); + if (url.isValid()) { + const QFileInfo fi( url.path() ); + if (!fi.exists() || !fi.isWritable()) { + const int result = KMessageBox::warningYesNo(this, i18n("This directory is not writable, \ + so works can not be installed here using BibleTime. \ + Do you want to add it to the list of module directories?")); + if (result == KMessageBox::No) { + return; + } + } + (void)new QListViewItem(m_swordPathListBox, url.path()); + m_swordSetupChanged = true; + writeSwordConfig(); //to make sure other parts work with the new setting + populateInstallCombos(); //update target list bof on install page + populateRemoveModuleListView(); + } + } + + void CSwordSetupDialog::slot_swordRemoveClicked() { + QListViewItem* i = m_swordPathListBox->currentItem(); + if (i) { + delete i; + + m_swordSetupChanged = true; + writeSwordConfig(); //to make sure other parts work with the new setting + populateInstallCombos(); //update target list bof on install page + populateRemoveModuleListView(); + } + } + + void CSwordSetupDialog::setupSwordPathListBox() { + QStringList targets = BTInstallMgr::Tool::LocalConfig::targetList(); + m_swordPathListBox->clear(); + + for (QStringList::iterator it = targets.begin(); it != targets.end(); ++it) { + if ((*it).isEmpty()) { + continue; + } + new QListViewItem(m_swordPathListBox, *it); + } + m_swordPathListBox->setCurrentItem( m_swordPathListBox->firstChild() ); + } + + void CSwordSetupDialog::slot_swordPathSelected() { + m_swordEditPathButton->setEnabled( m_swordPathListBox->currentItem() ); + } + + const QString CSwordSetupDialog::currentInstallSource() { + QString source = m_sourceCombo->currentText(); + QString rep = i18n("[Local]") + " "; + int i = source.find(rep); + if (i>=0) { + source.remove(i, rep.length()); + } + rep = i18n("[Remote]") + " "; + i = source.find(rep); + if (i>=0) { + source.remove(i, rep.length()); + } + return source; + } + + void CSwordSetupDialog::slot_installProgressCancelClicked() { + //cancel possible active module installation + Q_ASSERT(m_currentInstallMgr); + if (m_currentInstallMgr) { + m_currentInstallMgr->terminate(); + } + } + + void CSwordSetupDialog::slot_moduleRefreshProgressCancelClicked() { + Q_ASSERT(m_currentInstallMgr); + if (m_currentInstallMgr) { + m_currentInstallMgr->terminate(); + } + KApplication::kApplication()->processEvents(); + } + + void CSwordSetupDialog::slot_moduleRefreshCompleted(const int /*total*/, const int current) { + if (m_progressDialog) { + m_progressDialog->progressBar()->setProgress(current); + } + KApplication::kApplication()->processEvents(); + } + +} // NAMESPACE diff --git a/bibletime/frontend/cswordsetupdialog.h b/bibletime/frontend/cswordsetupdialog.h new file mode 100644 index 0000000..a77a6e5 --- /dev/null +++ b/bibletime/frontend/cswordsetupdialog.h @@ -0,0 +1,150 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSWORDSETUPDIALOG_H +#define CSWORDSETUPDIALOG_H + +#include "cbtconfig.h" +#include "util/cpointers.h" +#include "btinstallmgr.h" + +//QT includes +#include +#include + +//KDE includes +#include + +class QWidget; +class QLabel; +class QComboBox; +class QWidgetStack; +class QButton; +class QPushButton; +class QLineEdit; +class QListView; + +class KProgressDialog; + +namespace BookshelfManager { + + class CSwordSetupModuleListView; + + /** + * The Sword configuration dialog of BibleTime + * @author The BibleTime Team + */ +class CSwordSetupDialog : public KDialogBase, public CPointers { + Q_OBJECT + +public: + CSwordSetupDialog(QWidget *parent=0, const char *name=0); + + enum Parts { + Sword, + Install, + Remove + }; + + /** Opens the page which contaisn the given part ID. */ + const bool showPart( CSwordSetupDialog::Parts ID ); + +private: + void initSwordConfig(); + void initInstall(); + void initRemove(); + void initManageIndices(); + + void writeSwordConfig(); + + void setupSwordPathListBox(); + void populateInstallCombos(); + + const QString currentInstallSource(); + + QFrame* m_swordConfigPage; + QListView* m_swordPathListBox; + QPushButton* m_swordEditPathButton; + QPushButton* m_swordAddPathButton; + QPushButton* m_swordRemovePathButton; + QStringList m_swordPathList; + bool m_swordSetupChanged; + + QFrame* m_removePage; + QFrame* m_manageIndiciesPage; + + QFrame* m_installPage; + QWidgetStack* m_installWidgetStack; + + QString source; + QString target; + + QLabel* m_sourceLabel; + QLabel* m_targetLabel; + QComboBox* m_sourceCombo; + QComboBox* m_targetCombo; + + QMap m_targetMap; + + CSwordSetupModuleListView* m_removeModuleListView; + QPushButton* m_removeRemoveButton; + + const bool refreshRemoteModuleCache( const QString& sourceName ); + void populateRemoveModuleListView(); + bool populateInstallModuleListView(const QString& sourceName); + + //install module stuff + QPushButton* m_installBackButton; + QPushButton* m_installContinueButton; + + QWidget* m_installModuleListPage; + QWidget* m_installSourcePage; + + CSwordSetupModuleListView* m_installModuleListView; + KProgressDialog* m_progressDialog; + QString m_installingModule; + bool m_refreshedRemoteSources; + unsigned int m_installedModuleCount; + + BTInstallMgr* m_currentInstallMgr; //pointer to the current installmgr object so we can access it in the cancel install slot + +private slots: + void slot_sourceSelected(const QString &sourceName); + void slot_targetSelected(const QString &targetName); + + void slot_doRemoveModules(); + + void slotOk(); + + void slot_connectToSource(); + void slot_moduleRefreshProgressCancelClicked(); + void slot_moduleRefreshCompleted(const int, const int); + + void slot_installAddSource(); + void slot_installDeleteSource(); + void slot_installModules(); + void slot_installModulesChanged(); + void slot_installProgressCancelClicked(); + void slot_showInstallSourcePage(); + + void installCompleted( const int, const int ); + void slot_swordRemoveClicked(); + void slot_swordAddClicked(); + void slot_swordEditClicked(); + void slot_swordPathSelected(); + +signals: // Signals + void signalSwordSetupChanged(); + }; + +} + +#endif //CSWORDSETUPDIALOG_H diff --git a/bibletime/frontend/cswordsetupinstallsourcesdialog.cpp b/bibletime/frontend/cswordsetupinstallsourcesdialog.cpp new file mode 100644 index 0000000..504ab7d --- /dev/null +++ b/bibletime/frontend/cswordsetupinstallsourcesdialog.cpp @@ -0,0 +1,172 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BT includes +#include "cswordsetupinstallsourcesdialog.h" +#include "util/scoped_resource.h" + +//Qt includes +#include +#include +#include +#include +#include +#include +#include + + +#include +#include + +namespace BookshelfManager { + + const QString PROTO_FILE( i18n("Local") ); //Local path + const QString PROTO_FTP( i18n("Remote") ); //Remote path + + + CSwordSetupInstallSourcesDialog::CSwordSetupInstallSourcesDialog(/*QWidget *parent*/) +: QDialog() { + + QVBoxLayout* mainLayout = new QVBoxLayout( this ); + mainLayout->setMargin( 10 ); + mainLayout->setSpacing( 5 ); + + QHBoxLayout *captionLayout = new QHBoxLayout( mainLayout ); + QLabel *label = new QLabel( i18n("Caption"), this ); + captionLayout->addWidget( label ); + + m_captionEdit = new QLineEdit( this ); + m_captionEdit->setText("Crosswire Bible Society"); + captionLayout->addWidget( m_captionEdit ); + + mainLayout->addSpacing( 10 ); + + QGridLayout* layout = new QGridLayout( mainLayout, 3, 3 ); + layout->setSpacing( 5 ); + + label = new QLabel(i18n("Type"), this); + layout->addWidget( label, 0, 0); + + m_serverLabel = new QLabel(i18n("Server"), this); + layout->addWidget( m_serverLabel, 0, 1); + + label = new QLabel(i18n("Path"), this); + layout->addWidget( label, 0, 2 ); + + m_protocolCombo = new QComboBox( this ); + layout->addWidget(m_protocolCombo, 1, 0); + m_protocolCombo->insertItem( PROTO_FTP ); + m_protocolCombo->insertItem( PROTO_FILE ); + + m_serverEdit = new QLineEdit( this ); + layout->addWidget( m_serverEdit, 1, 1 ); + m_serverEdit->setText("ftp.crosswire.org"); + + m_pathEdit = new QLineEdit( this ); + layout->addWidget( m_pathEdit, 1, 2 ); + m_pathEdit->setText("/pub/sword/raw"); + + mainLayout->addSpacing( 10 ); + + QHBoxLayout* buttonLayout = new QHBoxLayout( mainLayout ); + buttonLayout->addStretch(); + QPushButton* okButton = new QPushButton( i18n("Ok"), this); + QPushButton* discardButton = new QPushButton( i18n("Discard"), this); + buttonLayout->addWidget( discardButton); + buttonLayout->addWidget( okButton); + buttonLayout->addStretch(); + + connect( okButton, SIGNAL( clicked() ), this, SLOT( slotOk() ) ); + connect( discardButton, SIGNAL( clicked() ), this, SLOT( reject() ) ); + connect( m_protocolCombo, SIGNAL( activated(int) ), this, SLOT( slotProtocolChanged() ) ); + + } + void CSwordSetupInstallSourcesDialog::slotOk() { + //run a few tests to validate the input first + if ( m_captionEdit->text().stripWhiteSpace().isEmpty() ) { //no caption + QMessageBox::information( this, i18n( "Error" ), i18n("Please provide a caption."), QMessageBox::Retry); + return; + } + + BTInstallMgr iMgr; + sword::InstallSource is = BTInstallMgr::Tool::RemoteConfig::source( &iMgr, m_captionEdit->text() ); + if ( (QString)is.caption.c_str() == m_captionEdit->text() ) { //source already exists + QMessageBox::information( this, i18n( "Error" ), + i18n("A source with this caption already exists.
Please provide a different caption."), QMessageBox::Retry); + return; + } + + if ( m_protocolCombo->currentText() == PROTO_FTP && + m_serverEdit->text().stripWhiteSpace().isEmpty() ) { //no server name + QMessageBox::information( this, i18n( "Error" ), i18n("Please provide a server name."), QMessageBox::Retry); + return; + } + + if ( m_protocolCombo->currentText() == PROTO_FILE) { + const QFileInfo fi( m_pathEdit->text() ); + if (!fi.exists() || !fi.isReadable()) { //no valid and readable path + QMessageBox::information( this, i18n( "Error" ), i18n("Please provide a valid, readable path."), QMessageBox::Retry); + return; + } + else if ( m_pathEdit->text().isEmpty() ) { + QMessageBox::information( this, i18n( "Error" ), i18n("Please provide a path."), QMessageBox::Retry); + + } + } + + accept(); //only if nothing else failed + } + + void CSwordSetupInstallSourcesDialog::slotProtocolChanged() { + if (m_protocolCombo->currentText() == PROTO_FTP) { //REMOTE + m_serverLabel->show(); + m_serverEdit->show(); + } + else { //LOCAL, no server needed + m_serverLabel->hide(); + m_serverEdit->hide(); + + KURL url = KDirSelectDialog::selectDirectory(QString::null, true); + if (url.isValid()) { + m_pathEdit->setText( url.path() ); + } + } + + } + + sword::InstallSource CSwordSetupInstallSourcesDialog::getSource() { + + util::scoped_ptr dlg( new CSwordSetupInstallSourcesDialog() ); + sword::InstallSource newSource(""); //empty, invalid Source + + if (dlg->exec() == QDialog::Accepted) { + if (dlg->m_protocolCombo->currentText() == PROTO_FTP) { + newSource.type = "FTP"; + newSource.source = dlg->m_serverEdit->text().utf8(); + + //a message to the user would be nice, but we're in message freeze right now (1.5.1) + if (dlg->m_serverEdit->text().right(1) == "/") { //remove a trailing slash + newSource.source = dlg->m_serverEdit->text().mid(0, dlg->m_serverEdit->text().length()-1).utf8(); + } + } + else { + newSource.type = "DIR"; + newSource.source = "local"; + } + newSource.caption = dlg->m_captionEdit->text().utf8(); + newSource.directory = dlg->m_pathEdit->text().utf8(); + } + + return newSource; + } + + +} //namespace diff --git a/bibletime/frontend/cswordsetupinstallsourcesdialog.h b/bibletime/frontend/cswordsetupinstallsourcesdialog.h new file mode 100644 index 0000000..a7d039a --- /dev/null +++ b/bibletime/frontend/cswordsetupinstallsourcesdialog.h @@ -0,0 +1,34 @@ +#ifndef CSWORDSETUPINSTALLSOURCESDIALOG_H +#define CSWORDSETUPINSTALLSOURCESDIALOG_H + +#include "btinstallmgr.h" +#include + +class QLabel; +class QComboBox; +class QLineEdit; + +namespace BookshelfManager { + +class CSwordSetupInstallSourcesDialog : public QDialog { + Q_OBJECT + +public: + static sword::InstallSource getSource(); + +protected: + CSwordSetupInstallSourcesDialog(); + +protected slots: + void slotOk(); + void slotProtocolChanged(); + +private: + QLabel *m_serverLabel; + QLineEdit *m_captionEdit, *m_serverEdit, *m_pathEdit; + QComboBox *m_protocolCombo; + }; + +} //namespace + +#endif //CSWORDSETUPINSTALLSOURCESDIALOG_H diff --git a/bibletime/frontend/cswordsetupmodulelistview.cpp b/bibletime/frontend/cswordsetupmodulelistview.cpp new file mode 100644 index 0000000..e06dc9c --- /dev/null +++ b/bibletime/frontend/cswordsetupmodulelistview.cpp @@ -0,0 +1,288 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cswordsetupmodulelistview.h" +#include "btinstallmgr.h" + +#include "backend/cswordbackend.h" +#include "backend/cswordmoduleinfo.h" + +#include "util/cresmgr.h" +#include "util/ctoolclass.h" + +//QT includes +#include + +//KDE includes +#include +#include + +using namespace sword; + +namespace BookshelfManager { + + /** Tooltip implementation for QListView widgets. + * @short Tooltip for InstallationManager listviews + * @author Joachim Ansorg + */ + class ToolTip : public QToolTip { + public: + /** Constructor which takes the listview to operate on. + * @param listview We operate on this widget to request tooltips from it'd child items. + * @short Constructor. + */ + ToolTip(CSwordSetupModuleListView* listview) + : QToolTip( listview->viewport() ), + m_parent( listview ) {} + + /** Reimplementation of QToolTip::maybeTip. It's requested if a new tooltip may be displayed. + * @short Display a tooltip if we're over an item + */ + virtual void maybeTip(const QPoint& pos) { + QListViewItem* i = m_parent->itemAt(pos); + Q_ASSERT(i); + + const QRect rect = m_parent->itemRect(i); + if (m_parent->showTooltip(i, pos, 0)) { + const QString tipText = m_parent->tooltip(i, 0); + tip(rect, tipText); + } + } + + protected: + CSwordSetupModuleListView* m_parent; + }; + + /** Listview specially made for the installation manager. + * @short InstallationManager module listviews + * @author Martin Gruner + */ + CSwordSetupModuleListView::CSwordSetupModuleListView(QWidget *parent, bool is_remote, sword::InstallSource* installSource) + : KListView(parent), m_is_remote( is_remote ) { + Q_ASSERT(installSource); + new BookshelfManager::ToolTip(this); + m_backend = installSource ? BTInstallMgr::Tool::backend(installSource) : CPointers::backend(); + + addColumn(i18n("Name")); + setColumnWidthMode( 0, QListView::Maximum ); + setColumnWidth( 0, 200 ); //don`t get too broad + + addColumn(i18n("Status")); + setColumnAlignment(1, Qt::AlignRight); + addColumn(i18n("Installed version")); //version + setColumnAlignment(2, Qt::AlignHCenter); + + if (m_is_remote) { + addColumn(i18n("Remote version")); //version + } else { + addColumn(i18n("Location")); + } + setColumnAlignment(3, Qt::AlignLeft); + + setAllColumnsShowFocus(true); + setFullWidth(true); + setRootIsDecorated(true); + setResizeMode(QListView::LastColumn); + setTooltipColumn(0); + + init(); + } + + CSwordSetupModuleListView::~CSwordSetupModuleListView() { + if (m_is_remote) { + delete m_backend; + } + } + + void CSwordSetupModuleListView::init() { +#if QT_VERSION >= 0x030200 + m_categoryBible = new QCheckListItem(this, i18n("Bibles"), QCheckListItem::CheckBoxController); + m_categoryCommentary = new QCheckListItem(this, i18n("Commentaries"), QCheckListItem::CheckBoxController); + m_categoryLexicon = new QCheckListItem(this, i18n("Lexicons"), QCheckListItem::CheckBoxController); + m_categoryBook = new QCheckListItem(this, i18n("Books"), QCheckListItem::CheckBoxController); + m_categoryDevotionals = new QCheckListItem(this, i18n("Daily Devotionals"), QCheckListItem::CheckBoxController); + m_categoryGlossaries = new QCheckListItem(this, i18n("Glossaries"), QCheckListItem::CheckBoxController); +#else + // Qt <= 3.1.x doesn't support the CheckBoxController!, remove the define as soon as we switch to the new Qt + m_categoryBible = new QCheckListItem(this, i18n("Bibles"), QCheckListItem::Controller); + m_categoryCommentary = new QCheckListItem(this, i18n("Commentaries"), QCheckListItem::Controller); + m_categoryLexicon = new QCheckListItem(this, i18n("Lexicons"), QCheckListItem::Controller); + m_categoryBook = new QCheckListItem(this, i18n("Books"), QCheckListItem::Controller); + m_categoryDevotionals = new QCheckListItem(this, i18n("Daily Devotionals"), QCheckListItem::Controller); + m_categoryGlossaries = new QCheckListItem(this, i18n("Glossaries"), QCheckListItem::Controller); +#endif + + m_categoryBible->setPixmap(0, SmallIcon(CResMgr::mainIndex::closedFolder::icon, 16)); + m_categoryCommentary->setPixmap(0, SmallIcon(CResMgr::mainIndex::closedFolder::icon, 16)); + m_categoryLexicon->setPixmap(0, SmallIcon(CResMgr::mainIndex::closedFolder::icon, 16)); + m_categoryBook->setPixmap(0, SmallIcon(CResMgr::mainIndex::closedFolder::icon, 16)); + m_categoryDevotionals->setPixmap(0, SmallIcon(CResMgr::mainIndex::closedFolder::icon, 16)); + m_categoryGlossaries->setPixmap(0, SmallIcon(CResMgr::mainIndex::closedFolder::icon, 16)); + + m_categoryBible->setOpen(true); + m_categoryCommentary->setOpen(true); + m_categoryLexicon->setOpen(true); + m_categoryBook->setOpen(true); + m_categoryDevotionals->setOpen(true); + m_categoryGlossaries->setOpen(true); + + // connect(this, SIGNAL(executed(QListViewItem*)), SLOT(slotItemClicked(QListViewItem*))); + connect(this, SIGNAL(clicked(QListViewItem*)), SLOT(slotItemClicked(QListViewItem*))); //items have to be clicked only once in double click mode + connect(this, SIGNAL(spacePressed(QListViewItem*)), SLOT(slotItemClicked(QListViewItem*))); + } + + void CSwordSetupModuleListView::finish() { + if (!m_categoryBible->childCount()) + delete m_categoryBible; + if (!m_categoryCommentary->childCount()) + delete m_categoryCommentary; + if (!m_categoryBook->childCount()) + delete m_categoryBook; + if (!m_categoryLexicon->childCount()) + delete m_categoryLexicon; + if (!m_categoryDevotionals->childCount()) + delete m_categoryDevotionals; + if (!m_categoryGlossaries->childCount()) + delete m_categoryGlossaries; + } + + void CSwordSetupModuleListView::clear() { + QListView::clear(); + init(); + } + + void CSwordSetupModuleListView::addModule(CSwordModuleInfo* module, QString localVersion) { + + QListViewItem* parent = 0; + switch ( module->type() ) { + case CSwordModuleInfo::Bible: + parent = m_categoryBible; + break; + case CSwordModuleInfo::Commentary: + parent = m_categoryCommentary; + break; + case CSwordModuleInfo::Lexicon: + parent = m_categoryLexicon; + break; + case CSwordModuleInfo::GenericBook: + parent = m_categoryBook; + break; + default: + parent = 0; + break; + } + + //handling for special module types + if ((parent == m_categoryLexicon) && (module->category() == CSwordModuleInfo::Glossary)) { + parent = m_categoryGlossaries; + } + if ((parent == m_categoryLexicon) && (module->category() == CSwordModuleInfo::DailyDevotional)) { + parent = m_categoryDevotionals; + } + + //now we know the category, find the right language group in that category + const CLanguageMgr::Language* const lang = module->language(); + QString langName = lang->translatedName(); + if (!lang->isValid()) { + langName = QString(module->module()->Lang()); + } + + QListViewItem * langFolder = 0; + if (parent) { + langFolder = parent->firstChild(); + + while( langFolder ) { //try to find language folder if it exsists + if (langFolder->text(0) == langName) { //found right folder + break; + } + + langFolder = langFolder->nextSibling(); + } + } + + if (!langFolder) { //not yet there +#if QT_VERSION >= 0x030200 + langFolder = new QCheckListItem(parent, langName, QCheckListItem::CheckBoxController); +#else + + langFolder = new QCheckListItem(parent, langName, QCheckListItem::Controller); +#endif + + langFolder->setPixmap(0, SmallIcon(CResMgr::mainIndex::closedFolder::icon, 16)); + langFolder->setOpen(false); + } + + Q_ASSERT(langFolder); + + QListViewItem* newItem = 0; + if (langFolder) { + newItem = new QCheckListItem(langFolder, module->name(), QCheckListItem::CheckBox); + } else { //shouldn't happen + newItem = new QCheckListItem(this, module->name(), QCheckListItem::CheckBox); + } + + newItem->setPixmap(0, CToolClass::getIconForModule(module)); + if (m_is_remote) { + newItem->setText(1, localVersion.isEmpty() ? i18n("New") : i18n("Updated")); + } else { + newItem->setText(1, i18n("Installed") ); + } + + newItem->setText(2, localVersion); + if (m_is_remote) { + newItem->setText(3, module->config(CSwordModuleInfo::ModuleVersion)); + } else { + newItem->setText(3, module->config(CSwordModuleInfo::AbsoluteDataPath)); + } + } + + QStringList CSwordSetupModuleListView::selectedModules() { + QStringList moduleList; + + QListViewItemIterator list_it( this ); + while ( list_it.current() ) { + QCheckListItem* i = dynamic_cast( list_it.current() ); + if (i && i->isOn() && i->type() == QCheckListItem::CheckBox ) { + moduleList << i->text(0); + } + ++list_it; + } + + return moduleList; + } + + void CSwordSetupModuleListView::slotItemClicked(QListViewItem*) { + emit selectedModulesChanged(); + } + + bool CSwordSetupModuleListView::showTooltip(QListViewItem* i, const QPoint&, int) const { + QCheckListItem* checkItem = dynamic_cast( i ); + Q_ASSERT(checkItem); + + return (checkItem && (checkItem->type() == QCheckListItem::CheckBox)); + } + + QString CSwordSetupModuleListView::tooltip(QListViewItem* i, int /*column*/) const { + QString ret; + QCheckListItem* checkItem = dynamic_cast( i ); + + if (checkItem && (checkItem->type() == QCheckListItem::CheckBox)) { + const QString moduleName = checkItem->text(0); + CSwordModuleInfo* module = m_backend->findModuleByName(moduleName); + + ret = CToolClass::moduleToolTip(module); + } + + return ret; + } + +} //NAMESPACE + diff --git a/bibletime/frontend/cswordsetupmodulelistview.h b/bibletime/frontend/cswordsetupmodulelistview.h new file mode 100644 index 0000000..1c7cac5 --- /dev/null +++ b/bibletime/frontend/cswordsetupmodulelistview.h @@ -0,0 +1,67 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSWORDMODULELISTVIEW_H +#define CSWORDMODULELISTVIEW_H + +//Sword includes +#include + +//QT includes +#include +#include + +//KDE includes +#include + +class CSwordModuleInfo; +class CSwordBackend; + +namespace BookshelfManager { + +class CSwordSetupModuleListView : public KListView { + Q_OBJECT + +public: + CSwordSetupModuleListView(QWidget* parent, bool is_remote, sword::InstallSource* installSource = 0); + virtual ~CSwordSetupModuleListView(); + + void addModule(CSwordModuleInfo *, QString localVersion); + void finish(); + QStringList selectedModules(); + void clear(); + + virtual QString tooltip(QListViewItem* i, int column) const; + virtual bool showTooltip(QListViewItem* i, const QPoint& pos, int column) const; + +protected slots: + void slotItemClicked(QListViewItem*); + +private: + void init(); + + CSwordBackend* m_backend; + bool m_is_remote; + + QListViewItem* m_categoryBible; + QListViewItem* m_categoryCommentary; + QListViewItem* m_categoryLexicon; + QListViewItem* m_categoryBook; + QListViewItem* m_categoryDevotionals; + QListViewItem* m_categoryGlossaries; + +signals: + void selectedModulesChanged(); +}; + +} //NAMESPACE + +#endif //CSWORDMODULELISTVIEW_H diff --git a/bibletime/frontend/display/Makefile.am b/bibletime/frontend/display/Makefile.am new file mode 100644 index 0000000..7a79921 --- /dev/null +++ b/bibletime/frontend/display/Makefile.am @@ -0,0 +1,24 @@ +INCLUDES = $(all_includes) + +libdisplay_a_METASOURCES = AUTO + +noinst_LIBRARIES = libdisplay.a + +libdisplay_a_SOURCES = \ +cdisplay.cpp \ +creaddisplay.cpp \ +chtmlreaddisplay.cpp \ +cwritedisplay.cpp \ +cplainwritedisplay.cpp \ +chtmlwritedisplay.cpp + +all_headers = \ +cdisplay.h \ +creaddisplay.h \ +chtmlreaddisplay.h \ +cwritedisplay.h \ +cplainwritedisplay.h \ +chtmlwritedisplay.h + +EXTRA_DIST = $(libdisplay_a_SOURCES) $(all_headers) + diff --git a/bibletime/frontend/display/Makefile.in b/bibletime/frontend/display/Makefile.in new file mode 100644 index 0000000..1356cea --- /dev/null +++ b/bibletime/frontend/display/Makefile.in @@ -0,0 +1,754 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/frontend/display +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) +ARFLAGS = cru +libdisplay_a_AR = $(AR) $(ARFLAGS) +libdisplay_a_LIBADD = +am_libdisplay_a_OBJECTS = cdisplay.$(OBJEXT) creaddisplay.$(OBJEXT) \ + chtmlreaddisplay.$(OBJEXT) cwritedisplay.$(OBJEXT) \ + cplainwritedisplay.$(OBJEXT) chtmlwritedisplay.$(OBJEXT) +#>- libdisplay_a_OBJECTS = $(am_libdisplay_a_OBJECTS) +#>+ 7 +libdisplay_a_final_OBJECTS = libdisplay_a.all_cpp.o +libdisplay_a_nofinal_OBJECTS = cdisplay.$(OBJEXT) creaddisplay.$(OBJEXT) \ + chtmlreaddisplay.$(OBJEXT) cwritedisplay.$(OBJEXT) \ + cplainwritedisplay.$(OBJEXT) chtmlwritedisplay.$(OBJEXT)\ +chtmlreaddisplay.moc.o chtmlwritedisplay.moc.o cdisplay.moc.o +@KDE_USE_FINAL_FALSE@libdisplay_a_OBJECTS = $(libdisplay_a_nofinal_OBJECTS) +@KDE_USE_FINAL_TRUE@libdisplay_a_OBJECTS = $(libdisplay_a_final_OBJECTS) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/admin/depcomp +am__depfiles_maybe = depfiles +#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 2 +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 3 +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +CXXLD = $(CXX) +#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ +#>- $(LDFLAGS) -o $@ +#>+ 3 +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libdisplay_a_SOURCES) +DIST_SOURCES = $(libdisplay_a_SOURCES) +ETAGS = etags +CTAGS = ctags +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +INCLUDES = $(all_includes) +#>- libdisplay_a_METASOURCES = AUTO +noinst_LIBRARIES = libdisplay.a +libdisplay_a_SOURCES = \ +cdisplay.cpp \ +creaddisplay.cpp \ +chtmlreaddisplay.cpp \ +cwritedisplay.cpp \ +cplainwritedisplay.cpp \ +chtmlwritedisplay.cpp + +all_headers = \ +cdisplay.h \ +creaddisplay.h \ +chtmlreaddisplay.h \ +cwritedisplay.h \ +cplainwritedisplay.h \ +chtmlwritedisplay.h + +EXTRA_DIST = $(libdisplay_a_SOURCES) $(all_headers) +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/display/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/frontend/display/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/display/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/frontend/display/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/frontend/display/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +libdisplay.a: $(libdisplay_a_OBJECTS) $(libdisplay_a_DEPENDENCIES) + -rm -f libdisplay.a + $(libdisplay_a_AR) libdisplay.a $(libdisplay_a_OBJECTS) $(libdisplay_a_LIBADD) + $(RANLIB) libdisplay.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cdisplay.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chtmlreaddisplay.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chtmlwritedisplay.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cplainwritedisplay.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/creaddisplay.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cwritedisplay.Po@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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 $(LIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ +#>- mostlyclean-am +#>+ 2 +clean-am: clean-metasources clean-bcheck clean-final clean-generic clean-libtool clean-noinstLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am + +# 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: + +#>+ 3 +chtmlreaddisplay.moc.cpp: $(srcdir)/chtmlreaddisplay.h + $(MOC) $(srcdir)/chtmlreaddisplay.h -o chtmlreaddisplay.moc.cpp + +#>+ 2 +mocs: chtmlreaddisplay.moc.cpp + +#>+ 3 +chtmlwritedisplay.moc.cpp: $(srcdir)/chtmlwritedisplay.h + $(MOC) $(srcdir)/chtmlwritedisplay.h -o chtmlwritedisplay.moc.cpp + +#>+ 2 +mocs: chtmlwritedisplay.moc.cpp + +#>+ 3 +cdisplay.moc.cpp: $(srcdir)/cdisplay.h + $(MOC) $(srcdir)/cdisplay.h -o cdisplay.moc.cpp + +#>+ 2 +mocs: cdisplay.moc.cpp + +#>+ 3 +clean-metasources: + -rm -f chtmlreaddisplay.moc.cpp chtmlwritedisplay.moc.cpp cdisplay.moc.cpp + +#>+ 2 +KDE_DIST=creaddisplay.h chtmlwritedisplay.h cdisplay.h cwritedisplay.h Makefile.in cplainwritedisplay.h chtmlreaddisplay.h Makefile.am + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/display/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/frontend/display/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/frontend/display/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 11 +libdisplay_a.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/cdisplay.cpp $(srcdir)/creaddisplay.cpp $(srcdir)/chtmlreaddisplay.cpp $(srcdir)/cwritedisplay.cpp $(srcdir)/cplainwritedisplay.cpp $(srcdir)/chtmlwritedisplay.cpp chtmlreaddisplay.moc.cpp chtmlwritedisplay.moc.cpp cdisplay.moc.cpp + @echo 'creating libdisplay_a.all_cpp.cpp ...'; \ + rm -f libdisplay_a.all_cpp.files libdisplay_a.all_cpp.final; \ + echo "#define KDE_USE_FINAL 1" >> libdisplay_a.all_cpp.final; \ + for file in cdisplay.cpp creaddisplay.cpp chtmlreaddisplay.cpp cwritedisplay.cpp cplainwritedisplay.cpp chtmlwritedisplay.cpp chtmlreaddisplay.moc.cpp chtmlwritedisplay.moc.cpp cdisplay.moc.cpp ; do \ + echo "#include \"$$file\"" >> libdisplay_a.all_cpp.files; \ + test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libdisplay_a.all_cpp.final; \ + done; \ + cat libdisplay_a.all_cpp.final libdisplay_a.all_cpp.files > libdisplay_a.all_cpp.cpp; \ + rm -f libdisplay_a.all_cpp.final libdisplay_a.all_cpp.files + +#>+ 3 +clean-final: + -rm -f libdisplay_a.all_cpp.cpp + +#>+ 3 +final: + $(MAKE) libdisplay_a_OBJECTS="$(libdisplay_a_final_OBJECTS)" all-am + +#>+ 3 +final-install: + $(MAKE) libdisplay_a_OBJECTS="$(libdisplay_a_final_OBJECTS)" install-am + +#>+ 3 +no-final: + $(MAKE) libdisplay_a_OBJECTS="$(libdisplay_a_nofinal_OBJECTS)" all-am + +#>+ 3 +no-final-install: + $(MAKE) libdisplay_a_OBJECTS="$(libdisplay_a_nofinal_OBJECTS)" install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/frontend/display/cdisplay.cpp b/bibletime/frontend/display/cdisplay.cpp new file mode 100644 index 0000000..ce97e02 --- /dev/null +++ b/bibletime/frontend/display/cdisplay.cpp @@ -0,0 +1,216 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cdisplay.h" +#include "chtmlreaddisplay.h" +#include "cplainwritedisplay.h" +#include "chtmlwritedisplay.h" + +#include "backend/creferencemanager.h" + +#include "util/ctoolclass.h" + + +//Qt includes +#include +#include +#include + +//KDE includes +#include +#include +#include + + +CDisplayConnections::CDisplayConnections( CDisplay* display ) : m_display(display) {} + +void CDisplayConnections::selectAll() { + m_display->selectAll(); +} + +void CDisplayConnections::saveAsHTML() { + m_display->save(CDisplay::HTMLText, CDisplay::Document); +} + +void CDisplayConnections::saveAsPlain() { + m_display->save(CDisplay::PlainText, CDisplay::Document); +} + +/** Emits the signal. */ +void CDisplayConnections::emitReferenceClicked( const QString& module, const QString& key) { + emit referenceClicked( module, key ); +} + +/** Emits the signal. */ +void CDisplayConnections::emitReferenceDropped( const QString& key) { + emit referenceDropped(key); +} + +/** Emits the signal. */ +void CDisplayConnections::emitTextChanged() { + emit textChanged(); +} + +void CDisplayConnections::copyAll() { + m_display->copy(CDisplay::PlainText, CDisplay::Document); +} + +/** No descriptions */ +void CDisplayConnections::copySelection() { + qWarning("copyign the selected text"); + m_display->copy(CDisplay::PlainText, CDisplay::SelectedText); +} + +void CDisplayConnections::printAll(CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions) { + m_display->print(CDisplay::Document, displayOptions, filterOptions); +} + +void CDisplayConnections::printAnchorWithText(CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions) { + m_display->print(CDisplay::AnchorWithText, displayOptions, filterOptions); +} + +void CDisplayConnections::copyAnchorOnly() { + m_display->copy(CDisplay::PlainText, CDisplay::AnchorOnly); +} + +void CDisplayConnections::copyAnchorTextOnly() { + m_display->copy(CDisplay::PlainText, CDisplay::AnchorTextOnly); +} + +void CDisplayConnections::copyAnchorWithText() { + m_display->copy(CDisplay::PlainText, CDisplay::AnchorWithText); +} + +void CDisplayConnections::saveAnchorWithText() { + m_display->save(CDisplay::PlainText, CDisplay::AnchorWithText); +} + +void CDisplayConnections::clear() { + m_display->setText(QString::null); +} + +void CDisplayConnections::zoomIn() { + m_display->zoomIn(); +} + +void CDisplayConnections::zoomOut() { + m_display->zoomOut(); +} + +void CDisplayConnections::openFindTextDialog() { + m_display->openFindTextDialog(); +} + + +/*----------------------*/ + +CReadDisplay* CDisplay::createReadInstance( CReadWindow* readWindow, QWidget* parent ) { + return new CHTMLReadDisplay(readWindow, parent); +} + +CWriteDisplay* CDisplay::createWriteInstance( CWriteWindow* writeWindow, const CWriteDisplay::WriteDisplayType& type, QWidget* parent ) { + // qWarning("CDisplay::createWriteInstance"); + if (type == PlainTextDisplay) { + return new CPlainWriteDisplay(writeWindow, parent); + } + else { + return new CHTMLWriteDisplay(writeWindow, parent); + }; +} + + +CDisplay::CDisplay(CDisplayWindow* parent) : +m_parentWindow(parent), +m_connections( new CDisplayConnections( this ) ), +m_popup(0) {} + +CDisplay::~CDisplay() { + delete m_connections; +} + +const bool CDisplay::copy( const CDisplay::TextType format, const CDisplay::TextPart part ) { + const QString content = text(format, part); + + QClipboard* cb = KApplication::clipboard(); + cb->setText(content); + return true; +} + +const bool CDisplay::save( const CDisplay::TextType format, const CDisplay::TextPart part ) { + // qWarning("CDisplay::save( const CDisplay::TextType format, const CDisplay::TextPart part )"); + const QString content = text(format, part); + QString filter = QString::null; + + switch (format) { + case HTMLText: + filter = QString("*.html *.htm | ") + i18n("HTML files") + QString("\n *.* | All files (*.*)"); + break; + case PlainText: + filter = QString("*.txt | ") + i18n("Text files") + QString("\n *.* | All files (*.*)"); + break; + }; + + const QString filename = KFileDialog::getSaveFileName(QString::null, filter, 0, i18n("Save document ...")); + + if (!filename.isEmpty()) { + CToolClass::savePlainFile(filename, content); + } + return true; +} + +/** Emits the signal which used when a reference was clicked. */ +void CDisplay::emitReferenceClicked( const QString& reference ) { + qWarning("reference clicked %s", reference.latin1()); + QString module; + QString key; + CReferenceManager::Type type; + /*const bool ok = */ + CReferenceManager::decodeHyperlink(reference, module, key, type); + if (module.isEmpty()) { + module = CReferenceManager::preferredModule( type ); + } + m_connections->emitReferenceClicked(module, key); +} + +/** Used when a reference was dropped onto the widget. */ +void CDisplay::emitReferenceDropped( const QString& reference ) { + QString module; + QString key; + CReferenceManager::Type type; + /*const bool ok = */ + CReferenceManager::decodeHyperlink(reference, module, key, type); + // if (module.isEmpty()) { + // module = CReferenceManager::preferredModule( type ); + // } + + m_connections->emitReferenceDropped(key); +} + +/** Returns the connections obect used for signas and slots. */ +CDisplayConnections* const CDisplay::connectionsProxy() const { + return m_connections; +} + +CDisplayWindow* const CDisplay::parentWindow() const { + return m_parentWindow; +} + +/** Installs the popup which should be opened when the right mouse button was pressed. */ +void CDisplay::installPopup( QPopupMenu* popup ) { + m_popup = popup; +} + +/** Returns the popup menu which was set by installPopupMenu() */ +QPopupMenu* const CDisplay::installedPopup() { + Q_ASSERT(m_popup); + return m_popup; +} + diff --git a/bibletime/frontend/display/cdisplay.h b/bibletime/frontend/display/cdisplay.h new file mode 100644 index 0000000..d37692c --- /dev/null +++ b/bibletime/frontend/display/cdisplay.h @@ -0,0 +1,189 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CDISPLAY_H +#define CDISPLAY_H + +//BibleTime includes +#include "util/cpointers.h" +#include "backend/cswordbackend.h" + +//Qt includes +#include +#include +#include + + +class CDisplayConnections; +class CReadWindow; +class CWriteWindow; + +class CDisplayWindow; +class CReadDisplay; +class CWriteDisplay; + + +class QPopupMenu; + +/** The base class for all display widgets. + * @author The BibleTime team + */ +class CDisplay : public CPointers { +public: + enum WriteDisplayType { + HTMLDisplay = 0, + PlainTextDisplay + }; + + static CReadDisplay* createReadInstance(CReadWindow* readWindow, QWidget* parent = 0); + static CWriteDisplay* createWriteInstance( CWriteWindow* writeWindow, const WriteDisplayType& type = PlainTextDisplay, QWidget* parent = 0 ); + + enum TextType { + HTMLText, /* Used for HTML markup */ + PlainText /* Plain text without links etc. */ + }; + enum TextPart { + Document, /* All text */ + SelectedText, /* Only the selected text */ + AnchorOnly, + AnchorTextOnly, + AnchorWithText + }; + + /** + * Copies the given text with the specified format into the applications clipboard. + */ + virtual const bool copy( const CDisplay::TextType format, const CDisplay::TextPart part ); + /** + * Saves the given text with the specified format into the applications clipboard. + */ + virtual const bool save( const CDisplay::TextType format, const CDisplay::TextPart part ); + + //the pure virtual methods of this base class + + /** Returns the text in the given format. + * + */ + virtual const QString text( const CDisplay::TextType format = CDisplay::HTMLText, const CDisplay::TextPart part = CDisplay::Document ) = 0; + /** + * Sets the new text for this display widget. + */ + virtual void setText( const QString& newText ) = 0; + /** + * Returns true if the display widget has a selection. Otherwise false. + */ + virtual const bool hasSelection() = 0; + /** + * Returns the view of this display widget. + */ + virtual QWidget* view() = 0; + /** + * Selects the document text. + */ + virtual void selectAll() = 0; + /** + * Returns the connections obect used for signas and slots. + */ + virtual CDisplayConnections* const connectionsProxy() const; + /** + * Returns the parent window used for this display widget. + */ + CDisplayWindow* const parentWindow() const; + virtual void print( const CDisplay::TextPart, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions) = 0; + /** + * Installs the popup which should be opened when the right mouse button was pressed. + */ + void installPopup( QPopupMenu* popup ); + /** + * Returns the popup menu which was set by installPopupMenu() + */ + QPopupMenu* const installedPopup(); + + virtual void zoomIn() {} + virtual void zoomOut() {} + virtual void openFindTextDialog() {} + + enum NodeInfoType { + Lemma + }; + + + virtual QMap getCurrentNodeInfo() { + return QMap(); + } + +protected: + /** + * Used when a reference was dropped onto the widget. + */ + void emitReferenceDropped( const QString& reference ); + /** + * Emits the signal which used when a reference was clicked. + */ + void emitReferenceClicked( const QString& reference ); + +protected: + CDisplay(CDisplayWindow* parent); + virtual ~CDisplay(); + +private: + CDisplayWindow* m_parentWindow; + CDisplayConnections* m_connections; + QPopupMenu* m_popup; +}; + +class CDisplayConnections : public QObject { + Q_OBJECT +public: + CDisplayConnections( CDisplay* parent ); + +public slots: + virtual void selectAll(); + void emitReferenceClicked( const QString& module, const QString& key); + void emitReferenceDropped( const QString& key ); + void emitTextChanged(); + + //stuff which works in every CDisplay + void saveAsPlain(); + void saveAsHTML(); + void saveAnchorWithText(); + + void printAll(CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions); + void printAnchorWithText(CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions); + + void copySelection(); + void copyAll(); + void copyAnchorWithText(); + void copyAnchorTextOnly(); + void copyAnchorOnly(); + + void clear(); + + void zoomIn(); + void zoomOut(); + + void openFindTextDialog(); + +signals: + void referenceClicked(const QString& module, const QString& key); + void referenceDropped(const QString& key); + void textChanged(); + +private: + CDisplay* m_display; + + struct { + QString module; + QString key; + } m_referenceClickedCache; +}; + +#endif diff --git a/bibletime/frontend/display/chtmlreaddisplay.cpp b/bibletime/frontend/display/chtmlreaddisplay.cpp new file mode 100644 index 0000000..4219f33 --- /dev/null +++ b/bibletime/frontend/display/chtmlreaddisplay.cpp @@ -0,0 +1,507 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "chtmlreaddisplay.h" + +#include "frontend/displaywindow/cdisplaywindow.h" +#include "frontend/displaywindow/creadwindow.h" +#include "backend/creferencemanager.h" +#include "backend/cswordkey.h" + +#include "frontend/cbtconfig.h" +#include "frontend/cdragdropmgr.h" +#include "frontend/cinfodisplay.h" + +#include "util/ctoolclass.h" +#include "util/cpointers.h" +#include "util/scoped_resource.h" + +//We will need to reference this in the Qt includes +#include + +//Qt includes +#include +#include +#include +#include +#include +#include +#include +#if KDE_VERSION < 0x030300 +//We will need to show the error message. +#include +#endif + +//KDE includes +#include +#include +#include +#include + +#include +#include +#include + +using namespace InfoDisplay; + +CHTMLReadDisplay::CHTMLReadDisplay(CReadWindow* readWindow, QWidget* parentWidget) +: KHTMLPart((m_view = new CHTMLReadDisplayView(this, parentWidget ? parentWidget : readWindow)), readWindow ? readWindow : parentWidget), +CReadDisplay(readWindow), +m_currentAnchorCache(QString::null) { + setDNDEnabled(false); + setJavaEnabled(false); + setJScriptEnabled(false); + setPluginsEnabled(false); + + m_view->setDragAutoScroll(false); + +} + +CHTMLReadDisplay::~CHTMLReadDisplay() {} + +const QString CHTMLReadDisplay::text( const CDisplay::TextType format, const CDisplay::TextPart part) { + + switch (part) { + case Document: { + if (format == HTMLText) { + return document().toHTML(); + } + else { + CDisplayWindow* window = parentWindow(); + CSwordKey* const key = window->key(); + CSwordModuleInfo* module = key->module(); + //return htmlDocument().body().innerText().string().latin1(); + //This function is never used for Bibles, so it is not + //implemented. If it should be, see CReadDisplay::print() for + //example code. + Q_ASSERT(module->type() == CSwordModuleInfo::Lexicon || module->type() == CSwordModuleInfo::Commentary || module->type() == CSwordModuleInfo::GenericBook); + if (module->type() == CSwordModuleInfo::Lexicon || module->type() == CSwordModuleInfo::Commentary || module->type() == CSwordModuleInfo::GenericBook) { + //TODO: This is a BAD HACK, we have to fnd a better solution to manage the settings now + CSwordBackend::FilterOptions filterOptions; + filterOptions.footnotes = false; + filterOptions.strongNumbers = false; + filterOptions.morphTags = false; + filterOptions.lemmas = false; + filterOptions.scriptureReferences = false; + filterOptions.textualVariants = false; + + CPointers::backend()->setFilterOptions(filterOptions); + + return QString(key->strippedText()).append("\n(") + .append(key->key()) + .append(", ") + .append(key->module()->name()) + .append(")"); + } + } + } + + case SelectedText: { + if (!hasSelection()) { + return QString::null; + } + else if (format == HTMLText) { + DOM::Range range = selection(); + return range.toHTML().string(); + } + else { //plain text requested + return selectedText(); + } + } + + case AnchorOnly: { + QString moduleName; + QString keyName; + CReferenceManager::Type type; + CReferenceManager::decodeHyperlink(activeAnchor(), moduleName, keyName, type); + + return keyName; + } + + case AnchorTextOnly: { + QString moduleName; + QString keyName; + CReferenceManager::Type type; + CReferenceManager::decodeHyperlink(activeAnchor(), moduleName, keyName, type); + + if (CSwordModuleInfo* module = backend()->findModuleByName(moduleName)) { + util::scoped_ptr key( CSwordKey::createInstance(module) ); + key->key( keyName ); + + return key->strippedText(); + } + return QString::null; + } + + case AnchorWithText: { + QString moduleName; + QString keyName; + CReferenceManager::Type type; + CReferenceManager::decodeHyperlink(activeAnchor(), moduleName, keyName, type); + + if (CSwordModuleInfo* module = backend()->findModuleByName(moduleName)) { + util::scoped_ptr key( CSwordKey::createInstance(module) ); + key->key( keyName ); + + //TODO: This is a BAD HACK, we have to fnd a better solution to manage the settings now + CSwordBackend::FilterOptions filterOptions; + filterOptions.footnotes = false; + filterOptions.strongNumbers = false; + filterOptions.morphTags = false; + filterOptions.lemmas = false; + filterOptions.scriptureReferences = false; + filterOptions.textualVariants = false; + + CPointers::backend()->setFilterOptions(filterOptions); + + return QString(key->strippedText()).append("\n(") + .append(key->key()) + .append(", ") + .append(key->module()->name()) + .append(")"); + /* ("%1\n(%2, %3)") + .arg() + .arg(key->key()) + .arg(key->module()->name());*/ + } + return QString::null; + } + default: + return QString::null; + } +} + +void CHTMLReadDisplay::setText( const QString& newText ) { + begin(); + write(newText); + end(); +} + +/** No descriptions */ +const bool CHTMLReadDisplay::hasSelection() { + return KHTMLPart::hasSelection(); +} + + +/** Reimplementation. */ +QScrollView* CHTMLReadDisplay::view() { + return KHTMLPart::view(); +} + +void CHTMLReadDisplay::selectAll() { + KHTMLPart::selectAll(); +} + +/** No descriptions */ +void CHTMLReadDisplay::moveToAnchor( const QString& anchor ) { + m_currentAnchorCache = anchor; + + //This is an ugly hack to work around a KDE problem in KDE including 3.3.1 (no later versions tested so far) + QTimer::singleShot(0, this, SLOT(slotGoToAnchor())); + + // instead of: + // slotGoToAnchor(); +} + +void CHTMLReadDisplay::urlSelected( const QString& url, int button, int state, const QString& _target, KParts::URLArgs args) { + KHTMLPart::urlSelected(url, button, state, _target, args); + m_urlWorkaroundData.doWorkaround = false; + // qWarning("clicked: %s", url.latin1()); + if (!url.isEmpty() && CReferenceManager::isHyperlink(url)) { + QString module; + QString key; + CReferenceManager::Type type; + + CReferenceManager::decodeHyperlink(url, module, key, type); + if (module.isEmpty()) { + module = CReferenceManager::preferredModule( type ); + } + + // we have to use this workaround, otherwise the widget would scroll because it was interrupted + // between mouseClick and mouseRelease (I guess) + m_urlWorkaroundData.doWorkaround = true; + m_urlWorkaroundData.url = url; + m_urlWorkaroundData.state = state; + m_urlWorkaroundData.button = button; + m_urlWorkaroundData.target = _target; + m_urlWorkaroundData.args = args; + m_urlWorkaroundData.module = module; + m_urlWorkaroundData.key = key; + } + else if (!url.isEmpty() && (url.left(1) == "#")) { //anchor + moveToAnchor(url.mid(1)); + } + else if (url.left(7) == "http://") { //open the bowser configured by kdeb + KApplication::kApplication()->invokeBrowser( url ); //ToDo: Not yet tested + } +} + +/** Reimplementation. */ +void CHTMLReadDisplay::khtmlMouseReleaseEvent( khtml::MouseReleaseEvent* event ) { + KHTMLPart::khtmlMouseReleaseEvent(event); + + m_dndData.mousePressed = false; + m_dndData.isDragging = false; + m_dndData.node = DOM::Node(); + m_dndData.anchor = DOM::DOMString(); + + if (m_urlWorkaroundData.doWorkaround) { + m_urlWorkaroundData.doWorkaround = false; + connectionsProxy()->emitReferenceClicked( + m_urlWorkaroundData.module, + m_urlWorkaroundData.key + ); + } +} + +void CHTMLReadDisplay::khtmlMousePressEvent( khtml::MousePressEvent* event ) { + m_dndData.node = DOM::Node(); + m_dndData.anchor = DOM::DOMString(); + m_dndData.mousePressed = false; + m_dndData.isDragging = false; + + if (event->qmouseEvent()->button() == Qt::RightButton) { + DOM::Node tmpNode = event->innerNode(); + DOM::Node attr; + m_nodeInfo[CDisplay::Lemma] = QString::null; + + do { + if (!tmpNode.isNull() && (tmpNode.nodeType() == + DOM::Node::ELEMENT_NODE) && tmpNode.hasAttributes()) { + attr = tmpNode.attributes().getNamedItem("lemma"); + if (!attr.isNull()) { + m_nodeInfo[ CDisplay::Lemma ] = attr.nodeValue().string(); + break; + } + } + tmpNode = tmpNode.parentNode(); + } while ( !tmpNode.isNull() ); + + setActiveAnchor( event->url().string() ); + } + else if (event->qmouseEvent()->button() == Qt::LeftButton) { + m_dndData.node = event->innerNode(); + m_dndData.anchor = event->url(); + m_dndData.mousePressed = true; + m_dndData.isDragging = false; + m_dndData.startPos = QPoint(event->x(), event->y()); + m_dndData.selection = selectedText(); + + if (!m_dndData.node.isNull()) { //we drag a valid link + m_dndData.dragType = DNDData::Link; + } + } + + KHTMLPart::khtmlMousePressEvent(event); +} + +/** Reimplementation for our drag&drop system. Also needed for the mouse tracking */ +void CHTMLReadDisplay::khtmlMouseMoveEvent( khtml::MouseMoveEvent* e ) { + if( e->qmouseEvent()->state() & LeftButton == LeftButton) { //left mouse button pressed + const int delay = KGlobalSettings::dndEventDelay(); + QPoint newPos = QPoint(e->x(), e->y()); + + if ( (newPos.x() > m_dndData.startPos.x()+delay || newPos.x() < (m_dndData.startPos.x()-delay) || + newPos.y() > m_dndData.startPos.y()+delay || newPos.y() < (m_dndData.startPos.y()-delay)) && + !m_dndData.isDragging && m_dndData.mousePressed ) { + QDragObject* d = 0; + if (!m_dndData.anchor.isEmpty() && (m_dndData.dragType == DNDData::Link) && !m_dndData.node.isNull() ) { + // create a new bookmark drag! + QString module = QString::null; + QString key = QString::null; + CReferenceManager::Type type; + if ( !CReferenceManager::decodeHyperlink(m_dndData.anchor.string(), module, key, type) ) + return; + + CDragDropMgr::ItemList dndItems; + //no description! + dndItems.append( CDragDropMgr::Item(module, key, QString::null) ); + d = CDragDropMgr::dragObject(dndItems, KHTMLPart::view()->viewport()); + } + else if ((m_dndData.dragType == DNDData::Text) && !m_dndData.selection.isEmpty()) { + // create a new plain text drag! + CDragDropMgr::ItemList dndItems; + dndItems.append( CDragDropMgr::Item(m_dndData.selection) ); //no description! + d = CDragDropMgr::dragObject(dndItems, KHTMLPart::view()->viewport()); + } + + if (d) { + m_dndData.isDragging = true; + m_dndData.mousePressed = false; + + //first make a virtual mouse click to end the selection, it it's in progress + QMouseEvent e(QEvent::MouseButtonRelease, QPoint(0,0), Qt::LeftButton, Qt::LeftButton); + KApplication::sendEvent(view()->viewport(), &e); + d->drag(); + } + } + } + else if (getMouseTracking() && !(e->qmouseEvent()->state() & Qt::ShiftButton == Qt::ShiftButton)) { + //no mouse button pressed and tracking enabled + DOM::Node node = e->innerNode(); + //if no link was under the mouse try to find a title attribute + if (!node.isNull() && (m_previousEventNode != node)) { + // we want to avoid processing the node again + // After some millisecs the new timer activates the Mag window update, see timerEvent() + // SHIFT key not pressed, so we start timer + if ( !(e->qmouseEvent()->state() & Qt::ShiftButton)) { + // QObject has simple timer + killTimers(); + startTimer( CBTConfig::get(CBTConfig::magDelay) ); + } + + m_previousEventNode = node; + } + } + + KHTMLPart::khtmlMouseMoveEvent(e); +} + +/** The Mag window update happens here if the mouse has not moved to another node after starting the timer.*/ +void CHTMLReadDisplay::timerEvent( QTimerEvent *e ) { + killTimers(); + DOM::Node currentNode = nodeUnderMouse(); + CInfoDisplay::ListInfoData infoList; + + // Process the node under cursor if it is the same as at the start of the timer + if (!currentNode.isNull() && (currentNode != m_previousEventNode) && this->view()->hasMouse()) { + DOM::Node attr; + do { + if (!currentNode.isNull() && (currentNode.nodeType() == DOM::Node::ELEMENT_NODE) && currentNode.hasAttributes()) { //found right node + attr = currentNode.attributes().getNamedItem("note"); + if (!attr.isNull()) { + infoList.append( qMakePair(CInfoDisplay::Footnote, attr.nodeValue().string()) ); + } + + attr = currentNode.attributes().getNamedItem("lemma"); + if (!attr.isNull()) { + infoList.append( qMakePair(CInfoDisplay::Lemma, attr.nodeValue().string()) ); + } + + attr = currentNode.attributes().getNamedItem("morph"); + if (!attr.isNull()) { + infoList.append( qMakePair(CInfoDisplay::Morph, attr.nodeValue().string()) ); + } + + attr = currentNode.attributes().getNamedItem("expansion"); + if (!attr.isNull()) { + infoList.append( qMakePair(CInfoDisplay::Abbreviation, attr.nodeValue().string()) ); + } + + attr = currentNode.attributes().getNamedItem("crossrefs"); + if (!attr.isNull()) { + infoList.append( qMakePair(CInfoDisplay::CrossReference, attr.nodeValue().string()) ); + } + } + + currentNode = currentNode.parentNode(); + if (!currentNode.isNull() && currentNode.hasAttributes()) { + attr = currentNode.attributes().getNamedItem("class"); + if (!attr.isNull() && (attr.nodeValue().string() == "entry") || (attr.nodeValue().string() == "currententry") ) { + break; + } + } + } + while ( !currentNode.isNull() ); + } + + // Update the mag if there is new content + if (!(infoList.isEmpty())) { + CPointers::infoDisplay()->setInfo(infoList); + } + +} + +// --------------------- + +CHTMLReadDisplayView::CHTMLReadDisplayView(CHTMLReadDisplay* displayWidget, QWidget* parent) : KHTMLView(displayWidget, parent), m_display(displayWidget) { + viewport()->setAcceptDrops(true); + setMarginWidth(4); + setMarginHeight(4); +}; + + +/** Opens the popupmenu at the given position. */ +void CHTMLReadDisplayView::popupMenu( const QString& url, const QPoint& pos) { + if (!url.isEmpty()) { + m_display->setActiveAnchor(url); + } + if (QPopupMenu* popup = m_display->installedPopup()) { + popup->exec(pos); + } +} + +/** Reimplementation from QScrollView. Sets the right slots */ +void CHTMLReadDisplayView::polish() { + KHTMLView::polish(); + connect( part(), SIGNAL(popupMenu(const QString&, const QPoint&)), + this, SLOT(popupMenu(const QString&, const QPoint&))); +} + +/** Reimplementatiob from QScrollView. */ +void CHTMLReadDisplayView::contentsDropEvent( QDropEvent* e ) { + if (CDragDropMgr::canDecode(e) && CDragDropMgr::dndType(e) == CDragDropMgr::Item::Bookmark) { + CDragDropMgr::ItemList dndItems = CDragDropMgr::decode(e); + CDragDropMgr::Item item = dndItems.first(); + e->acceptAction(); + + m_display->connectionsProxy()->emitReferenceDropped(item.bookmarkKey()); + return; + }; + + //don't accept the action! + e->acceptAction(false); + e->ignore(); +} + +/** Reimplementation from QScrollView. */ +void CHTMLReadDisplayView::contentsDragEnterEvent( QDragEnterEvent* e ) { + if (CDragDropMgr::canDecode(e) && CDragDropMgr::dndType(e) == CDragDropMgr::Item::Bookmark) { + e->acceptAction(); + return; + } + + e->acceptAction(false); + e->ignore(); +} + +/*! +\fn CHTMLReadDisplay::slotPageLoaded() +*/ +void CHTMLReadDisplay::slotGoToAnchor() { + if (!m_currentAnchorCache.isEmpty()) { + if (!gotoAnchor( m_currentAnchorCache ) ) { + qDebug("anchor %s not present!", m_currentAnchorCache.latin1()); + } + } + m_currentAnchorCache = QString::null; +} + +void CHTMLReadDisplay::zoomIn() { + setZoomFactor( (int)((float)zoomFactor()*1.1) ); +} + +void CHTMLReadDisplay::zoomOut() { + setZoomFactor( (int)((float)zoomFactor()*(1.0/1.1)) ); +} + +void CHTMLReadDisplay::openFindTextDialog() { +#if KDE_VERSION >= 0x030300 + findText(); +#else + QMessageBox::information(0, "Not Supported", + "This copy of BibleTime was built against a version of KDE older\n" + "than 3.3 (probably due to your distro), so this search feature\n" + "does not work.\n\n" + "This is a known issue. If we do not have a fix for the next\n" + "version of BibleTime, we will remove the option."); +#endif +} diff --git a/bibletime/frontend/display/chtmlreaddisplay.h b/bibletime/frontend/display/chtmlreaddisplay.h new file mode 100644 index 0000000..5b875cf --- /dev/null +++ b/bibletime/frontend/display/chtmlreaddisplay.h @@ -0,0 +1,144 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CHTMLREADDISPLAY_H +#define CHTMLREADDISPLAY_H + +//BibleTime includes +#include "creaddisplay.h" +//#include "frontend/ctooltip.h" + +//Qt includes +#include +#include + +//KDE includes +#include +#include +#include + +class CHTMLReadDisplayView; + +/** The implementation for the HTML read display. + * @author The BibleTime team + */ +class CHTMLReadDisplay : public KHTMLPart, public CReadDisplay { + Q_OBJECT +public: + //reimplemented functions from CDisplay + /** + * Returns the right text part in the specified format. + */ + virtual const QString text( const CDisplay::TextType format = CDisplay::HTMLText, const CDisplay::TextPart part = CDisplay::Document ); + /** + * Sets the new text for this display widget. + */ + virtual void setText( const QString& newText ); + virtual const bool hasSelection(); + /** + * Reimplementation. + */ + virtual QScrollView* view(); + virtual void selectAll(); + virtual void moveToAnchor( const QString& anchor ); + + virtual void zoomIn(); + virtual void zoomOut(); + virtual void openFindTextDialog(); + + virtual QMap getCurrentNodeInfo() { + return m_nodeInfo; + } + +protected: + friend class CDisplay; + CHTMLReadDisplay( CReadWindow* readWindow, QWidget* parent = 0 ); + virtual ~CHTMLReadDisplay(); + + virtual void urlSelected( const QString& url, int button, int state, const QString& _target, KParts::URLArgs args); + /** + * Reimplementation. + */ + virtual void khtmlMouseReleaseEvent( khtml::MouseReleaseEvent* event ); + virtual void khtmlMousePressEvent( khtml::MousePressEvent* event ); + virtual void khtmlMouseMoveEvent( khtml::MouseMoveEvent* event ); + virtual void timerEvent(QTimerEvent *event); + + + struct DNDData { + bool mousePressed; + bool isDragging; + DOM::Node node; + DOM::DOMString anchor; + QString selection; + QPoint startPos; + enum DragType { + Link, + Text + } dragType; + } + m_dndData; + + QMap m_nodeInfo; + +private: + CHTMLReadDisplayView* m_view; + struct URLWorkaroundData { + bool doWorkaround; + QString url; + int button; + int state; + QString target; + KParts::URLArgs args; + + QString module; + QString key; + } + m_urlWorkaroundData; + + DOM::Node m_previousEventNode; + QString m_currentAnchorCache; + +protected slots: + void slotGoToAnchor(); +}; + +class CHTMLReadDisplayView : public KHTMLView, public CPointers { + Q_OBJECT +protected: // Protected methods + friend class CHTMLReadDisplay; + + + CHTMLReadDisplayView(CHTMLReadDisplay* display, QWidget* parent); + /** + * Reimplementation from QScrollView. Sets the right slots + */ + virtual void polish(); + /** + * Reimplementatiob from QScrollView. + */ + virtual void contentsDropEvent( QDropEvent* ); + /** + * Reimplementatiob from QScrollView. + */ + virtual void contentsDragEnterEvent( QDragEnterEvent* ); + +protected slots: // Protected slots + /** + * Opens the popupmenu at the given position. + */ + void popupMenu( const QString&, const QPoint& ); + +private: + CHTMLReadDisplay* m_display; +}; + +#endif diff --git a/bibletime/frontend/display/chtmlwritedisplay.cpp b/bibletime/frontend/display/chtmlwritedisplay.cpp new file mode 100644 index 0000000..e535f26 --- /dev/null +++ b/bibletime/frontend/display/chtmlwritedisplay.cpp @@ -0,0 +1,266 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "chtmlwritedisplay.h" + +#include "frontend/displaywindow/cwritewindow.h" + +#include "util/cresmgr.h" + +//Qt includes +#include +#include + +//KDE includes +#include +#include +#include +#include +#include +#include + +CHTMLWriteDisplay::CHTMLWriteDisplay(CWriteWindow* parentWindow, QWidget* parent) +: CPlainWriteDisplay(parentWindow,parent) { + m_actions.bold = 0; + m_actions.italic = 0; + m_actions.underline = 0; + m_actions.selectAll = 0; + + setTextFormat(Qt::RichText); + setAcceptDrops(true); + viewport()->setAcceptDrops(true); +} + +CHTMLWriteDisplay::~CHTMLWriteDisplay() {} + +void CHTMLWriteDisplay::setText( const QString& newText ) { + QString text = newText; +// text.replace("\n
\n", "\n"); + + QTextEdit::setText(text); +} + +const QString CHTMLWriteDisplay::plainText() { + return QTextEdit::text(); +}; + +void CHTMLWriteDisplay::toggleBold() { + setBold( m_actions.bold->isChecked() ); +}; + +void CHTMLWriteDisplay::toggleItalic() { + setItalic( m_actions.italic->isChecked() ); +}; + +void CHTMLWriteDisplay::toggleUnderline() { + setUnderline( m_actions.underline->isChecked() ); +}; + + +void CHTMLWriteDisplay::alignLeft() { + setAlignment(Qt::AlignLeft); +}; + +void CHTMLWriteDisplay::alignCenter() { + setAlignment(Qt::AlignHCenter); +}; + +void CHTMLWriteDisplay::alignRight() { + setAlignment(Qt::AlignRight); +}; + + +/** The text's alignment changed. Enable the right buttons. */ +void CHTMLWriteDisplay::slotAlignmentChanged( int a ) { + bool alignLeft = false; + bool alignCenter = false; + bool alignRight = false; + // bool alignJustify = false; + + if (a & Qt::AlignLeft) { + alignLeft = true; + } + else if ((a & Qt::AlignHCenter) || (a & Qt::AlignCenter)) { + alignCenter = true; + } + else if (a & Qt::AlignRight) { + alignRight = true; + } + // else if (a & Qt::AlignJustify) { + // alignJustify = true; + // } + else { + alignLeft = true; + qWarning("unknown alignment %i", a); + } + + m_actions.alignLeft->setChecked( alignLeft ); + m_actions.alignCenter->setChecked( alignCenter ); + m_actions.alignRight->setChecked( alignRight ); + // m_actions.alignJustify->setChecked( alignJustify ); +} + + +/** Is called when a new color was selected. */ +void CHTMLWriteDisplay::slotColorSelected( const QColor& c) { + setColor( c ); +} + +/** Is called when a text with another color was selected. */ +void CHTMLWriteDisplay::slotColorChanged(const QColor& c) { + m_colorButton->setColor(c); +} + + +void CHTMLWriteDisplay::slotFontChanged( const QFont& font ) { + m_actions.fontChooser->setFont( font.family() ); + m_actions.fontSizeChooser->setFontSize( font.pointSize() ); + + m_actions.bold->setChecked( font.bold() ); + m_actions.italic->setChecked( font.italic() ); + m_actions.underline->setChecked( font.underline() ); +}; + +void CHTMLWriteDisplay::setupToolbar(KToolBar * bar, KActionCollection * actions) { + m_actions.fontChooser = new KFontAction( i18n("Choose a font"), + CResMgr::displaywindows::writeWindow::underlinedText::accel, + actions, + CResMgr::displaywindows::writeWindow::fontFamily::actionName + ); + m_actions.fontChooser->setToolTip( CResMgr::displaywindows::writeWindow::fontFamily::tooltip ); + + m_actions.fontChooser->plug(bar); + connect(m_actions.fontChooser, SIGNAL(activated(const QString&)), this, SLOT(setFamily(const QString&))); + + + m_actions.fontSizeChooser = new KFontSizeAction( i18n("Choose a font size"), + CResMgr::displaywindows::writeWindow::fontSize::accel, + actions, + CResMgr::displaywindows::writeWindow::fontSize::actionName + ); + m_actions.fontSizeChooser->setToolTip( CResMgr::displaywindows::writeWindow::fontSize::tooltip ); + + m_actions.fontSizeChooser->plug(bar); + connect(m_actions.fontSizeChooser, SIGNAL(fontSizeChanged(int)), this, SLOT(setPointSize(int))); + + m_colorButton = new KColorButton(bar); + connect(m_colorButton, SIGNAL(changed(const QColor&)), this, SLOT(slotColorSelected(const QColor&))); + bar->insertWidget(50, m_colorButton->sizeHint().width(), m_colorButton); + QToolTip::add + (m_colorButton, CResMgr::displaywindows::writeWindow::fontColor::tooltip ); + + + + (new KActionSeparator())->plug(bar); //seperate font options from formatting buttons + + m_actions.bold = new KToggleAction( i18n("Bold"), + CResMgr::displaywindows::writeWindow::boldText::icon, + CResMgr::displaywindows::writeWindow::boldText::accel, + this, SLOT(toggleBold()), + actions, + CResMgr::displaywindows::writeWindow::boldText::actionName + ); + m_actions.bold->setToolTip( CResMgr::displaywindows::writeWindow::boldText::tooltip ); + + m_actions.bold->plug(bar); + + m_actions.italic = new KToggleAction( i18n("Italic"), + CResMgr::displaywindows::writeWindow::italicText::icon, + CResMgr::displaywindows::writeWindow::italicText::accel, + this, SLOT(toggleItalic()), + actions, + CResMgr::displaywindows::writeWindow::italicText::actionName + ); + m_actions.italic->setToolTip( CResMgr::displaywindows::writeWindow::italicText::tooltip ); + + m_actions.italic->plug(bar); + + m_actions.underline = new KToggleAction( i18n("Underline"), + CResMgr::displaywindows::writeWindow::underlinedText::icon, + CResMgr::displaywindows::writeWindow::underlinedText::accel, + this, SLOT(toggleUnderline()), + actions, + CResMgr::displaywindows::writeWindow::underlinedText::actionName + ); + m_actions.underline->setToolTip( CResMgr::displaywindows::writeWindow::underlinedText::tooltip ); + + m_actions.underline->plug(bar); + + + (new KActionSeparator())->plug(bar); //seperate formatting from alignment buttons + + m_actions.alignLeft = new KToggleAction( i18n("Left"), + CResMgr::displaywindows::writeWindow::alignLeft::icon, + CResMgr::displaywindows::writeWindow::alignLeft::accel, + this, SLOT( alignLeft() ), + actions, + CResMgr::displaywindows::writeWindow::alignLeft::actionName + ); + m_actions.alignLeft->setToolTip( CResMgr::displaywindows::writeWindow::alignLeft::tooltip ); + + m_actions.alignLeft->plug(bar); + + m_actions.alignCenter = new KToggleAction( i18n("Center"), + CResMgr::displaywindows::writeWindow::alignCenter::icon, + CResMgr::displaywindows::writeWindow::alignCenter::accel, + this, SLOT(alignCenter()), + actions, + CResMgr::displaywindows::writeWindow::alignCenter::actionName + ); + m_actions.alignCenter->setToolTip( CResMgr::displaywindows::writeWindow::alignCenter::tooltip ); + + m_actions.alignCenter->plug(bar); + + m_actions.alignRight = new KToggleAction( i18n("Right"), + CResMgr::displaywindows::writeWindow::alignRight::icon, + CResMgr::displaywindows::writeWindow::alignRight::accel, + this, SLOT(alignRight()), + actions, + CResMgr::displaywindows::writeWindow::alignRight::actionName + ); + m_actions.alignRight->setToolTip( CResMgr::displaywindows::writeWindow::alignRight::tooltip ); + + m_actions.alignRight->plug(bar); + + // m_actions.alignJustify = new KToggleAction( i18n("Justify"), + // CResMgr::displaywindows::writeWindow::alignJustify::icon, + // CResMgr::displaywindows::writeWindow::alignJustify::accel, + // this, SLOT( alignJustify() ), + // actions + // ); + // m_actions.alignJustify->setToolTip( CResMgr::displaywindows::writeWindow::alignJustify::tooltip ); + + // m_actions.alignJustify->plug(bar); + + + connect(this, SIGNAL(currentFontChanged(const QFont&)), SLOT(slotFontChanged(const QFont&))); + connect(this, SIGNAL(currentAlignmentChanged(int)), SLOT(slotAlignmentChanged(int))); + connect(this, SIGNAL(currentColorChanged(const QColor&)), SLOT(slotColorChanged(const QColor&))); + + + //set initial values for toolbar items + slotFontChanged( font() ); + slotAlignmentChanged( alignment() ); + slotColorChanged( color() ); +} + +/** Reimplementation to show a popup menu if the right mouse butoon was clicked. */ +QPopupMenu* CHTMLWriteDisplay::createPopupMenu( const QPoint& /*pos*/ ) { + if (!m_actions.selectAll) { + m_actions.selectAll = new KAction(i18n("Select all"), KShortcut(0), this, SLOT(selectAll()), this); + } + + KPopupMenu* popup = new KPopupMenu(this); + popup->insertTitle(i18n("HTML editor window")); + m_actions.selectAll->plug(popup); + + return popup; +}; diff --git a/bibletime/frontend/display/chtmlwritedisplay.h b/bibletime/frontend/display/chtmlwritedisplay.h new file mode 100644 index 0000000..ad5faa6 --- /dev/null +++ b/bibletime/frontend/display/chtmlwritedisplay.h @@ -0,0 +1,104 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CHTMLWRITEDISPLAY_H +#define CHTMLWRITEDISPLAY_H + +//BibleTime includes +#include "cplainwritedisplay.h" + +//Qt includes +#include +#include + +class CWriteWindow; + +class QPopupMenu; + +class KToggleAction; +class KFontAction; +class KFontSizeAction; + +class KColorButton; + +/** The WYSIWYG implementation of the write display interface. + * @author The BibleTime team + */ +class CHTMLWriteDisplay : public CPlainWriteDisplay { + Q_OBJECT +public: + /** + * Sets the new text for this display widget. + */ + virtual void setText( const QString& newText ); + /** + * Returns the text of this edit widget. + */ + virtual const QString plainText(); + + /** + * Creates the necessary action objects and puts them on the toolbar. + */ + virtual void setupToolbar(KToolBar * bar, KActionCollection * actionCollection); + +protected: + friend class CDisplay; + CHTMLWriteDisplay(CWriteWindow* parentWindow, QWidget* parent); + ~CHTMLWriteDisplay(); + /** + * Reimplementation to show a popup menu if the right mouse butoon was clicked. + */ + virtual QPopupMenu* createPopupMenu( const QPoint& pos ); + +protected slots: + void toggleBold(); + void toggleItalic(); + void toggleUnderline(); + + void alignLeft(); + void alignCenter(); + void alignRight(); + + void slotFontChanged( const QFont& ); + /** + * The text's alignment changed. Enable the right buttons. + */ + void slotAlignmentChanged( int ); + /** + * Is called when a new color was selected. + */ + void slotColorSelected( const QColor& ); + /** + * Is called when a text with another color was selected. + */ + void slotColorChanged( const QColor& ); + +private: + struct { + KToggleAction* bold; + KToggleAction* italic; + KToggleAction* underline; + + KToggleAction* alignLeft; + KToggleAction* alignCenter; + KToggleAction* alignRight; + + KFontAction* fontChooser; + KFontSizeAction* fontSizeChooser; + + //popup menu + KAction* selectAll; + } + m_actions; + KColorButton* m_colorButton; +}; + +#endif diff --git a/bibletime/frontend/display/cplainwritedisplay.cpp b/bibletime/frontend/display/cplainwritedisplay.cpp new file mode 100644 index 0000000..2e81db0 --- /dev/null +++ b/bibletime/frontend/display/cplainwritedisplay.cpp @@ -0,0 +1,157 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cplainwritedisplay.h" + +#include "frontend/cdragdropmgr.h" +#include "frontend/displaywindow/cdisplaywindow.h" +#include "frontend/displaywindow/cwritewindow.h" + +#include "util/scoped_resource.h" + +//Qt includes + +//KDE includes +#include +#include + +CPlainWriteDisplay::CPlainWriteDisplay(CWriteWindow* parentWindow, QWidget* parent) : QTextEdit(parentWindow ? parentWindow : parent), CWriteDisplay(parentWindow) { + setTextFormat(Qt::PlainText); + setAcceptDrops(true); + viewport()->setAcceptDrops(true); + + connect(this, SIGNAL(textChanged()), + connectionsProxy(), SLOT(emitTextChanged())); +} + +CPlainWriteDisplay::~CPlainWriteDisplay() {} + +/** Reimplementation. */ +void CPlainWriteDisplay::selectAll() { + QTextEdit::selectAll(true); +} + +void CPlainWriteDisplay::setText( const QString& newText ) { + //make sure the text has been converted to show \n instead of
+ QString text = newText; +// text.replace("\n
\n", "\n"); + text.replace("
", "\n"); //inserted by BT or the Qt textedit widget + + QTextEdit::setText(text); +} + +const bool CPlainWriteDisplay::hasSelection() { + return hasSelectedText(); +} + +QWidget* CPlainWriteDisplay::view() { + qDebug("CPlainWriteDisplay::view()"); + return this; +} + +const QString CPlainWriteDisplay::text( const CDisplay::TextType /*format*/, const CDisplay::TextPart /*part*/) { + return QString::null; +} + +void CPlainWriteDisplay::print( const CDisplay::TextPart, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions ) { +} + +/** Sets the current status of the edit widget. */ +void CPlainWriteDisplay::setModified( const bool modified ) { + QTextEdit::setModified(modified); +} + +/** Reimplementation. */ +const bool CPlainWriteDisplay::isModified() const { + return QTextEdit::isModified(); +} + + +/** Returns the text of this edit widget. */ +const QString CPlainWriteDisplay::plainText() { + QString ret = QTextEdit::text(); + + //in plain text mode the text just contains newlines, convert them into
before we return the text for display in a HTML widget + ret.replace("\n", "
"); + + return ret; +} + +/** Reimplementation from QTextEdit. Provides an popup menu for the given position. */ +QPopupMenu* CPlainWriteDisplay::createPopupMenu( const QPoint& /*pos*/ ) { + return installedPopup(); +} + +/** Reimplementation from QTextEdit. Provides an popup menu for the given position. */ +QPopupMenu* CPlainWriteDisplay::createPopupMenu( ) { + return installedPopup(); +} + +/** Creates the necessary action objects and puts them on the toolbar. */ +void CPlainWriteDisplay::setupToolbar(KToolBar* /*bar*/, KActionCollection* /*actionCollection*/) {} + +/** Reimplementation to insert the text of a dragged reference into the edit view. */ +void CPlainWriteDisplay::contentsDragEnterEvent( QDragEnterEvent* e ) { + if (CDragDropMgr::canDecode(e)) { + e->accept(true); + } + else { + e->accept(false); + e->ignore(); + } +} + +/** Reimplementation to insert the text of a dragged reference into the edit view. */ +void CPlainWriteDisplay::contentsDragMoveEvent( QDragMoveEvent* e ) { + if (CDragDropMgr::canDecode(e)) { + placeCursor(e->pos()); + ensureCursorVisible(); + e->accept(true); + } + else { + e->accept(false); + e->ignore(); + } +} + +/** Reimplementation to manage drops of our drag and drop objects. */ +void CPlainWriteDisplay::contentsDropEvent( QDropEvent* e ) { + if ( CDragDropMgr::canDecode(e) ) { + e->acceptAction(); + + CDragDropMgr::ItemList items = CDragDropMgr::decode(e); + CDragDropMgr::ItemList::iterator it; + for (it = items.begin(); it != items.end(); ++it) { + switch ((*it).type()) { + case CDragDropMgr::Item::Bookmark: { + CSwordModuleInfo* module = backend()->findModuleByName((*it).bookmarkModule()); + util::scoped_ptr key( CSwordKey::createInstance(module) ); + key->key( (*it).bookmarkKey() ); + + QString moduleText = key->strippedText(); + + const QString text = QString::fromLatin1("%1\n(%2, %3)\n").arg(moduleText).arg((*it).bookmarkKey()).arg((*it).bookmarkModule()); + + placeCursor( e->pos() ); + insert( text ); + break; + } + case CDragDropMgr::Item::Text: { + placeCursor( e->pos() ); + insert( (*it).text() ); + break; + } + default: + break; + } + } + } +} diff --git a/bibletime/frontend/display/cplainwritedisplay.h b/bibletime/frontend/display/cplainwritedisplay.h new file mode 100644 index 0000000..9219578 --- /dev/null +++ b/bibletime/frontend/display/cplainwritedisplay.h @@ -0,0 +1,94 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CPLAINWRITEDISPLAY_H +#define CPLAINWRITEDISPLAY_H + +//Bibletime include files +#include "cwritedisplay.h" + +//Qt includes +#include +#include + +class CHTMLWriteDisplay; +class KAction; + +/** The write display implementation for plain source code editing. + * @author The BibleTime team + */ +class CPlainWriteDisplay : public QTextEdit, public CWriteDisplay { +public: + /** + * Reimplementation. + */ + virtual void selectAll(); + /** + * Sets the new text for this display widget. + */ + virtual void setText( const QString& newText ); + /** + * Returns true if the display widget has a selection. Otherwise false. + */ + virtual const bool hasSelection(); + /** + * Returns the view of this display widget. + */ + virtual QWidget* view(); + virtual const QString text( const CDisplay::TextType format = CDisplay::HTMLText, const CDisplay::TextPart part = CDisplay::Document ); + virtual void print( const CDisplay::TextPart, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions ); + /** + * Reimplementation. + */ + virtual const bool isModified() const; + /** + * Sets the current status of the edit widget. + */ + virtual void setModified( const bool modified ); + /** + * Returns the text of this edit widget. + */ + virtual const QString plainText(); + /** + * Creates the necessary action objects and puts them on the toolbar. + */ + virtual void setupToolbar(KToolBar * bar, KActionCollection * actionCollection); + +protected: + friend class CDisplay; + friend class CHTMLWriteDisplay; + + CPlainWriteDisplay(CWriteWindow* parentWindow, QWidget* parent); + virtual ~CPlainWriteDisplay(); + /** + * Reimplementation from QTextEdit. Provides an popup menu for the given position. + */ + virtual QPopupMenu* createPopupMenu( const QPoint& pos ); + /** + * Reimplementation from QTextEdit. Provides an popup menu. + */ + virtual QPopupMenu* createPopupMenu(); + /** + * Reimplementation to manage drops of our drag and drop objects. + */ + virtual void contentsDropEvent( QDropEvent* e ); + /** + * Reimplementation to insert the text of a dragged reference into the edit view. + */ + virtual void contentsDragEnterEvent( QDragEnterEvent* e ); + /** + * Reimplementation to insert the text of a dragged reference into the edit view. + */ + virtual void contentsDragMoveEvent( QDragMoveEvent* e ); + +}; + +#endif diff --git a/bibletime/frontend/display/creaddisplay.cpp b/bibletime/frontend/display/creaddisplay.cpp new file mode 100644 index 0000000..24c4f76 --- /dev/null +++ b/bibletime/frontend/display/creaddisplay.cpp @@ -0,0 +1,115 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "creaddisplay.h" + +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordbiblemoduleinfo.h" +#include "backend/cswordlexiconmoduleinfo.h" +#include "backend/cswordbookmoduleinfo.h" +#include "backend/cswordkey.h" +#include "backend/cswordversekey.h" +#include "backend/cswordtreekey.h" +#include "backend/cswordldkey.h" + +#include "frontend/displaywindow/cdisplaywindow.h" +#include "frontend/displaywindow/creadwindow.h" + +#include "frontend/cexportmanager.h" + +#include "util/scoped_resource.h" + +//Qt includes +#include + +//KDE includes +#include + +CReadDisplay::CReadDisplay(CReadWindow* readWindow) : +CDisplay(readWindow), +m_activeAnchor(QString::null), +m_useMouseTracking(true) {} + +CReadDisplay::~CReadDisplay() {} + +/** Returns the current active anchor. */ +const QString& CReadDisplay::activeAnchor() { + return m_activeAnchor; +} + +/** Sets the current anchor to the parameter. */ +void CReadDisplay::setActiveAnchor( const QString& anchor ) { + m_activeAnchor = anchor; +} + + +/** Returns true if the display has an active anchor. */ +const bool CReadDisplay::hasActiveAnchor() { + return !activeAnchor().isEmpty(); +} + + +void CReadDisplay::print(const CDisplay::TextPart type, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions) { + CDisplayWindow* window = parentWindow(); + CSwordKey* const key = window->key(); + CSwordModuleInfo* module = key->module(); + + + CExportManager mgr(i18n("Print keys"),false, QString::null, parentWindow()->filterOptions(), parentWindow()->displayOptions()); + + switch (type) { + case Document: { + if (module->type() == CSwordModuleInfo::Bible) { + CSwordVerseKey* vk = dynamic_cast(key); + + CSwordVerseKey startKey(*vk); + startKey.Verse(1); + + CSwordVerseKey stopKey(*vk); + + CSwordBibleModuleInfo* bible = dynamic_cast(module); + if (bible) { + stopKey.Verse( bible->verseCount( bible->bookNumber(startKey.book()), startKey.Chapter() ) ); + } + + mgr.printKey(module, startKey.key(), stopKey.key(), displayOptions, filterOptions); + } + else if (module->type() == CSwordModuleInfo::Lexicon || module->type() == CSwordModuleInfo::Commentary ) { + mgr.printKey(module, key->key(), key->key(), displayOptions, filterOptions); + } + else if (module->type() == CSwordModuleInfo::GenericBook) { + CSwordTreeKey* tree = dynamic_cast(key); + + CSwordTreeKey startKey(*tree); + // while (startKey.previousSibling()) { // go to first sibling on this level! + // } + + CSwordTreeKey stopKey(*tree); + // if (CSwordBookModuleInfo* book = dynamic_cast(module)) { + // while ( stopKey.nextSibling() ) { //go to last displayed sibling! + // } + // } + mgr.printKey(module, startKey.key(), stopKey.key(), displayOptions, filterOptions); + } + } + + case AnchorWithText: { + if (hasActiveAnchor()) { + mgr.printByHyperlink( activeAnchor(), displayOptions, filterOptions ); + } + } + + default: + break; + } +} + diff --git a/bibletime/frontend/display/creaddisplay.h b/bibletime/frontend/display/creaddisplay.h new file mode 100644 index 0000000..de3e51d --- /dev/null +++ b/bibletime/frontend/display/creaddisplay.h @@ -0,0 +1,71 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CREADDISPLAY_H +#define CREADDISPLAY_H + +#include "cdisplay.h" +#include "backend/cswordbackend.h" + +class QPopupMenu; +class QWidget; + +/**The base class for all read-only widgets like KHTMLView. + *@author The BibleTime team + */ + +class CReadDisplay : public CDisplay { +public: + /** + * Returns true if the display has an active anchor. + */ + const bool hasActiveAnchor(); + /** + * Returns the current active anchor. + */ + const QString& activeAnchor(); + /** + * Moves the widget to the given anchor. + */ + virtual void moveToAnchor( const QString& ) = 0; + virtual void print(const CDisplay::TextPart, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions); + + void setMouseTracking(const bool trackingEnabled) { + m_useMouseTracking = trackingEnabled; + }; + const bool getMouseTracking() const { + return m_useMouseTracking; + }; + +protected: // Protected methods + friend class CDisplay; + friend class CHTMLReadDisplay; + friend class CHTMLReadDisplayView; + + CReadDisplay( CReadWindow* readWindow ); + ~CReadDisplay(); + + /** + * Sets the current anchor to the parameter. + */ + void setActiveAnchor( const QString& ); + +private: // Public attributes + /** + * The member which hols the current anchor. + */ + + QString m_activeAnchor; + + bool m_useMouseTracking; +}; + +#endif diff --git a/bibletime/frontend/display/cwritedisplay.cpp b/bibletime/frontend/display/cwritedisplay.cpp new file mode 100644 index 0000000..1c3ad4e --- /dev/null +++ b/bibletime/frontend/display/cwritedisplay.cpp @@ -0,0 +1,23 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "cwritedisplay.h" + +#include "frontend/displaywindow/cwritewindow.h" + +//Qt includes +#include + +CWriteDisplay::CWriteDisplay( CWriteWindow* writeWindow ) : CDisplay(writeWindow) {} + +CWriteDisplay::~CWriteDisplay() {} + diff --git a/bibletime/frontend/display/cwritedisplay.h b/bibletime/frontend/display/cwritedisplay.h new file mode 100644 index 0000000..b1222e8 --- /dev/null +++ b/bibletime/frontend/display/cwritedisplay.h @@ -0,0 +1,50 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CWRITEDISPLAY_H +#define CWRITEDISPLAY_H + +#include "cdisplay.h" + +class KActionCollection; +class KToolBar; + +/**The base class for all read/write-display classes. + *@author The BibleTime team + */ + +class CWriteDisplay : public CDisplay { +protected: + friend class CDisplay; + friend class CPlainWriteDisplay; + CWriteDisplay( CWriteWindow* writeWindow ); + ~CWriteDisplay(); + +public: // Public methods + /** + * Sets the current modified status of the widget. + */ + virtual void setModified( const bool modified ) = 0; + /** + * Returns true if the current text was modified. + */ + virtual const bool isModified() const = 0; + /** + * Returns the text of this edit widget. + */ + virtual const QString plainText() = 0; + /** + * Creates the necessary action objects and puts them on the toolbar. + */ + virtual void setupToolbar( KToolBar* bar, KActionCollection* actionCollection ) = 0; +}; + +#endif diff --git a/bibletime/frontend/displaywindow/Makefile.am b/bibletime/frontend/displaywindow/Makefile.am new file mode 100644 index 0000000..a86417c --- /dev/null +++ b/bibletime/frontend/displaywindow/Makefile.am @@ -0,0 +1,36 @@ +INCLUDES = $(all_includes) + +libdisplaywindow_a_METASOURCES = AUTO + +noinst_LIBRARIES = libdisplaywindow.a + +libdisplaywindow_a_SOURCES = \ +cbiblereadwindow.cpp \ +cbookreadwindow.cpp \ +ccommentaryreadwindow.cpp \ +cdisplaywindow.cpp \ +clexiconreadwindow.cpp \ +cmodulechooserbar.cpp \ +cmodulechooserbutton.cpp \ +creadwindow.cpp \ +cwritewindow.cpp \ +cplainwritewindow.cpp \ +chtmlwritewindow.cpp \ +cbuttons.cpp + +all_headers = \ +cbiblereadwindow.h \ +cbookreadwindow.h \ +ccommentaryreadwindow.h \ +cdisplaywindow.h \ +clexiconreadwindow.h \ +cmodulechooserbar.h \ +cmodulechooserbutton.h \ +creadwindow.h \ +cwritewindow.h \ +cplainwritewindow.h \ +chtmlwritewindow.h \ +cbuttons.h + +EXTRA_DIST = $(libdisplaywindow_a_SOURCES) $(all_headers) + diff --git a/bibletime/frontend/displaywindow/Makefile.in b/bibletime/frontend/displaywindow/Makefile.in new file mode 100644 index 0000000..42b5b79 --- /dev/null +++ b/bibletime/frontend/displaywindow/Makefile.in @@ -0,0 +1,843 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/frontend/displaywindow +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) +ARFLAGS = cru +libdisplaywindow_a_AR = $(AR) $(ARFLAGS) +libdisplaywindow_a_LIBADD = +am_libdisplaywindow_a_OBJECTS = cbiblereadwindow.$(OBJEXT) \ + cbookreadwindow.$(OBJEXT) ccommentaryreadwindow.$(OBJEXT) \ + cdisplaywindow.$(OBJEXT) clexiconreadwindow.$(OBJEXT) \ + cmodulechooserbar.$(OBJEXT) cmodulechooserbutton.$(OBJEXT) \ + creadwindow.$(OBJEXT) cwritewindow.$(OBJEXT) \ + cplainwritewindow.$(OBJEXT) chtmlwritewindow.$(OBJEXT) \ + cbuttons.$(OBJEXT) +#>- libdisplaywindow_a_OBJECTS = $(am_libdisplaywindow_a_OBJECTS) +#>+ 11 +libdisplaywindow_a_final_OBJECTS = libdisplaywindow_a.all_cpp.o +libdisplaywindow_a_nofinal_OBJECTS = cbiblereadwindow.$(OBJEXT) \ + cbookreadwindow.$(OBJEXT) ccommentaryreadwindow.$(OBJEXT) \ + cdisplaywindow.$(OBJEXT) clexiconreadwindow.$(OBJEXT) \ + cmodulechooserbar.$(OBJEXT) cmodulechooserbutton.$(OBJEXT) \ + creadwindow.$(OBJEXT) cwritewindow.$(OBJEXT) \ + cplainwritewindow.$(OBJEXT) chtmlwritewindow.$(OBJEXT) \ + cbuttons.$(OBJEXT)\ +chtmlwritewindow.moc.o clexiconreadwindow.moc.o cbookreadwindow.moc.o cbuttons.moc.o cplainwritewindow.moc.o cmodulechooserbar.moc.o cbiblereadwindow.moc.o cwritewindow.moc.o cdisplaywindow.moc.o ccommentaryreadwindow.moc.o creadwindow.moc.o cmodulechooserbutton.moc.o +@KDE_USE_FINAL_FALSE@libdisplaywindow_a_OBJECTS = $(libdisplaywindow_a_nofinal_OBJECTS) +@KDE_USE_FINAL_TRUE@libdisplaywindow_a_OBJECTS = $(libdisplaywindow_a_final_OBJECTS) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/admin/depcomp +am__depfiles_maybe = depfiles +#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 2 +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 3 +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +CXXLD = $(CXX) +#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ +#>- $(LDFLAGS) -o $@ +#>+ 3 +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libdisplaywindow_a_SOURCES) +DIST_SOURCES = $(libdisplaywindow_a_SOURCES) +ETAGS = etags +CTAGS = ctags +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +INCLUDES = $(all_includes) +#>- libdisplaywindow_a_METASOURCES = AUTO +noinst_LIBRARIES = libdisplaywindow.a +libdisplaywindow_a_SOURCES = \ +cbiblereadwindow.cpp \ +cbookreadwindow.cpp \ +ccommentaryreadwindow.cpp \ +cdisplaywindow.cpp \ +clexiconreadwindow.cpp \ +cmodulechooserbar.cpp \ +cmodulechooserbutton.cpp \ +creadwindow.cpp \ +cwritewindow.cpp \ +cplainwritewindow.cpp \ +chtmlwritewindow.cpp \ +cbuttons.cpp + +all_headers = \ +cbiblereadwindow.h \ +cbookreadwindow.h \ +ccommentaryreadwindow.h \ +cdisplaywindow.h \ +clexiconreadwindow.h \ +cmodulechooserbar.h \ +cmodulechooserbutton.h \ +creadwindow.h \ +cwritewindow.h \ +cplainwritewindow.h \ +chtmlwritewindow.h \ +cbuttons.h + +EXTRA_DIST = $(libdisplaywindow_a_SOURCES) $(all_headers) +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/displaywindow/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/frontend/displaywindow/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/displaywindow/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/frontend/displaywindow/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/frontend/displaywindow/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +libdisplaywindow.a: $(libdisplaywindow_a_OBJECTS) $(libdisplaywindow_a_DEPENDENCIES) + -rm -f libdisplaywindow.a + $(libdisplaywindow_a_AR) libdisplaywindow.a $(libdisplaywindow_a_OBJECTS) $(libdisplaywindow_a_LIBADD) + $(RANLIB) libdisplaywindow.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cbiblereadwindow.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cbookreadwindow.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cbuttons.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ccommentaryreadwindow.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cdisplaywindow.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chtmlwritewindow.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clexiconreadwindow.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmodulechooserbar.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmodulechooserbutton.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cplainwritewindow.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/creadwindow.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cwritewindow.Po@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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 $(LIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ +#>- mostlyclean-am +#>+ 2 +clean-am: clean-metasources clean-bcheck clean-final clean-generic clean-libtool clean-noinstLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am + +# 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: + +#>+ 3 +chtmlwritewindow.moc.cpp: $(srcdir)/chtmlwritewindow.h + $(MOC) $(srcdir)/chtmlwritewindow.h -o chtmlwritewindow.moc.cpp + +#>+ 2 +mocs: chtmlwritewindow.moc.cpp + +#>+ 3 +clexiconreadwindow.moc.cpp: $(srcdir)/clexiconreadwindow.h + $(MOC) $(srcdir)/clexiconreadwindow.h -o clexiconreadwindow.moc.cpp + +#>+ 2 +mocs: clexiconreadwindow.moc.cpp + +#>+ 3 +cbookreadwindow.moc.cpp: $(srcdir)/cbookreadwindow.h + $(MOC) $(srcdir)/cbookreadwindow.h -o cbookreadwindow.moc.cpp + +#>+ 2 +mocs: cbookreadwindow.moc.cpp + +#>+ 3 +cbuttons.moc.cpp: $(srcdir)/cbuttons.h + $(MOC) $(srcdir)/cbuttons.h -o cbuttons.moc.cpp + +#>+ 2 +mocs: cbuttons.moc.cpp + +#>+ 3 +cplainwritewindow.moc.cpp: $(srcdir)/cplainwritewindow.h + $(MOC) $(srcdir)/cplainwritewindow.h -o cplainwritewindow.moc.cpp + +#>+ 2 +mocs: cplainwritewindow.moc.cpp + +#>+ 3 +cmodulechooserbar.moc.cpp: $(srcdir)/cmodulechooserbar.h + $(MOC) $(srcdir)/cmodulechooserbar.h -o cmodulechooserbar.moc.cpp + +#>+ 2 +mocs: cmodulechooserbar.moc.cpp + +#>+ 3 +cbiblereadwindow.moc.cpp: $(srcdir)/cbiblereadwindow.h + $(MOC) $(srcdir)/cbiblereadwindow.h -o cbiblereadwindow.moc.cpp + +#>+ 2 +mocs: cbiblereadwindow.moc.cpp + +#>+ 3 +cwritewindow.moc.cpp: $(srcdir)/cwritewindow.h + $(MOC) $(srcdir)/cwritewindow.h -o cwritewindow.moc.cpp + +#>+ 2 +mocs: cwritewindow.moc.cpp + +#>+ 3 +cdisplaywindow.moc.cpp: $(srcdir)/cdisplaywindow.h + $(MOC) $(srcdir)/cdisplaywindow.h -o cdisplaywindow.moc.cpp + +#>+ 2 +mocs: cdisplaywindow.moc.cpp + +#>+ 3 +ccommentaryreadwindow.moc.cpp: $(srcdir)/ccommentaryreadwindow.h + $(MOC) $(srcdir)/ccommentaryreadwindow.h -o ccommentaryreadwindow.moc.cpp + +#>+ 2 +mocs: ccommentaryreadwindow.moc.cpp + +#>+ 3 +creadwindow.moc.cpp: $(srcdir)/creadwindow.h + $(MOC) $(srcdir)/creadwindow.h -o creadwindow.moc.cpp + +#>+ 2 +mocs: creadwindow.moc.cpp + +#>+ 3 +cmodulechooserbutton.moc.cpp: $(srcdir)/cmodulechooserbutton.h + $(MOC) $(srcdir)/cmodulechooserbutton.h -o cmodulechooserbutton.moc.cpp + +#>+ 2 +mocs: cmodulechooserbutton.moc.cpp + +#>+ 3 +clean-metasources: + -rm -f chtmlwritewindow.moc.cpp clexiconreadwindow.moc.cpp cbookreadwindow.moc.cpp cbuttons.moc.cpp cplainwritewindow.moc.cpp cmodulechooserbar.moc.cpp cbiblereadwindow.moc.cpp cwritewindow.moc.cpp cdisplaywindow.moc.cpp ccommentaryreadwindow.moc.cpp creadwindow.moc.cpp cmodulechooserbutton.moc.cpp + +#>+ 2 +KDE_DIST=cmodulechooserbar.h chtmlwritewindow.h creadwindow.h cbookreadwindow.h clexiconreadwindow.h cdisplaywindow.h cwritewindow.h cbiblereadwindow.h Makefile.in cplainwritewindow.h cmodulechooserbutton.h cbuttons.h Makefile.am ccommentaryreadwindow.h + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/displaywindow/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/frontend/displaywindow/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/frontend/displaywindow/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 11 +libdisplaywindow_a.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/cbiblereadwindow.cpp $(srcdir)/cbookreadwindow.cpp $(srcdir)/ccommentaryreadwindow.cpp $(srcdir)/cdisplaywindow.cpp $(srcdir)/clexiconreadwindow.cpp $(srcdir)/cmodulechooserbar.cpp $(srcdir)/cmodulechooserbutton.cpp $(srcdir)/creadwindow.cpp $(srcdir)/cwritewindow.cpp $(srcdir)/cplainwritewindow.cpp $(srcdir)/chtmlwritewindow.cpp $(srcdir)/cbuttons.cpp chtmlwritewindow.moc.cpp cbookreadwindow.moc.cpp clexiconreadwindow.moc.cpp cbuttons.moc.cpp cbiblereadwindow.moc.cpp cmodulechooserbar.moc.cpp cplainwritewindow.moc.cpp cwritewindow.moc.cpp cdisplaywindow.moc.cpp ccommentaryreadwindow.moc.cpp creadwindow.moc.cpp cmodulechooserbutton.moc.cpp + @echo 'creating libdisplaywindow_a.all_cpp.cpp ...'; \ + rm -f libdisplaywindow_a.all_cpp.files libdisplaywindow_a.all_cpp.final; \ + echo "#define KDE_USE_FINAL 1" >> libdisplaywindow_a.all_cpp.final; \ + for file in cbiblereadwindow.cpp cbookreadwindow.cpp ccommentaryreadwindow.cpp cdisplaywindow.cpp clexiconreadwindow.cpp cmodulechooserbar.cpp cmodulechooserbutton.cpp creadwindow.cpp cwritewindow.cpp cplainwritewindow.cpp chtmlwritewindow.cpp cbuttons.cpp chtmlwritewindow.moc.cpp cbookreadwindow.moc.cpp clexiconreadwindow.moc.cpp cbuttons.moc.cpp cbiblereadwindow.moc.cpp cmodulechooserbar.moc.cpp cplainwritewindow.moc.cpp cwritewindow.moc.cpp cdisplaywindow.moc.cpp ccommentaryreadwindow.moc.cpp creadwindow.moc.cpp cmodulechooserbutton.moc.cpp ; do \ + echo "#include \"$$file\"" >> libdisplaywindow_a.all_cpp.files; \ + test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libdisplaywindow_a.all_cpp.final; \ + done; \ + cat libdisplaywindow_a.all_cpp.final libdisplaywindow_a.all_cpp.files > libdisplaywindow_a.all_cpp.cpp; \ + rm -f libdisplaywindow_a.all_cpp.final libdisplaywindow_a.all_cpp.files + +#>+ 3 +clean-final: + -rm -f libdisplaywindow_a.all_cpp.cpp + +#>+ 3 +final: + $(MAKE) libdisplaywindow_a_OBJECTS="$(libdisplaywindow_a_final_OBJECTS)" all-am + +#>+ 3 +final-install: + $(MAKE) libdisplaywindow_a_OBJECTS="$(libdisplaywindow_a_final_OBJECTS)" install-am + +#>+ 3 +no-final: + $(MAKE) libdisplaywindow_a_OBJECTS="$(libdisplaywindow_a_nofinal_OBJECTS)" all-am + +#>+ 3 +no-final-install: + $(MAKE) libdisplaywindow_a_OBJECTS="$(libdisplaywindow_a_nofinal_OBJECTS)" install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/frontend/displaywindow/cbiblereadwindow.cpp b/bibletime/frontend/displaywindow/cbiblereadwindow.cpp new file mode 100644 index 0000000..0e80a35 --- /dev/null +++ b/bibletime/frontend/displaywindow/cbiblereadwindow.cpp @@ -0,0 +1,458 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cbiblereadwindow.h" +#include "ccommentaryreadwindow.h" +#include "cbuttons.h" + +#include "backend/cswordversekey.h" +#include "backend/cswordbiblemoduleinfo.h" + +#include "frontend/cprofilewindow.h" +#include "frontend/cexportmanager.h" +#include "frontend/cbtconfig.h" +#include "frontend/cmdiarea.h" +#include "util/cresmgr.h" + +#include "frontend/display/creaddisplay.h" +#include "frontend/keychooser/ckeychooser.h" + +#include "util/ctoolclass.h" + +#include + +//Qt includes +#include +#include + +//KDE includes +#include +#include +#include + +using namespace Profile; + +CBibleReadWindow::CBibleReadWindow(ListCSwordModuleInfo moduleList, CMDIArea* parent, const char *name ) : CLexiconReadWindow(moduleList, parent,name) { +} + +CBibleReadWindow::~CBibleReadWindow() {} + +void CBibleReadWindow::applyProfileSettings( CProfileWindow* const settings ) { + CLexiconReadWindow::applyProfileSettings(settings); + + const int count = displaySettingsButton()->menuItemCount(); + int result = settings->windowSettings(); + for (int i = count-1; i>=1; i--) { + if (result-(int)pow((double)2,i-1)>= 0) { //2^i was added before, so item with index i is set + result -= (int)pow((double)2,i-1); + displaySettingsButton()->setItemStatus(i,true); + } + else { + displaySettingsButton()->setItemStatus(i,false); + } + } + displaySettingsButton()->setChanged(); +}; + +void CBibleReadWindow::storeProfileSettings( CProfileWindow* const settings ) { + CLexiconReadWindow::storeProfileSettings(settings); + + const int count = displaySettingsButton()->menuItemCount(); + int result = 0; + //now check every item + for (int i = 1; i < count; i++) { //first item is a title + if (displaySettingsButton()->itemStatus(i)) //item is checked + result += (int)pow((double)2,i-1);//add 2^i (the i. digit in binary) + } + settings->setWindowSettings(result); +}; + + +/** Reimplementation. */ +void CBibleReadWindow::insertKeyboardActions( KActionCollection* const a ) { + new KAction( + i18n("Next book"), CResMgr::displaywindows::bibleWindow::nextBook::accel, + a, "nextBook" + ); + new KAction( + i18n("Previous book"), CResMgr::displaywindows::bibleWindow::previousBook::accel, + a, "previousBook" + ); + new KAction( + i18n("Next chapter"), CResMgr::displaywindows::bibleWindow::nextChapter::accel, + a, "nextChapter" + ); + new KAction( + i18n("Previous chapter"), CResMgr::displaywindows::bibleWindow::previousChapter::accel, + a, "previousChapter" + ); + new KAction( + i18n("Next verse"), CResMgr::displaywindows::bibleWindow::nextVerse::accel, + a, "nextVerse" + ); + new KAction( + i18n("Previous verse"), CResMgr::displaywindows::bibleWindow::previousVerse::accel, + a, "previousVerse" + ); + + //popup menu items + // new KAction(i18n("Select all"), KStdAccel::selectAll(), a, "selectAll"); + + //copy menu items + // new KAction(i18n("Copy reference only"), KShortcut(0), a, "copyReferenceOnly"); + // new KAction(i18n("Text of reference"), KShortcut(0), a, "copyTextOfReference"); + // new KAction(i18n("Reference with text"), KShortcut(0), a, "copyReferenceWithText"); + new KAction(i18n("Copy chapter"), KShortcut(0), a, "copyChapter"); + // new KAction(i18n("Copy selected text"), KStdAccel::copy(), a, "copySelectedText"); + + //save menu + // new KAction(i18n("Reference with text"), KShortcut(0), a, "saveReferenceWithText"); + new KAction(i18n("Save chapter as plain text"), KShortcut(0), a, "saveChapterAsPlainText"); + new KAction(i18n("Save chapter as HTML"), KShortcut(0), a, "saveChapterAsHTML"); + // new KAction(i18n("Reference with text"), KShortcut(0), a, "saveReferenceWithText"); + + //print + new KAction(i18n("Print chapter"), KStdAccel::print(), a, "printChapter"); +} + +void CBibleReadWindow::initActions() { + CLexiconReadWindow::initActions(); //make sure the predefined actions are available + + //cleanup, not a clean oo-solution + actionCollection()->action("nextEntry")->setEnabled(false); + actionCollection()->action("previousEntry")->setEnabled(false); + + new KAction( + i18n("Next book"), + CResMgr::displaywindows::bibleWindow::nextBook::accel, + this, SLOT(nextBook()), + actionCollection(), "nextBook" + ); + new KAction( + i18n("Previous book"), + CResMgr::displaywindows::bibleWindow::previousBook::accel, + this, SLOT(previousBook()), + actionCollection(), "previousBook" + ); + new KAction( + i18n("Next chapter"), + CResMgr::displaywindows::bibleWindow::nextChapter::accel, + this, SLOT(nextChapter()), + actionCollection(), "nextChapter" + ); + new KAction( + i18n("Previous chapter"), + CResMgr::displaywindows::bibleWindow::previousChapter::accel, + this, SLOT(previousChapter()), + actionCollection(), "previousChapter" + ); + new KAction( + i18n("Next verse"), + CResMgr::displaywindows::bibleWindow::nextVerse::accel, + this, SLOT(nextVerse()), + actionCollection(), "nextVerse" + ); + new KAction( + i18n("Previous verse"), + CResMgr::displaywindows::bibleWindow::previousVerse::accel, + this, SLOT(previousVerse()), + actionCollection(), "previousVerse" + ); + + m_actions.selectAll = actionCollection()->action("selectAll"); + Q_ASSERT(m_actions.selectAll); + + m_actions.findText = actionCollection()->action("findText"); + Q_ASSERT(m_actions.findText); + + m_actions.findStrongs = new KAction( + i18n("Strong's Search"), + CResMgr::displaywindows::general::findStrongs::icon, + CResMgr::displaywindows::general::findStrongs::accel, + this, SLOT(openSearchStrongsDialog()), + actionCollection(), + CResMgr::displaywindows::general::findStrongs::actionName); + + + m_actions.copy.referenceOnly = new KAction(i18n("Reference only"), KShortcut(0), displayWidget()->connectionsProxy(), SLOT(copyAnchorOnly()), actionCollection(), "copyReferenceOnly"); + + m_actions.copy.referenceTextOnly = new KAction(i18n("Text of reference"), KShortcut(0),displayWidget()->connectionsProxy(), SLOT(copyAnchorTextOnly()), actionCollection(), "copyTextOfReference"); + + m_actions.copy.referenceAndText = new KAction(i18n("Reference with text"), KShortcut(0), displayWidget()->connectionsProxy(), SLOT(copyAnchorWithText()), actionCollection(), "copyReferenceWithText"); + + m_actions.copy.chapter = new KAction(i18n("Chapter"), KShortcut(0), this, SLOT(copyDisplayedText()), actionCollection(), "copyChapter"); + + m_actions.copy.selectedText = actionCollection()->action("copySelectedText"); + Q_ASSERT(m_actions.copy.selectedText); + + m_actions.save.referenceAndText = new KAction(i18n("Reference with text"), KShortcut(0), displayWidget()->connectionsProxy(), SLOT(saveAnchorWithText()), actionCollection(), "saveReferenceWithText"); + + m_actions.save.chapterAsPlain = new KAction(i18n("Chapter as plain text"), KShortcut(0), this, SLOT(saveChapterPlain()), actionCollection(), "saveChapterAsPlainText"); + + m_actions.save.chapterAsHTML = new KAction(i18n("Chapter as HTML"), KShortcut(0), this, SLOT(saveChapterHTML()), actionCollection(), "saveChapterAsHTML"); + + m_actions.print.reference = new KAction(i18n("Reference with text"), KShortcut(0), this, SLOT(printAnchorWithText()), actionCollection(), "saveReferenceWithText"); + + m_actions.print.chapter = new KAction(i18n("Chapter"), KShortcut(0), this, SLOT(printAll()), actionCollection(), "printChapter"); + + CBTConfig::setupAccelSettings(CBTConfig::bibleWindow, actionCollection()); +} + +void CBibleReadWindow::initConnections() { + CLexiconReadWindow::initConnections(); + + /* if (m_transliterationButton) { // Transliteration is not always available + connect(m_transliterationButton, SIGNAL(sigChanged()), SLOT(lookup())); + }*/ +} + +void CBibleReadWindow::initToolbars() { + CLexiconReadWindow::initToolbars(); +} + +void CBibleReadWindow::initView() { + CLexiconReadWindow::initView(); + + parentWidget()->installEventFilter( this ); +} + +/** Reimplementation. */ +void CBibleReadWindow::setupPopupMenu() { + popup()->insertTitle(CToolClass::getIconForModule(modules().first()), i18n("Bible window")); + + m_actions.findText->plug(popup()); + m_actions.findStrongs->plug(popup()); + m_actions.selectAll->plug(popup()); + + (new KActionSeparator(this))->plug( popup() ); + + m_actions.copyMenu = new KActionMenu(i18n("Copy..."), CResMgr::displaywindows::bibleWindow::copyMenu::icon, popup()); + m_actions.copyMenu->setDelayed( false ); + m_actions.copyMenu->insert(m_actions.copy.referenceOnly); + m_actions.copyMenu->insert(m_actions.copy.referenceTextOnly); + m_actions.copyMenu->insert(m_actions.copy.referenceAndText); + m_actions.copyMenu->insert(m_actions.copy.chapter); + m_actions.copyMenu->insert(new KActionSeparator(this)); + m_actions.copyMenu->insert(m_actions.copy.selectedText); + m_actions.copyMenu->plug(popup()); + + m_actions.saveMenu = new KActionMenu(i18n("Save..."),CResMgr::displaywindows::bibleWindow::saveMenu::icon, popup()); + m_actions.saveMenu->setDelayed( false ); + m_actions.saveMenu->insert(m_actions.save.referenceAndText); + m_actions.saveMenu->insert(m_actions.save.chapterAsPlain); + m_actions.saveMenu->insert(m_actions.save.chapterAsHTML); + m_actions.saveMenu->plug(popup()); + + m_actions.printMenu = new KActionMenu(i18n("Print..."),CResMgr::displaywindows::bibleWindow::printMenu::icon, popup()); + m_actions.printMenu->setDelayed(false); + m_actions.printMenu->insert(m_actions.print.reference); + m_actions.printMenu->insert(m_actions.print.chapter); + m_actions.printMenu->plug(popup()); +} + +/** Reimplemented. */ +void CBibleReadWindow::updatePopupMenu() { + qWarning("CBibleReadWindow::updatePopupMenu()"); + + //enable the action depending on the supported module features +// bool hasStrongs = false; +// ListCSwordModuleInfo mods = modules(); +// for (ListCSwordModuleInfo::iterator it = mods.begin(); it != mods.end(); ++it) { +// if ( (*it)->has( CSwordModuleInfo::strongNumbers ) ) { +// hasStrongs = true; +// break; +// } +// } +// +// m_actions.findStrongs->setEnabled( hasStrongs ); + m_actions.findStrongs->setEnabled( displayWidget()->getCurrentNodeInfo()[CDisplay::Lemma] != QString::null ); + + + m_actions.copy.referenceOnly->setEnabled( displayWidget()->hasActiveAnchor() ); + m_actions.copy.referenceTextOnly->setEnabled( displayWidget()->hasActiveAnchor() ); + m_actions.copy.referenceAndText->setEnabled( displayWidget()->hasActiveAnchor() ); + m_actions.copy.selectedText->setEnabled( displayWidget()->hasSelection() ); + + m_actions.save.referenceAndText->setEnabled( displayWidget()->hasActiveAnchor() ); + + m_actions.print.reference->setEnabled( displayWidget()->hasActiveAnchor() ); +} + +/** Moves to the next book. */ +void CBibleReadWindow::nextBook() { + if (verseKey()->next(CSwordVerseKey::UseBook)) { + keyChooser()->setKey(key()); + } +} + +/** Moves one book behind. */ +void CBibleReadWindow::previousBook() { + if (verseKey()->previous(CSwordVerseKey::UseBook)) { + keyChooser()->setKey(key()); + } +} + +/** Moves to the next book. */ +void CBibleReadWindow::nextChapter() { + if (verseKey()->next(CSwordVerseKey::UseChapter)) { + keyChooser()->setKey(key()); + } +} + +/** Moves one book behind. */ +void CBibleReadWindow::previousChapter() { + if (verseKey()->previous(CSwordVerseKey::UseChapter)) { + keyChooser()->setKey(key()); + } +} + +/** Moves to the next book. */ +void CBibleReadWindow::nextVerse() { + if (verseKey()->next(CSwordVerseKey::UseVerse)) { + keyChooser()->setKey(key()); + } +} + +/** Moves one book behind. */ +void CBibleReadWindow::previousVerse() { + if (verseKey()->previous(CSwordVerseKey::UseVerse)) { + keyChooser()->setKey(key()); + } +} + +/** rapper around key() to return the right type of key. */ +CSwordVerseKey* CBibleReadWindow::verseKey() { + CSwordVerseKey* k = dynamic_cast(CDisplayWindow::key()); + Q_ASSERT(k); + + return k; +} + +/** Copies the current chapter into the clipboard. */ +void CBibleReadWindow::copyDisplayedText() { + CSwordVerseKey dummy(*verseKey()); + dummy.Verse(1); + + CSwordVerseKey vk(*verseKey()); + vk.LowerBound(dummy); + + CSwordBibleModuleInfo* bible = dynamic_cast(modules().first()); + dummy.Verse(bible->verseCount(dummy.book(), dummy.Chapter())); + vk.UpperBound(dummy); + + CExportManager mgr(i18n("Copy chapter to clipboard ..."), false, i18n("Copying"), filterOptions(), displayOptions()); + mgr.copyKey(&vk, CExportManager::Text, true); +} + +/** Saves the chapter as valid HTML page. */ +void CBibleReadWindow::saveChapterHTML() { + //saves the complete chapter to disk + CSwordBibleModuleInfo* bible = dynamic_cast(modules().first()); + Q_ASSERT(bible); + if (!bible) //shouldn't happen + return; + + CSwordVerseKey dummy(*verseKey()); + dummy.Verse(1); + + CSwordVerseKey vk(*verseKey()); + vk.LowerBound(dummy); + + dummy.Verse(bible->verseCount(dummy.book(), dummy.Chapter())); + vk.UpperBound(dummy); + + CExportManager mgr(i18n("Saving chapter ..."), true, i18n("Saving"), filterOptions(), displayOptions()); + mgr.saveKey(&vk, CExportManager::HTML, true); +} + +/** Saves the chapter as valid HTML page. */ +void CBibleReadWindow::saveChapterPlain() { + //saves the complete chapter to disk + + CSwordVerseKey vk(*verseKey()); + CSwordVerseKey dummy(*verseKey()); + + dummy.Verse(1); + vk.LowerBound(dummy); + + CSwordBibleModuleInfo* bible = dynamic_cast(modules().first()); + dummy.Verse(bible->verseCount(dummy.book(), dummy.Chapter())); + vk.UpperBound(dummy); + + CExportManager mgr(i18n("Saving chapter ..."), true, i18n("Saving"), filterOptions(),displayOptions()); + mgr.saveKey(&vk, CExportManager::Text, true); +} + +void CBibleReadWindow::reload() { + CLexiconReadWindow::reload(); + + if (m_modules.count() == 0) { + close(); + return; + } + + //refresh the book lists +// qDebug("lang is %s",backend()->booknameLanguage().latin1()); + verseKey()->setLocale( backend()->booknameLanguage().latin1() ); + keyChooser()->refreshContent(); + + CBTConfig::setupAccelSettings(CBTConfig::readWindow, actionCollection()); //setup the predefined actions + CBTConfig::setupAccelSettings(CBTConfig::bibleWindow, actionCollection()); +} + +/** No descriptions */ +bool CBibleReadWindow::eventFilter( QObject* o, QEvent* e) { + const bool ret = CLexiconReadWindow::eventFilter(o,e); + + // Q_ASSERT(o->inherits("CDisplayWindow")); + // qWarning("class: %s", o->className()); + if (e && (e->type() == QEvent::FocusIn)) { //sync other windows to this active + + /* This is a hack to work around a KHTML problem (similair to the Drag&Drop problem we had): + * If new HTML content is loaded from inside a kHTML event handler + * the widget's state will be confused, i.e. it's scrolling without having + * the mousebutton clicked. + * + * This is not really in a KHTML event handler but works anyway. + * Sometime KDE/Qt is hard to use ... + */ + QTimer::singleShot(0, this, SLOT(syncWindows())); + } + + return ret; +} + +void CBibleReadWindow::lookup( CSwordKey* newKey ) { + CLexiconReadWindow::lookup(newKey); + + syncWindows(); +} + +void CBibleReadWindow::syncWindows() { + // qWarning("syncing windows"); + QWidgetList windows = mdi()->windowList(); + // Q_ASSERT(windows.count()); + if (!windows.count()) { + return; + } + + for (windows.first(); windows.current(); windows.next()) { + CDisplayWindow* w = dynamic_cast(windows.current()); + // Q_ASSERT(w && w->syncAllowed()); + + if (w && w->syncAllowed()) { + w->lookup( key()->key() ); + } + /* else { + qWarning("class sync: %s", w->className()); + }*/ + } +} diff --git a/bibletime/frontend/displaywindow/cbiblereadwindow.h b/bibletime/frontend/displaywindow/cbiblereadwindow.h new file mode 100644 index 0000000..2326700 --- /dev/null +++ b/bibletime/frontend/displaywindow/cbiblereadwindow.h @@ -0,0 +1,141 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CBIBLEREADWINDOW_H +#define CBIBLEREADWINDOW_H + +//BibleTime includes +#include "clexiconreadwindow.h" + +#include "backend/cswordkey.h" +#include "backend/cswordversekey.h" + +//Qt includes +#include + +//KDE includes +#include + + +class CTransliterationButton; + +/**The read display window for Bibles. + *@author The BibleTime team + */ + +class CBibleReadWindow : public CLexiconReadWindow { + Q_OBJECT +public: + CBibleReadWindow(ListCSwordModuleInfo modules, CMDIArea* parent, const char *name=0); + virtual ~CBibleReadWindow(); + /** + * Store the settings of this window in the given CProfileWindow object. + */ + virtual void storeProfileSettings( Profile::CProfileWindow* const settings ); + /** + * Store the settings of this window in the given profile window. + */ + virtual void applyProfileSettings( Profile::CProfileWindow* const settings ); + /** + * Reimplementation. + */ + static void insertKeyboardActions( KActionCollection* const a ); + +protected: + virtual void initActions(); + virtual void initToolbars(); + virtual void initConnections(); + virtual void initView(); + /** + * Reimplementation. + */ + virtual void setupPopupMenu(); + /** + * Reimplemented. + */ + virtual void updatePopupMenu(); + /** Event filter. + * Reimplementation of the event filter to filter out events like focus in. + */ + virtual bool eventFilter( QObject* o, QEvent* e); + + struct { + KAction* selectAll; + KAction* findText; + KAction* findStrongs; + + KActionMenu* copyMenu; + struct { + KAction* referenceOnly; + KAction* referenceTextOnly; + KAction* referenceAndText; + KAction* chapter; + KAction* selectedText; + } + copy; + + KActionMenu* saveMenu; + struct { + KAction* referenceAndText; + KAction* chapterAsPlain; + KAction* chapterAsHTML; + } + save; + + KActionMenu* printMenu; + struct { + KAction* reference; + KAction* chapter; + } + print; + } + m_actions; + + +public slots: + void nextBook(); + void previousBook(); + void nextChapter(); + void previousChapter(); + void nextVerse(); + void previousVerse(); + /** + * Refreshes the content of this display window and the content of the keychooser. + */ + virtual void reload(); + +protected slots: // Protected slots + /** + * Copies the current chapter into the clipboard. + */ + void copyDisplayedText(); + /** + * Saves the chapter as valid HTML page. + */ + void saveChapterHTML(); + /** + * Saves the chapter as valid HTML page. + */ + void saveChapterPlain(); + virtual void lookup( CSwordKey* newKey ); + void syncWindows(); + +private: + friend class CCommentaryReadWindow; + /** + * Wrapper around key() to return the right type of key. + */ + CSwordVerseKey* verseKey(); + + // CTransliterationButton* m_transliterationButton; +}; + +#endif diff --git a/bibletime/frontend/displaywindow/cbookreadwindow.cpp b/bibletime/frontend/displaywindow/cbookreadwindow.cpp new file mode 100644 index 0000000..c4a4627 --- /dev/null +++ b/bibletime/frontend/displaywindow/cbookreadwindow.cpp @@ -0,0 +1,176 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cbookreadwindow.h" +#include "cmodulechooserbar.h" +#include "cbuttons.h" + +#include "backend/cswordtreekey.h" + +#include "frontend/display/cdisplay.h" +#include "frontend/keychooser/cbooktreechooser.h" +#include "frontend/cprofilewindow.h" +#include "frontend/cbtconfig.h" + +#include "util/ctoolclass.h" +#include "util/cresmgr.h" + +//Qt includes +#include + +//KDE includes +#include +#include +#include + +using namespace Profile; + +CBookReadWindow::CBookReadWindow(ListCSwordModuleInfo modules, CMDIArea* parent, const char *name) : CLexiconReadWindow(modules, parent, name) {} + +CBookReadWindow::~CBookReadWindow() {} + +void CBookReadWindow::applyProfileSettings( CProfileWindow* profileWindow ) { + CLexiconReadWindow::applyProfileSettings(profileWindow); + + const bool enable = static_cast( profileWindow->windowSettings() ); + if (enable) { + m_treeAction->activate(); + } +}; + +void CBookReadWindow::storeProfileSettings( CProfileWindow* profileWindow ) { + CLexiconReadWindow::storeProfileSettings(profileWindow); + + //store information about our show tree structure button + profileWindow->setWindowSettings( static_cast( m_treeAction->isChecked() ) ); +}; + +void CBookReadWindow::initActions() { + CLexiconReadWindow::initActions(); + //cleanup, not a clean oo-solution + Q_ASSERT(actionCollection()->action("nextEntry")); + Q_ASSERT(actionCollection()->action("previousEntry")); + actionCollection()->action("nextEntry")->setEnabled(false); + actionCollection()->action("previousEntry")->setEnabled(false); + + m_treeAction = new KToggleAction( + i18n("Toggle tree view"), + CResMgr::displaywindows::bookWindow::toggleTree::icon, + CResMgr::displaywindows::bookWindow::toggleTree::accel, + this, SLOT(treeToggled()), + actionCollection(), "toggleTree"); + + CBTConfig::setupAccelSettings(CBTConfig::bookWindow, actionCollection()); +}; + +void CBookReadWindow::insertKeyboardActions( KActionCollection* const a ) { + new KToggleAction( + i18n("Toggle tree view"), + CResMgr::displaywindows::bookWindow::toggleTree::icon, + CResMgr::displaywindows::bookWindow::toggleTree::accel, + a, "toggleTree"); + + // new KAction(i18n("Copy reference only"), KShortcut(0), a, "copyReferenceOnly"); + new KAction(i18n("Copy entry with text"), KShortcut(0), a, "copyEntryWithText"); + // new KAction(i18n("Copy selected text"), KShortcut(0), a, "copySelectedText"); + new KAction(i18n("Save entry as plain text"), KShortcut(0), a, "saveEntryAsPlainText"); + new KAction(i18n("Save entry as HTML"), KShortcut(0), a, "saveEntryAsHTML"); + // new KAction(i18n("Print reference only"), KShortcut(0), a, "printReferenceOnly"); + new KAction(i18n("Print entry with text"), KShortcut(0), a, "printEntryWithText"); + +} + +/** No descriptions */ +void CBookReadWindow::initConnections() { + CLexiconReadWindow::initConnections(); + + connect(m_treeChooser, SIGNAL(keyChanged(CSwordKey*)), + this, SLOT(lookup(CSwordKey*))); + connect(m_treeChooser, SIGNAL(keyChanged(CSwordKey*)), + keyChooser(), SLOT(updateKey(CSwordKey*))); + connect(keyChooser(), SIGNAL(keyChanged(CSwordKey*)), + m_treeChooser, SLOT(updateKey(CSwordKey*))); +} + +/** Init the view */ +void CBookReadWindow::initView() { + QSplitter* splitter = new QSplitter(this); + + setMainToolBar( new KToolBar(this) ); + addDockWindow(mainToolBar()); + + m_treeChooser = new CBookTreeChooser(modules(), key(), splitter); + setDisplayWidget( CDisplay::createReadInstance(this, splitter) ); + + setKeyChooser( CKeyChooser::createInstance(modules(), key(), mainToolBar()) ); + + setModuleChooserBar( new CModuleChooserBar(modules(), modules().first()->type(), this) ); + moduleChooserBar()->setButtonLimit(1); + addDockWindow( moduleChooserBar() ); + + setButtonsToolBar( new KToolBar(this) ); + addDockWindow( buttonsToolBar() ); + setDisplaySettingsButton( new CDisplaySettingsButton( &displayOptions(), &filterOptions(), modules(), buttonsToolBar()) ); + + m_treeChooser->hide(); + + splitter->setResizeMode(m_treeChooser, QSplitter::Stretch); + setCentralWidget( splitter ); + setIcon(CToolClass::getIconForModule(modules().first())); +} + +void CBookReadWindow::initToolbars() { + Q_ASSERT(m_treeAction); + Q_ASSERT(m_actions.backInHistory); + + m_actions.backInHistory->plug( mainToolBar(), 0 ); + m_actions.forwardInHistory->plug( mainToolBar(), 1 ); + + mainToolBar()->insertWidget(0,keyChooser()->sizeHint().width(),keyChooser()); + + m_treeAction->plug(buttonsToolBar()); + m_treeAction->setChecked(false); + + buttonsToolBar()->insertWidget(2,displaySettingsButton()->size().width(),displaySettingsButton()); + + KAction* action = actionCollection()->action( + CResMgr::displaywindows::general::search::actionName ); + if (action) { + action->plug(buttonsToolBar()); + } + + #if KDE_VERSION_MINOR < 1 + action->plugAccel( accel() ); + #endif +} + +/** Is called when the action was executed to toggle the tree view. */ +void CBookReadWindow::treeToggled() { + if (m_treeAction->isChecked()) { + m_treeChooser->show(); + } + else { + m_treeChooser->hide(); + } +} + +/** Reimplementation to take care of the tree chooser. */ +void CBookReadWindow::modulesChanged() { + CLexiconReadWindow::modulesChanged(); + m_treeChooser->setModules(modules()); + lookup(key()); +} + +void CBookReadWindow::setupPopupMenu() { + CLexiconReadWindow::setupPopupMenu(); + + popup()->changeTitle(-1, CToolClass::getIconForModule(modules().first()), i18n("Book window")); +} diff --git a/bibletime/frontend/displaywindow/cbookreadwindow.h b/bibletime/frontend/displaywindow/cbookreadwindow.h new file mode 100644 index 0000000..6effe83 --- /dev/null +++ b/bibletime/frontend/displaywindow/cbookreadwindow.h @@ -0,0 +1,69 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CBOOKREADWINDOW_H +#define CBOOKREADWINDOW_H + +//BibleTime includes +#include "clexiconreadwindow.h" +#include "backend/cswordkey.h" +#include "backend/cswordtreekey.h" +#include "backend/cswordversekey.h" + +class KToggleAction; +class CBookTreeChooser; + +/** + * @author The BibleTime team + */ +class CBookReadWindow : public CLexiconReadWindow { + Q_OBJECT +public: + static void insertKeyboardActions( KActionCollection* const a ); + + CBookReadWindow(ListCSwordModuleInfo modules, CMDIArea* parent, const char *name=0); + + virtual ~CBookReadWindow(); + /** + * Store the settings of this window in the given CProfileWindow object. + */ + virtual void storeProfileSettings( Profile::CProfileWindow* profileWindow ); + /** + * Store the settings of this window in the given profile window. + */ + virtual void applyProfileSettings( Profile::CProfileWindow* profileWindow ); + +protected: + virtual void initActions(); + virtual void initToolbars(); + virtual void initConnections(); + virtual void initView(); + + virtual void setupPopupMenu(); + + protected slots: // Protected slots + /** + * Reimplementation to take care of the tree chooser. + */ + virtual void modulesChanged(); + +private: + KToggleAction* m_treeAction; + CBookTreeChooser* m_treeChooser; + +private slots: // Private slots + /** + * Is called when the action was executed to toggle the tree view. + */ + void treeToggled(); +}; + +#endif diff --git a/bibletime/frontend/displaywindow/cbuttons.cpp b/bibletime/frontend/displaywindow/cbuttons.cpp new file mode 100644 index 0000000..ddcfadf --- /dev/null +++ b/bibletime/frontend/displaywindow/cbuttons.cpp @@ -0,0 +1,218 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//HibleTime includes +#include "cbuttons.h" + +#include "util/cresmgr.h" + +#include "util/cpointers.h" + +//Qt includes +#include +#include + +//KDE includes +#include +#include + + +// CTransliterationButton::CTransliterationButton(CSwordBackend::FilterOptions* filterOptions, QWidget *parent, const char *name ) +// : KToolBarButton(CResMgr::displaywindows::transliteration::icon, 0,parent,name) { +// m_filterOptions = filterOptions; +// m_filterOptions->transliteration = 0; +// +// m_popup = new KPopupMenu(this); +// setPopup(m_popup); +// setPopupDelay(0001); +// +// connect(m_popup, SIGNAL(activated(int)), this, SLOT(optionSelected(int))); +// populateMenu(); +// } +// +// CTransliterationButton::~CTransliterationButton(){ +// +// } +// +// /** Resets the buttons with the list of used modules. */ +// void CTransliterationButton::reset( ListCSwordModuleInfo& /*modules*/ ){ +// m_popup->clear(); +// // popuplateMenu(); +// } +// +// /** Setup the menu entries. */ +// void CTransliterationButton::populateMenu(){ +// m_popup->clear(); +// m_popup->insertTitle(i18n("Transliteration")); +// m_popup->setCheckable(true); +// +// if (!CPointers::backend()->useICU()) +// return; +// +// Q_ASSERT(CPointers::backend()->transliterator()); +// if (!CPointers::backend()->transliterator()) +// return; +// +// sword::StringList options = CPointers::backend()->transliterator()->getOptionValues(); +// sword::StringList::iterator it; +// +// for (it = options.begin(); it != options.end(); ++it) { +// int id = m_popup->insertItem(QString::fromLatin1((*it).c_str())); +// if (m_filterOptions->transliteration == m_popup->indexOf(id)-1 ) { //workaround +// m_popup->setItemChecked(id, true); +// } +// } +// } +// +// /** No descriptions */ +// void CTransliterationButton::optionSelected(int ID){ +// for (unsigned int i = 0; i < m_popup->count(); i++) +// m_popup->setItemChecked(m_popup->idAt(i),false); +// m_popup->setItemChecked(ID, true); +// +// m_filterOptions->transliteration = m_popup->indexOf( ID )-1; //workaround +// emit sigChanged(); +// } + +/************************************************ + *********** CDisplaySettingsButton ************* + ************************************************/ + +CDisplaySettingsButton::CDisplaySettingsButton(CSwordBackend::DisplayOptions *displaySettings, CSwordBackend::FilterOptions *moduleSettings, const ListCSwordModuleInfo& useModules,QWidget *parent, const char *name ) +: KToolBarButton(CResMgr::displaywindows::displaySettings::icon, 0, parent, name) { + // qWarning("CDisplaySettingsButton::CDisplaySettingsButton"); + m_displaySettings = displaySettings; + m_moduleSettings = moduleSettings; + m_modules = useModules; + + m_popup = new KPopupMenu(this); + setPopup(m_popup); + setPopupDelay(0001); //Fix, O only opens menu on mouse release or move + + connect(m_popup, SIGNAL(activated(int)), this, SLOT(optionToggled(int))); + populateMenu(); +} + +void CDisplaySettingsButton::reset(const ListCSwordModuleInfo& useModules) { + m_modules = useModules; + populateMenu(); + //disable the settings button if no options are available + if (!populateMenu()) { + setEnabled(false); + QToolTip::add + (this, i18n("Display settings: No options available")); + } + else { + setEnabled(true); + QToolTip::add + (this, i18n("Display settings")); + } +} + + +void CDisplaySettingsButton::optionToggled(int ID) { + m_popup->setItemChecked( ID, !(m_popup->isItemChecked(ID))); + if (!m_popup->text(ID).isEmpty()) + *(m_dict[m_popup->text(ID).remove('&')]) = m_popup->isItemChecked(ID); + emit sigChanged(); +} + +/** No descriptions */ +int CDisplaySettingsButton::populateMenu() { + int ret = 0; + + m_popup->clear(); + m_popup->insertTitle(i18n("Display options")); + m_popup->setCheckable(true); + + ret += addMenuEntry(i18n("Use linebreaks after each verse"), &m_displaySettings->lineBreaks, (m_modules.first()->type() == CSwordModuleInfo::Bible)); + + //only show the verse numbers option for bible modules + ret += addMenuEntry(i18n("Show versenumbers"), &m_displaySettings->verseNumbers, (m_modules.first()->type() == CSwordModuleInfo::Bible)); + + ret += addMenuEntry(i18n("Show headings"), &m_moduleSettings->headings, + isOptionAvailable(CSwordModuleInfo::headings)); + /* ret += addMenuEntry(i18n("Show footnotes"), &m_moduleSettings->footnotes, + isOptionAvailable(CSwordBackend::footnotes ));*/ + ret += addMenuEntry(i18n("Highlight words of Jesus"), &m_moduleSettings->redLetterWords, + isOptionAvailable(CSwordModuleInfo::redLetterWords )); + // ret += addMenuEntry(i18n("Show Strong's Numbers"), &m_moduleSettings->strongNumbers, + // isOptionAvailable(CSwordBackend::strongNumbers )); + + /* ret += addMenuEntry(i18n("Show morphologic tags"),&m_moduleSettings->morphTags, + isOptionAvailable(CSwordBackend::morphTags )); + ret += addMenuEntry(i18n("Show lemmas"),&m_moduleSettings->lemmas, + isOptionAvailable(CSwordBackend::lemmas ));*/ + ret += addMenuEntry(i18n("Show Hebrew vowel points"), &m_moduleSettings->hebrewPoints, + isOptionAvailable(CSwordModuleInfo::hebrewPoints )); + ret += addMenuEntry(i18n("Show Hebrew cantillation marks"), &m_moduleSettings->hebrewCantillation, + isOptionAvailable(CSwordModuleInfo::hebrewCantillation )); + ret += addMenuEntry(i18n("Show Greek accents"), &m_moduleSettings->greekAccents, + isOptionAvailable(CSwordModuleInfo::greekAccents )); + + ret += addMenuEntry(i18n("Use alternative textual variant"), &m_moduleSettings->textualVariants, + isOptionAvailable(CSwordModuleInfo::textualVariants )); + ret += addMenuEntry(i18n("Show scripture cross-references"), &m_moduleSettings->scriptureReferences, + isOptionAvailable(CSwordModuleInfo::scriptureReferences )); + ret += addMenuEntry(i18n("Show morph segmentation"), &m_moduleSettings->morphSegmentation, + isOptionAvailable(CSwordModuleInfo::morphSegmentation )); + + return ret; +} + +/** No descriptions */ +int CDisplaySettingsButton::addMenuEntry( const QString name, const int* option, const bool available) { + int ret = 0; + + if (available) { + m_dict.insert( name, option ); + m_popup->setItemChecked(m_popup->insertItem( name ), *option ); + ret = 1; + } + + return ret; +} + +bool CDisplaySettingsButton::isOptionAvailable( const CSwordModuleInfo::FilterTypes option ) { + bool ret = false; + // for (m_modules.first(); m_modules.current() && !ret; m_modules.next()) { + ListCSwordModuleInfo::iterator end_it = m_modules.end(); + for (ListCSwordModuleInfo::iterator it(m_modules.begin()); it != end_it; ++it) { + ret = ret || (*it)->has(option); + } + + return ret; +} + +/** Returns the number of usable menu items in the setttings menu. */ +const int CDisplaySettingsButton::menuItemCount() { + return m_popup->count(); +} + +/** Sets the item at position pos to the satet given as 2nd paramter. */ +void CDisplaySettingsButton::setItemStatus( const int index, const bool checked ) { + const int ID = m_popup->idAt(index); + m_popup->setItemChecked(ID, checked); + const QString text = m_popup->text(ID).remove('&'); + if (m_dict[text]) { + *(m_dict[text]) = checked; + } +} + +/** Returns the status of the item at position "index" */ +const bool CDisplaySettingsButton::itemStatus( const int index ) { + return m_popup->isItemChecked( m_popup->idAt(index) ); +} + +/** Sets the status to changed. The signal changed will be emitted. */ +void CDisplaySettingsButton::setChanged() { + emit sigChanged(); +} diff --git a/bibletime/frontend/displaywindow/cbuttons.h b/bibletime/frontend/displaywindow/cbuttons.h new file mode 100644 index 0000000..ac72f49 --- /dev/null +++ b/bibletime/frontend/displaywindow/cbuttons.h @@ -0,0 +1,101 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CBUTTONS_H +#define CBUTTONS_H + +//BibleTime includes +#include "backend/cswordbackend.h" +#include "backend/cswordmoduleinfo.h" + +//QT includes +#include + +//KDE includes +#include + +class KPopupMenu; + +/** This class manages the transliteration of the selected modules. + * @author The BibleTime team + */ +// class CTransliterationButton : public KToolBarButton { +// Q_OBJECT +// public: +// CTransliterationButton(CSwordBackend::FilterOptions* displayOptions, QWidget *parent, const char *name=0); +// ~CTransliterationButton(); +// /** +// * Setup the menu entries. +// */ +// void populateMenu(); +// /** +// * Resets the buttons with the list of used modules. +// */ +// void reset( ListCSwordModuleInfo& modules ); +// +// protected slots: // Protected slots +// void optionSelected(int); +// +// private: +// KPopupMenu* m_popup; +// CSwordBackend::FilterOptions* m_filterOptions; +// +// signals: +// void sigChanged(); +// }; + +/** This class manages the display options of the selected modules. + * @author The BibleTime team + */ +class CDisplaySettingsButton : public KToolBarButton { + Q_OBJECT +public: + CDisplaySettingsButton(CSwordBackend::DisplayOptions *displaySettings, CSwordBackend::FilterOptions *settings, const ListCSwordModuleInfo& useModules, QWidget *parent=0, const char *name=0); + void reset(const ListCSwordModuleInfo& useModules); + /** + * Sets the item at position pos to the satet given as 2nd paramter. + */ + void setItemStatus( const int pos, const bool checked ); + /** + * Returns the number of usable menu items in the setttings menu. + */ + const int menuItemCount(); + /** + * Returns the status of the item at position "index" + */ + const bool itemStatus( const int index ); + /** + * Sets the status to changed. The signal changed will be emitted. + */ + void setChanged(); + +signals: + void sigChanged(void); + +protected slots: + void optionToggled(int ID); + +protected: + CSwordBackend::FilterOptions* m_moduleSettings; + CSwordBackend::DisplayOptions* m_displaySettings; + CSwordBackend::FilterOptions m_available; + ListCSwordModuleInfo m_modules; + + QDict m_dict; + + KPopupMenu* m_popup; + + int populateMenu(); + bool isOptionAvailable( const CSwordModuleInfo::FilterTypes option); + int addMenuEntry( const QString name, const int* option, const bool available); +}; + +#endif diff --git a/bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp b/bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp new file mode 100644 index 0000000..9355831 --- /dev/null +++ b/bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp @@ -0,0 +1,198 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "ccommentaryreadwindow.h" + +#include "frontend/cprofilewindow.h" +#include "frontend/cbtconfig.h" +#include "frontend/keychooser/ckeychooser.h" +#include "frontend/display/cdisplay.h" +#include "frontend/display/creaddisplay.h" + +#include "util/ctoolclass.h" +#include "util/cresmgr.h" + +//Qt includes + +//KDE includes +#include +#include +#include +#include + +using namespace Profile; + +CCommentaryReadWindow::CCommentaryReadWindow(ListCSwordModuleInfo modules, CMDIArea* parent, const char *name) : CLexiconReadWindow(modules, parent,name) {} + +void CCommentaryReadWindow::insertKeyboardActions( KActionCollection* const a ) { + new KAction( + i18n("Next book"), CResMgr::displaywindows::bibleWindow::nextBook::accel, + a, "nextBook" + ); + new KAction( + i18n("Previous book"), CResMgr::displaywindows::bibleWindow::previousBook::accel, + a, "previousBook" + ); + new KAction( + i18n("Next chapter"), CResMgr::displaywindows::bibleWindow::nextChapter::accel, + a, "nextChapter" + ); + new KAction( + i18n("Previous chapter"), CResMgr::displaywindows::bibleWindow::previousChapter::accel, + a, "previousChapter" + ); + new KAction( + i18n("Next verse"), CResMgr::displaywindows::bibleWindow::nextVerse::accel, + a, "nextVerse" + ); + new KAction( + i18n("Previous verse"), CResMgr::displaywindows::bibleWindow::previousVerse::accel, + a, "previousVerse" + ); +} + +void CCommentaryReadWindow::applyProfileSettings( CProfileWindow* profileWindow ) { + CLexiconReadWindow::applyProfileSettings(profileWindow); + if (profileWindow->windowSettings()) { + m_syncButton->setChecked(true); + } +}; + +void CCommentaryReadWindow::storeProfileSettings( CProfileWindow* profileWindow ) { + CLexiconReadWindow::storeProfileSettings(profileWindow); + profileWindow->setWindowSettings( m_syncButton->isChecked() ); +}; + +void CCommentaryReadWindow::initToolbars() { + CLexiconReadWindow::initToolbars(); + + m_syncButton = new KToggleAction(i18n("Sync with active Bible"), + CResMgr::displaywindows::commentaryWindow::syncWindow::icon, + CResMgr::displaywindows::commentaryWindow::syncWindow::accel, + actionCollection(), + CResMgr::displaywindows::commentaryWindow::syncWindow::actionName + ); + m_syncButton->setToolTip(CResMgr::displaywindows::commentaryWindow::syncWindow::tooltip); + m_syncButton->plug(buttonsToolBar()); +} + +/** Reimplementation to handle the keychooser refresh. */ +void CCommentaryReadWindow::reload() { + CLexiconReadWindow::reload(); + + //refresh the book lists + verseKey()->setLocale( backend()->booknameLanguage().latin1() ); + keyChooser()->refreshContent(); +} + +/** rapper around key() to return the right type of key. */ +CSwordVerseKey* CCommentaryReadWindow::verseKey() { + CSwordVerseKey* k = dynamic_cast(CDisplayWindow::key()); + Q_ASSERT(k); + return k; +} + +void CCommentaryReadWindow::initActions() { + CLexiconReadWindow::initActions(); //make sure the predefined actions are available + //cleanup, not a clean oo-solution + actionCollection()->action("nextEntry")->setEnabled(false); + actionCollection()->action("previousEntry")->setEnabled(false); + + new KAction( + i18n("Next book"), + CResMgr::displaywindows::bibleWindow::nextBook::accel, + this, SLOT(nextBook()), + actionCollection(), "nextBook" + ); + new KAction( + i18n("Previous book"), + CResMgr::displaywindows::bibleWindow::previousBook::accel, + this, SLOT(previousBook()), + actionCollection(), "previousBook" + ); + new KAction( + i18n("Next chapter"), + CResMgr::displaywindows::bibleWindow::nextChapter::accel, + this, SLOT(nextChapter()), + actionCollection(), "nextChapter" + ); + new KAction( + i18n("Previous chapter"), + CResMgr::displaywindows::bibleWindow::previousChapter::accel, + this, SLOT(previousChapter()), + actionCollection(), "previousChapter" + ); + new KAction( + i18n("Next verse"), + CResMgr::displaywindows::bibleWindow::nextVerse::accel, + this, SLOT(nextVerse()), + actionCollection(), "nextVerse" + ); + new KAction( + i18n("Previous verse"), + CResMgr::displaywindows::bibleWindow::previousVerse::accel, + this, SLOT(previousVerse()), + actionCollection(), "previousVerse" + ); + + CBTConfig::setupAccelSettings(CBTConfig::commentaryWindow, actionCollection()); +} + +/** Moves to the next book. */ +void CCommentaryReadWindow::nextBook() { + if (verseKey()->next(CSwordVerseKey::UseBook)) + keyChooser()->setKey(key()); +} + +/** Moves one book behind. */ +void CCommentaryReadWindow::previousBook() { + if (verseKey()->previous(CSwordVerseKey::UseBook)) + keyChooser()->setKey(key()); +} + +/** Moves to the next book. */ +void CCommentaryReadWindow::nextChapter() { + if (verseKey()->next(CSwordVerseKey::UseChapter)) + keyChooser()->setKey(key()); +} + +/** Moves one book behind. */ +void CCommentaryReadWindow::previousChapter() { + if (verseKey()->previous(CSwordVerseKey::UseChapter)) + keyChooser()->setKey(key()); +} + +/** Moves to the next book. */ +void CCommentaryReadWindow::nextVerse() { + if (verseKey()->next(CSwordVerseKey::UseVerse)) + keyChooser()->setKey(key()); +} + +/** Moves one book behind. */ +void CCommentaryReadWindow::previousVerse() { + if (verseKey()->previous(CSwordVerseKey::UseVerse)) + keyChooser()->setKey(key()); +} + +const bool CCommentaryReadWindow::syncAllowed() const { + return m_syncButton->isChecked(); +} + + +/*! + \fn CCommentaryReadWindow::setupPopupMenu() + */ +void CCommentaryReadWindow::setupPopupMenu() { + CLexiconReadWindow::setupPopupMenu(); + + popup()->changeTitle(-1, CToolClass::getIconForModule(modules().first()), i18n("Commentary window")); +} diff --git a/bibletime/frontend/displaywindow/ccommentaryreadwindow.h b/bibletime/frontend/displaywindow/ccommentaryreadwindow.h new file mode 100644 index 0000000..8b13d72 --- /dev/null +++ b/bibletime/frontend/displaywindow/ccommentaryreadwindow.h @@ -0,0 +1,67 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CCOMMENTARYREADWINDOW_H +#define CCOMMENTARYREADWINDOW_H + +//BibleTime includes +#include "cbiblereadwindow.h" + +//Qt includes +#include + +/** + *@author The BibleTime team + */ + +class CCommentaryReadWindow : public CLexiconReadWindow { + Q_OBJECT +public: + /** + * Reimplementation. + */ + static void insertKeyboardActions( KActionCollection* const a ); + + CCommentaryReadWindow(ListCSwordModuleInfo modules, CMDIArea* parent, const char *name=0); + /** + * Store the settings of this window in the given CProfileWindow object. + */ + virtual void storeProfileSettings( Profile::CProfileWindow* profileWindow ); + /** + * Store the settings of this window in the given profile window. + */ + virtual void applyProfileSettings( Profile::CProfileWindow* profileWindow ); + virtual const bool syncAllowed() const; + +public slots: // Public slots + void nextBook(); + void previousBook(); + void nextChapter(); + void previousChapter(); + void nextVerse(); + void previousVerse(); + /** + * Reimplementation to handle the keychooser refresh. + */ + virtual void reload(); + +protected: + virtual void initActions(); + virtual void initToolbars(); + +private: + KToggleAction* m_syncButton; + CSwordVerseKey* verseKey(); +protected: + virtual void setupPopupMenu(); +}; + +#endif diff --git a/bibletime/frontend/displaywindow/cdisplaywindow.cpp b/bibletime/frontend/displaywindow/cdisplaywindow.cpp new file mode 100644 index 0000000..1eebba7 --- /dev/null +++ b/bibletime/frontend/displaywindow/cdisplaywindow.cpp @@ -0,0 +1,498 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "cdisplaywindow.h" +#include "creadwindow.h" +#include "cbiblereadwindow.h" +#include "ccommentaryreadwindow.h" +#include "clexiconreadwindow.h" +#include "cbookreadwindow.h" + +#include "cwritewindow.h" +#include "cplainwritewindow.h" +#include "chtmlwritewindow.h" + +#include "cmodulechooserbar.h" +#include "cbuttons.h" + +#include "backend/cswordkey.h" + +#include "frontend/keychooser/ckeychooser.h" + +#include "frontend/display/cdisplay.h" + +#include "frontend/cmdiarea.h" +#include "frontend/cprofilewindow.h" +#include "frontend/cbtconfig.h" + +#include "frontend/searchdialog/csearchdialog.h" + +#include "util/cresmgr.h" + + +//Qt includes + +//KDE includes +#include +#include +#include + +using namespace Profile; + +CReadWindow* CDisplayWindow::createReadInstance(ListCSwordModuleInfo modules, CMDIArea* parent, const char* name) { + switch (modules.first()->type()) { + case CSwordModuleInfo::Bible: + return new CBibleReadWindow(modules, parent, name); + case CSwordModuleInfo::Commentary: + return new CCommentaryReadWindow(modules, parent, name); + case CSwordModuleInfo::Lexicon: + return new CLexiconReadWindow(modules, parent, name); + case CSwordModuleInfo::GenericBook: + return new CBookReadWindow(modules, parent, name); + default: + qWarning("unknown module type"); + break; + } + return 0; +} + + +CWriteWindow* CDisplayWindow::createWriteInstance(ListCSwordModuleInfo modules, CMDIArea* parent, const CDisplayWindow::WriteWindowType type, const char* name) { + if (type == HTMLWindow) { + return new CHTMLWriteWindow(modules, parent, name); + } + else { + return new CPlainWriteWindow(modules, parent, name); + } + return 0; +} + +CDisplayWindow::CDisplayWindow(ListCSwordModuleInfo modules, CMDIArea *parent, const char *name ) +#if KDE_VERSION >= 0x030200 +: KMainWindow(KMainWindow::NoDCOPObject, parent, name, WDestructiveClose), +#else +: KMainWindow(parent, name, WDestructiveClose), +#endif +m_mdi(parent), +m_filterOptions(), +m_displayOptions(), +m_displaySettingsButton(0), +m_keyChooser(0), +m_swordKey(0), +m_isReady(false), +m_moduleChooserBar(0), +m_mainToolBar(0), +m_popupMenu(0), +m_displayWidget(0) { + setModules(modules); +} + +CDisplayWindow::~CDisplayWindow() { + delete m_swordKey; + m_swordKey = 0; +} + +CMDIArea* const CDisplayWindow::mdi() const { + return m_mdi; +} + +/** Returns the right window caption. */ +const QString CDisplayWindow::windowCaption() { + if (!m_modules.count()) { + return QString::null; + } + + return QString(key()->key()).append(" (").append(m_modules.join(" | ")).append(")"); +} + +/** Returns the used modules as a QPtrList */ +ListCSwordModuleInfo CDisplayWindow::modules() { + ListCSwordModuleInfo mods; + + for (QStringList::iterator it = m_modules.begin(); it != m_modules.end(); ++it) { + Q_ASSERT(backend()->findModuleByName(*it)); + if (CSwordModuleInfo* m = backend()->findModuleByName(*it)) { + mods.append(m); + } + } + + return mods; +} + +/** Set the window caption. */ +void CDisplayWindow::setCaption( const QString& ) { + QWidget::setCaption( windowCaption() ); + m_mdi->emitWindowCaptionChanged(); +} + +void CDisplayWindow::insertKeyboardActions( KActionCollection* const a ) { + KStdAction::zoomIn(0, 0, a, "zoomIn"); //no slot + KStdAction::zoomOut(0, 0, a, "zoomOut"); //no slot + KStdAction::close(0, 0, a, "closeWindow"); //no slot + KStdAction::selectAll(0, 0, a, "selectAll"); + KStdAction::copy(0, 0, a, "copySelectedText"); + KStdAction::find(0, 0, a, "findText"); + + new KToolBarPopupAction( + i18n("Back in history"), + CResMgr::displaywindows::general::backInHistory::icon, + CResMgr::displaywindows::general::backInHistory::accel, + a, + CResMgr::displaywindows::general::backInHistory::actionName + ); + new KToolBarPopupAction( + i18n("Forward in history"), + CResMgr::displaywindows::general::forwardInHistory::icon, + CResMgr::displaywindows::general::forwardInHistory::accel, + a, CResMgr::displaywindows::general::forwardInHistory::actionName + ); +} + +void CDisplayWindow::initActions() { + new KAction(i18n("Search"), + CResMgr::displaywindows::general::search::icon, + CResMgr::displaywindows::general::search::accel, + this, SLOT(slotSearchInModules()), + actionCollection(), CResMgr::displaywindows::general::search::actionName + ); + + KStdAction::zoomIn( + displayWidget()->connectionsProxy(), SLOT(zoomIn()), + actionCollection(), "zoomIn" + ); + KStdAction::zoomOut( + displayWidget()->connectionsProxy(), SLOT(zoomOut()), + actionCollection(), "zoomOut" + ); + KStdAction::close( + this, SLOT(close()), + actionCollection(), "closeWindow" + ); + + KStdAction::selectAll( + displayWidget()->connectionsProxy(), SLOT(selectAll()), + actionCollection(), "selectAll" + ); + + KStdAction::copy( + displayWidget()->connectionsProxy(), SLOT(copySelection()), + actionCollection(), "copySelectedText" + ); + + KStdAction::find( + displayWidget()->connectionsProxy(), SLOT(openFindTextDialog()), + actionCollection(), "findText" + ); + + new KToolBarPopupAction( + i18n("Back in history"), CResMgr::displaywindows::general::backInHistory::icon, CResMgr::displaywindows::general::backInHistory::accel, + keyChooser(), SLOT( backInHistory() ), + actionCollection(), CResMgr::displaywindows::general::backInHistory::actionName + ); + + new KToolBarPopupAction( + i18n("Forward in history"), CResMgr::displaywindows::general::forwardInHistory::icon, CResMgr::displaywindows::general::forwardInHistory::accel, + keyChooser(), SLOT( forwardInHistory() ), + actionCollection(), CResMgr::displaywindows::general::forwardInHistory::actionName + ); + + CBTConfig::setupAccelSettings(CBTConfig::allWindows, actionCollection()); +} + +/** Is called when this window gets the focus or looses the focus. */ +void CDisplayWindow::windowActivated( const bool hasFocus ) { + if (accel()) { + accel()->setEnabled(hasFocus); + } +} + +/** Refresh the settings of this window. */ +void CDisplayWindow::reload() { + //first make sure all used Sword modules are still present + for (QStringList::iterator it = m_modules.begin(); it != m_modules.end(); ++it) { + if (!backend()->findModuleByName(*it)) { + it = m_modules.remove(it); + if (it == m_modules.end()) { + break; + } + } + } + if (m_modules.count() == 0){ + close(); + return; + } + + if (keyChooser()) keyChooser()->setModules( modules(), false ); + + if (m_moduleChooserBar) { //necessary for edit windows which have now chooser bar + m_moduleChooserBar->setModules(modules()); + } + modulesChanged(); + lookup(); +} + +/** Returns the filter options used by this window. */ +CSwordBackend::FilterOptions& CDisplayWindow::filterOptions() { + return m_filterOptions; +} + +/** Returns the display options used by this display window. */ +CSwordBackend::DisplayOptions& CDisplayWindow::displayOptions() { + return m_displayOptions; +} + +/** Sets the new display options for this window. */ +void CDisplayWindow::setDisplayOptions( const CSwordBackend::DisplayOptions& displayOptions ) { + m_displayOptions = displayOptions; +} + +/** Sets the new filter options of this window. */ +void CDisplayWindow::setFilterOptions( CSwordBackend::FilterOptions& filterOptions ) { + m_filterOptions = filterOptions; +} + +/** Returns true if the widget is ready for use. */ +const bool CDisplayWindow::isReady() const { + return m_isReady; +} + +/** Set the ready status */ +void CDisplayWindow::setReady( const bool& ready ) { + m_isReady = ready; +} + +/** Returns true if the window may be closed. */ +bool CDisplayWindow::queryClose() { + return true; +} + +/** Returns the keychooser widget of this display window. */ +CKeyChooser* const CDisplayWindow::keyChooser() const { + return m_keyChooser; +} + +/** Sets the keychooser widget for this display window. */ +void CDisplayWindow::setKeyChooser( CKeyChooser* ck ) { + m_keyChooser = ck; +} + +/** Returns the key of this display window. */ +CSwordKey* CDisplayWindow::key() const { + Q_ASSERT( m_swordKey ); + return m_swordKey; +} + +/** Sets the new sword key. */ +void CDisplayWindow::setKey( CSwordKey* key ) { + Q_ASSERT( key ); + m_swordKey = key; +} + +void CDisplayWindow::modulesChanged() { + if (moduleChooserBar()) { //necessary for write windows + setModules( m_moduleChooserBar->getModuleList() ); + } + + if (!modules().count()) { + close(); + } + else { + if (displaySettingsButton()) { + displaySettingsButton()->reset(modules()); + } + + key()->module(modules().first()); + keyChooser()->setModules(modules()); + } +} + +/** Returns the module chooser bar. */ +CModuleChooserBar* const CDisplayWindow::moduleChooserBar() const { + return m_moduleChooserBar; +} + +/** Sets the module chooser bar. */ +void CDisplayWindow::setModuleChooserBar( CModuleChooserBar* bar ) { + if (m_moduleChooserBar) { + disconnect(m_moduleChooserBar, SIGNAL(sigChanged()), this, SLOT(modulesChanged())); + } + + //if a new bar should be set! + if (bar) { + m_moduleChooserBar = bar; + connect(bar, SIGNAL(sigChanged()), SLOT(modulesChanged())); + } +} + +/** Sets the modules. */ +void CDisplayWindow::setModules( const ListCSwordModuleInfo& newModules ) { + m_modules.clear(); + + ListCSwordModuleInfo::const_iterator end_it = newModules.end(); + for (ListCSwordModuleInfo::const_iterator it(newModules.begin()); it != end_it; ++it) { + m_modules.append((*it)->name()); + } +} + +/** Initialize the window. Call this method from the outside, because calling this in the constructor is not possible! */ +const bool CDisplayWindow::init() { + //BibleTime::createReadDisplayWindow calls the show() method + initView(); + setMinimumSize( 250,200 ); + + setCaption(windowCaption()); + //setup focus stuff. + setFocusPolicy(QWidget::ClickFocus); + parentWidget()->setFocusPolicy(QWidget::ClickFocus); + + initActions(); + initToolbars(); + initConnections(); + setupPopupMenu(); + + m_filterOptions = CBTConfig::getFilterOptionDefaults(); + m_displayOptions = CBTConfig::getDisplayOptionDefaults(); + if (displaySettingsButton()) { + displaySettingsButton()->reset(modules()); + } + + setReady(true); + return true; +} + +/** Returns the main toolbar. */ +KToolBar* const CDisplayWindow::mainToolBar() const { + return m_mainToolBar; +} + +/** Returns the main toolbar. */ +KToolBar* const CDisplayWindow::buttonsToolBar() const { + return m_buttonsToolBar; +} + +/** Sets the main toolbar. */ +void CDisplayWindow::setMainToolBar( KToolBar* bar ) { + m_mainToolBar = bar; +} + +/** Sets the main toolbar. */ +void CDisplayWindow::setButtonsToolBar( KToolBar* bar ) { + m_buttonsToolBar = bar; +} + +/** Returns the display settings button */ +CDisplaySettingsButton* const CDisplayWindow::displaySettingsButton() const { + return m_displaySettingsButton; +} + +/** Sets the display settings button. */ +void CDisplayWindow::setDisplaySettingsButton( CDisplaySettingsButton* button ) { + if (m_displaySettingsButton) + disconnect(m_displaySettingsButton, SIGNAL( sigChanged() ),this, SLOT(lookup() )); + + m_displaySettingsButton = button; + connect(m_displaySettingsButton, SIGNAL(sigChanged()),this, SLOT(lookup())); +} + +/** Lookup the current key. Used to refresh the display. */ +void CDisplayWindow::lookup() { + lookup( key() ); +} + +void CDisplayWindow::lookup( const QString& moduleName, const QString& keyName ) { + Q_ASSERT(isReady()); + if (!isReady()) { + return; + } + + CSwordModuleInfo* m = backend()->findModuleByName(moduleName); + Q_ASSERT(m); + if (!m) { + return; + } + + //ToDo: check for containsRef compat + if (m && modules().contains(m)) { + key()->key(keyName); + keyChooser()->setKey(key()); //the key chooser does send an update signal + } + else { //given module not displayed in this window + //if the module is displayed in another display window we assume a wrong drop + bool found = false; + //create a new window for the given module + ListCSwordModuleInfo mList; + mList.append(m); + mdi()->emitCreateDisplayWindow(mList, keyName); + } +} + +void CDisplayWindow::lookup( const QString& keyName ) { + /* This function is called for example after a bookmark was dropped on this window + */ + Q_ASSERT(modules().first()); + + //qDebug("CDisplayWindow::lookup: %s", keyName.latin1()); + lookup(modules().first()->name(), keyName); +} + +/** Update the status of the popup menu entries. */ +void CDisplayWindow::updatePopupMenu() {} + + +///** Returns the installed popup menu. */ +KPopupMenu* const CDisplayWindow::popup() { + // qWarning("CReadWindow::popup()"); + if (!m_popupMenu) { + m_popupMenu = new KPopupMenu(this); + connect(m_popupMenu, SIGNAL(aboutToShow()), this, SLOT(updatePopupMenu())); + if (displayWidget()) { + displayWidget()->installPopup(m_popupMenu); + } + /* else { + qWarning("CDisplayWindow:: can't instal popup menu"); + }*/ + } + return m_popupMenu; +} + +/** Returns the display widget used by this implementation of CDisplayWindow. */ +CDisplay* const CDisplayWindow::displayWidget() const { + Q_ASSERT(m_displayWidget); + return m_displayWidget; +} + +/** Sets the display widget used by this display window. */ +void CDisplayWindow::setDisplayWidget( CDisplay* newDisplay ) { + m_displayWidget = newDisplay; +} + +void CDisplayWindow::closeEvent(QCloseEvent* e) { + if (!queryClose()) { + e->ignore(); + } + else { + e->accept(); + } +} + +void CDisplayWindow::slotSearchInModules() { + Search::CSearchDialog::openDialog(modules()); +} + +void CDisplayWindow::printAll() { + m_displayWidget->connectionsProxy()->printAll( m_displayOptions, m_filterOptions); +} + +void CDisplayWindow::printAnchorWithText() { + m_displayWidget->connectionsProxy()->printAnchorWithText( m_displayOptions, m_filterOptions); +} + diff --git a/bibletime/frontend/displaywindow/cdisplaywindow.h b/bibletime/frontend/displaywindow/cdisplaywindow.h new file mode 100644 index 0000000..c166687 --- /dev/null +++ b/bibletime/frontend/displaywindow/cdisplaywindow.h @@ -0,0 +1,275 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CDISPLAYWINDOW_H +#define CDISPLAYWINDOW_H + +//BibleTime includes +#include "util/cpointers.h" + +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordbackend.h" +#include "backend/cswordkey.h" +#include "backend/cswordversekey.h" +#include "backend/cswordtreekey.h" +#include "backend/cswordldkey.h" + +#include "frontend/cprofilewindow.h" + +//Qt includes +#include + +//KDE includes +#include + + +//Forward declarations +class CMDIArea; +class CReadWindow; +class CWriteWindow; +class CMDIArea; +class CDisplaySettingsButton; +class CDisplay; +class CKeyChooser; +class CModuleChooserBar; +class CDisplaySettingsButton; +class KAccel; +class KToolBar; +class KPopupMenu; + +/** The base class for all display windows of BibleTime. + * @author The BibleTime team + */ + +class CDisplayWindow : public KMainWindow, public CPointers { + Q_OBJECT +public: + enum WriteWindowType { + HTMLWindow = 1, + PlainTextWindow = 2 + }; + + static CReadWindow* createReadInstance(ListCSwordModuleInfo modules, CMDIArea* parent, const char* name = 0); + static CWriteWindow* createWriteInstance(ListCSwordModuleInfo modules, CMDIArea* parent, const WriteWindowType type = HTMLWindow, const char* name = 0); + /** + * Insert the keyboard accelerators of this window into the given KAccel object. + */ + // static void insertKeyboardActions( KAccel* const accel ); + static void insertKeyboardActions( KActionCollection* const a ); + + CMDIArea* const mdi() const; + /** + * Returns the right window caption. + */ + const QString windowCaption(); + /** + * Returns the used modules as a QPtrList + */ + ListCSwordModuleInfo modules(); + /** + * Store the settings of this window in the given CProfileWindow object. + */ + virtual void storeProfileSettings( Profile::CProfileWindow* profileWindow ) = 0; + /** + * Store the settings of this window in the given profile window. + */ + virtual void applyProfileSettings( Profile::CProfileWindow* profileWindow ) = 0; + /** + * Set the window caption. + */ + virtual void setCaption( const QString& ); + /** + * Sets the new filter options of this window. + */ + void setFilterOptions( CSwordBackend::FilterOptions& filterOptions ); + /** + * Sets the new display options for this window. + */ + void setDisplayOptions( const CSwordBackend::DisplayOptions& displayOptions ); + /** + * Returns the display options used by this display window. + */ + CSwordBackend::DisplayOptions& displayOptions(); + /** + * Returns the filter options used by this window. + */ + CSwordBackend::FilterOptions& filterOptions(); + /** + * Set the ready status + */ + void setReady( const bool& ready ); + /** + * Returns true if the widget is ready for use. + */ + const bool isReady() const; + /** + * Returns true if the window may be closed. + */ + virtual bool queryClose(); + /** + * Returns the keychooser widget of this display window. + */ + CKeyChooser* const keyChooser() const; + /** + * Sets the new sword key. + */ + void setKey( CSwordKey* key ); + /** + * Returns the key of this display window. + */ + CSwordKey* key() const; + /** + * Initialize the window. Call this method from the outside, because calling this in the constructor is not possible! + */ + virtual const bool init(); + /** + * Sets the main toolbar. + */ + void setMainToolBar( KToolBar* bar ); + /** + * Sets the buttons toolbar. + */ + void setButtonsToolBar( KToolBar* bar ); + /** + * Returns the main toolbar. + */ + KToolBar* const mainToolBar() const; + /** + * Returns the buttons toolbar. + */ + KToolBar* const buttonsToolBar() const; + /** + * Initialize the toolbars + */ + virtual void initToolbars() = 0; + /** + * Returns the display settings button + */ + CDisplaySettingsButton* const displaySettingsButton() const; + /** + * Sets the display settings button. + */ + void setDisplaySettingsButton( CDisplaySettingsButton* button ); + virtual void setupPopupMenu() = 0; + /** + * Returns the display widget used by this implementation of CDisplayWindow. + */ + virtual CDisplay* const displayWidget() const; + /** + * Sets the display widget used by this display window. + */ + virtual void setDisplayWidget( CDisplay* newDisplay ); + + /** Returns whether syncs to the active window are allowed at this time for this display window + * @return boolean value whether sync is allowed + */ + virtual const bool syncAllowed() const { + return false; + }; + +public slots: + /** + * Lookup the specified key in the given module. If the module is not chosen withing + * this display window create a new displaywindow with the right module in it. + */ + virtual void lookup( const QString& module, const QString& key ); + /** + * Lookup the key in the chosen modules. + */ + virtual void lookup( const QString& key ); + /** + * Refresh the settings of this window. + */ + virtual void reload(); + +protected: + friend class CMDIArea; + friend class CBibleReadWindow; + + CDisplayWindow(ListCSwordModuleInfo modules, CMDIArea* parent, const char *name=0); + virtual ~CDisplayWindow(); + /** + * Initializes the intern keyboard actions. + */ + virtual void initActions(); + /** + Is called when this window gets the focus or looses the focus. + */ + virtual void windowActivated( const bool hasFocus ); + /** + * Sets the keychooser widget for this display window. + */ + void setKeyChooser( CKeyChooser* ck ); + /** + * Returns the module chooser bar. + */ + CModuleChooserBar* const moduleChooserBar() const; + /** + * Lookup the given key. + */ + virtual void lookup( CSwordKey* ) = 0; + /** + * Sets the module chooser bar. + */ + void setModuleChooserBar( CModuleChooserBar* bar ); + /** + * Sets the modules. + */ + void setModules( const ListCSwordModuleInfo& modules ); + /** + * Initializes the signal / slot connections of this display window. + */ + virtual void initConnections() = 0; + /** + * Initialize the view of this display window. + */ + virtual void initView() = 0; + /** + * Returns the installed popup menu. + */ + KPopupMenu* const popup(); + virtual void closeEvent(QCloseEvent* e); + +protected slots: + virtual void modulesChanged(); + /** + * Lookup the current key. Used to refresh the display. + */ + void lookup(); + virtual void updatePopupMenu(); + + void slotSearchInModules(); + + void printAll(); + void printAnchorWithText(); + + +private: + CMDIArea* m_mdi; + + //we may only cache the module names bacause after a backend relaod the pointers are invalid! + QStringList m_modules; + + CSwordBackend::FilterOptions m_filterOptions; + CSwordBackend::DisplayOptions m_displayOptions; + + CDisplaySettingsButton* m_displaySettingsButton; + CKeyChooser* m_keyChooser; + CSwordKey* m_swordKey; + bool m_isReady; + CModuleChooserBar* m_moduleChooserBar; + KToolBar* m_mainToolBar; + KToolBar* m_buttonsToolBar; + KPopupMenu* m_popupMenu; + CDisplay* m_displayWidget; +}; + +#endif diff --git a/bibletime/frontend/displaywindow/chtmlwritewindow.cpp b/bibletime/frontend/displaywindow/chtmlwritewindow.cpp new file mode 100644 index 0000000..e2e91e4 --- /dev/null +++ b/bibletime/frontend/displaywindow/chtmlwritewindow.cpp @@ -0,0 +1,132 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "chtmlwritewindow.h" + +//frontend includes +#include "frontend/keychooser/ckeychooser.h" +#include "frontend/cprofilewindow.h" + +#include "util/cresmgr.h" + +//Qt includes + +//KDE includes +#include +#include + +using namespace Profile; + +CHTMLWriteWindow::CHTMLWriteWindow(ListCSwordModuleInfo modules, CMDIArea* parent, const char *name) +: CPlainWriteWindow(modules, parent, name) {} + +CHTMLWriteWindow::~CHTMLWriteWindow() {} + +void CHTMLWriteWindow::initView() { + CWriteDisplay* writeDisplay = CDisplay::createWriteInstance(this, CDisplay::HTMLDisplay); + Q_ASSERT(writeDisplay); + setDisplayWidget( writeDisplay ); + setCentralWidget( displayWidget()->view() ); + + setMainToolBar( new KToolBar(this) ); + mainToolBar()->setFullSize(true); + addDockWindow(mainToolBar()); + + setKeyChooser( CKeyChooser::createInstance(modules(), key(), mainToolBar()) ); + mainToolBar()->insertWidget(0,keyChooser()->sizeHint().width(),keyChooser()); + mainToolBar()->setFullSize(false); +}; + +void CHTMLWriteWindow::initConnections() { + CWriteWindow::initConnections(); + + connect(keyChooser(), SIGNAL(keyChanged(CSwordKey*)), + this, SLOT(lookup(CSwordKey*))); + connect(displayWidget()->connectionsProxy(), SIGNAL(textChanged()), + this, SLOT(textChanged()) ); +}; + +void CHTMLWriteWindow::initToolbars() { + //setup the toolbar + m_actions.syncWindow = new KToggleAction(i18n("Sync with active Bible"), + CResMgr::displaywindows::commentaryWindow::syncWindow::icon, + CResMgr::displaywindows::commentaryWindow::syncWindow::accel, + actionCollection(), + CResMgr::displaywindows::commentaryWindow::syncWindow::actionName + ); + m_actions.syncWindow->setToolTip(CResMgr::displaywindows::commentaryWindow::syncWindow::tooltip); + m_actions.syncWindow->plug(mainToolBar()); + + m_actions.saveText = new KAction( i18n("Save text"), + CResMgr::displaywindows::writeWindow::saveText::icon, + CResMgr::displaywindows::writeWindow::saveText::accel, + this, SLOT( saveCurrentText() ), + actionCollection(), + CResMgr::displaywindows::writeWindow::saveText::actionName + ); + m_actions.saveText->setToolTip( CResMgr::displaywindows::writeWindow::saveText::tooltip ); + m_actions.saveText->plug(mainToolBar()); + + m_actions.deleteEntry = new KAction(i18n("Delete current entry"), + CResMgr::displaywindows::writeWindow::deleteEntry::icon, + CResMgr::displaywindows::writeWindow::deleteEntry::accel, + this, SLOT(deleteEntry()), + actionCollection(), + CResMgr::displaywindows::writeWindow::deleteEntry::actionName + ); + m_actions.deleteEntry->setToolTip( CResMgr::displaywindows::writeWindow::deleteEntry::tooltip ); + m_actions.deleteEntry->plug(mainToolBar()); + + m_actions.restoreText = new KAction(i18n("Restore original text"), + CResMgr::displaywindows::writeWindow::restoreText::icon, + CResMgr::displaywindows::writeWindow::restoreText::accel, + this, SLOT(restoreText()), actionCollection(), + CResMgr::displaywindows::writeWindow::restoreText::actionName + ); + m_actions.restoreText->setToolTip( CResMgr::displaywindows::writeWindow::restoreText::tooltip ); + m_actions.restoreText->plug(mainToolBar()); + + + KToolBar* bar = new KToolBar(this); + bar->setFullSize(true); + addDockWindow(bar); + + displayWidget()->setupToolbar( bar, actionCollection() ); +} + +void CHTMLWriteWindow::storeProfileSettings( CProfileWindow* profileWindow ) { + CWriteWindow::storeProfileSettings(profileWindow); + profileWindow->setWindowSettings( m_actions.syncWindow->isChecked() ); +}; + +void CHTMLWriteWindow::applyProfileSettings( CProfileWindow* profileWindow ) { + CWriteWindow::applyProfileSettings(profileWindow); + if (profileWindow->windowSettings()) { + m_actions.syncWindow->setChecked(true); + } +}; + +/** Is called when the current text was changed. */ +void CHTMLWriteWindow::textChanged() { + m_actions.saveText->setEnabled( displayWidget()->isModified() ); + m_actions.restoreText->setEnabled( displayWidget()->isModified() ); +} + +/** Loads the original text from the module. */ +void CHTMLWriteWindow::restoreText() { + lookup(key()); + displayWidget()->setModified(false); + textChanged(); +} + +const bool CHTMLWriteWindow::syncAllowed() const { + return m_actions.syncWindow->isChecked(); +} diff --git a/bibletime/frontend/displaywindow/chtmlwritewindow.h b/bibletime/frontend/displaywindow/chtmlwritewindow.h new file mode 100644 index 0000000..04b70f6 --- /dev/null +++ b/bibletime/frontend/displaywindow/chtmlwritewindow.h @@ -0,0 +1,74 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CHTMLWRITEWINDOW_H +#define CHTMLWRITEWINDOW_H + +//BibleTime includes +#include "cplainwritewindow.h" + +//Qt includes +#include + +class KAction; + +/** The WYSIWYG implementation of the editor. + * @author The BibleTime team + */ +class CHTMLWriteWindow : public CPlainWriteWindow { + Q_OBJECT +public: + CHTMLWriteWindow(ListCSwordModuleInfo modules, CMDIArea* parent, const char *name = 0); + virtual ~CHTMLWriteWindow(); + + /** + * Store the settings of this window in the given CProfileWindow object. + */ + virtual void storeProfileSettings( Profile::CProfileWindow* ); + /** + * Store the settings of this window in the given profile window. + */ + virtual void applyProfileSettings( Profile::CProfileWindow* ); + + virtual const bool syncAllowed() const; + +protected: // Protected methods + /** + * Initialize the state of this widget. + */ + virtual void initView(); + virtual void initConnections(); + virtual void initToolbars(); + virtual const CDisplayWindow::WriteWindowType writeWindowType() { + return CDisplayWindow::HTMLWindow; + }; + +protected slots: + /** + * Is called when the current text was changed. + */ + virtual void textChanged(); + /** + * Loads the original text from the module. + */ + virtual void restoreText(); + +private: + struct { + KAction* saveText; + KAction* restoreText; + KAction* deleteEntry; + KToggleAction* syncWindow; + } + m_actions; +}; + +#endif diff --git a/bibletime/frontend/displaywindow/clexiconreadwindow.cpp b/bibletime/frontend/displaywindow/clexiconreadwindow.cpp new file mode 100644 index 0000000..b36118d --- /dev/null +++ b/bibletime/frontend/displaywindow/clexiconreadwindow.cpp @@ -0,0 +1,317 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "clexiconreadwindow.h" +#include "cmodulechooserbar.h" +#include "cbuttons.h" + +#include "backend/cswordkey.h" +#include "backend/cswordldkey.h" + +#include "frontend/cbtconfig.h" +#include "frontend/cexportmanager.h" +#include "frontend/display/cdisplay.h" +#include "frontend/display/creaddisplay.h" +#include "frontend/keychooser/ckeychooser.h" + +#include "util/ctoolclass.h" +#include "util/cresmgr.h" + +//Qt includes + +//KDE includes +#include +#include +#include +#include +#include +// #include + +CLexiconReadWindow::CLexiconReadWindow(ListCSwordModuleInfo moduleList, CMDIArea* parent, const char *name) : CReadWindow(moduleList, parent,name) { + setKey( CSwordKey::createInstance(moduleList.first()) ); +} + +CLexiconReadWindow::~CLexiconReadWindow() {} + +void CLexiconReadWindow::insertKeyboardActions( KActionCollection* const a ) { + new KAction( + i18n("Next entry"), CResMgr::displaywindows::lexiconWindow::nextEntry::accel, + a, "nextEntry" + ); + new KAction( + i18n("Previous entry"), CResMgr::displaywindows::lexiconWindow::previousEntry::accel, + a, "previousEntry" + ); + + // new KAction(i18n("Copy reference only"), KShortcut(0), a, "copyReferenceOnly"); + new KAction(i18n("Copy entry with text"), KShortcut(0), a, "copyEntryWithText"); + // new KAction(i18n("Copy selected text"), KShortcut(0), a, "copySelectedText"); + new KAction(i18n("Save entry as plain text"), KShortcut(0), a, "saveEntryAsPlainText"); + new KAction(i18n("Save entry as HTML"), KShortcut(0), a, "saveEntryAsHTML"); + // new KAction(i18n("Print reference only"), KShortcut(0), a, "printReferenceOnly"); + new KAction(i18n("Print entry with text"), KShortcut(0), a, "printEntryWithText"); +} + +void CLexiconReadWindow::initActions() { + CReadWindow::initActions(); + + m_actions.backInHistory = dynamic_cast( + actionCollection()->action( + CResMgr::displaywindows::general::backInHistory::actionName + ) + ); + Q_ASSERT(m_actions.backInHistory); + + m_actions.forwardInHistory = dynamic_cast( + actionCollection()->action( + CResMgr::displaywindows::general::forwardInHistory::actionName + ) + ); + + Q_ASSERT(m_actions.forwardInHistory); + + new KAction( + i18n("Next entry"), CResMgr::displaywindows::lexiconWindow::nextEntry::accel, + this, SLOT( nextEntry() ), + actionCollection(), "nextEntry" + ); + new KAction( + i18n("Previous entry"), CResMgr::displaywindows::lexiconWindow::previousEntry::accel, + this, SLOT( previousEntry() ), + actionCollection(), "previousEntry" + ); + + m_actions.selectAll = actionCollection()->action("selectAll"); + Q_ASSERT(m_actions.selectAll); + + m_actions.findText = actionCollection()->action("findText"); + Q_ASSERT(m_actions.findText); + + //m_actions.findStrongs = new KAction(i18n("Strong's Search"), KShortcut(0),this, SLOT(openSearchStrongsDialog()), actionCollection(), "findStrongs"); + m_actions.findStrongs = new KAction( + i18n("Strong's Search"), + CResMgr::displaywindows::general::findStrongs::icon, + CResMgr::displaywindows::general::findStrongs::accel, + this, SLOT(openSearchStrongsDialog()), + actionCollection(), + CResMgr::displaywindows::general::findStrongs::actionName); + + m_actions.copy.reference = new KAction(i18n("Reference only"), KShortcut(0), displayWidget()->connectionsProxy(), SLOT(copyAnchorOnly()), actionCollection(), "copyReferenceOnly"); + + m_actions.copy.entry = new KAction(i18n("Entry with text"), KShortcut(0), displayWidget()->connectionsProxy(), SLOT(copyAll()), actionCollection(), "copyEntryWithText"); + + m_actions.copy.selectedText = actionCollection()->action("copySelectedText"); + Q_ASSERT(m_actions.copy.selectedText); + + m_actions.save.entryAsPlain = new KAction(i18n("Entry as plain text"), KShortcut(0), this, SLOT(saveAsPlain()),actionCollection(), "saveEntryAsPlain"); + + m_actions.save.entryAsHTML = new KAction(i18n("Entry as HTML"), KShortcut(0), this, SLOT(saveAsHTML()), actionCollection(), "saveEntryAsHTML"); + + m_actions.print.reference = new KAction(i18n("Reference only"), KShortcut(0), this, SLOT(printAnchorWithText()), actionCollection(), "printReferenceOnly"); + + m_actions.print.entry = new KAction(i18n("Entry with text"), KShortcut(0), this, SLOT(printAll()), actionCollection(), "printEntryWithText"); + + // init with the user defined settings + CBTConfig::setupAccelSettings(CBTConfig::lexiconWindow, actionCollection()); +}; + +/** No descriptions */ +void CLexiconReadWindow::initConnections() { + Q_ASSERT(keyChooser()); + + connect(keyChooser(), SIGNAL(keyChanged(CSwordKey*)), + this, SLOT(lookup(CSwordKey*))); + connect(keyChooser(), SIGNAL(historyChanged()), + this, SLOT(slotUpdateHistoryButtons())); + + //connect the history actions to the right slots + connect( + m_actions.backInHistory->popupMenu(), SIGNAL(aboutToShow()), + this, SLOT(slotFillBackHistory()) + ); + connect( + m_actions.backInHistory->popupMenu(), SIGNAL(activated(int)), + keyChooser(), SLOT(backInHistory(int)) + ); + connect( + m_actions.forwardInHistory->popupMenu(), SIGNAL(aboutToShow()), + this, SLOT(slotFillForwardHistory()) + ); + connect( + m_actions.forwardInHistory->popupMenu(), SIGNAL(activated(int)), + keyChooser(), SLOT(forwardInHistory(int)) + ); + + +} + +void CLexiconReadWindow::initView() { + setDisplayWidget( CDisplay::createReadInstance(this) ); + + setMainToolBar( new KToolBar(this) ); + addDockWindow(mainToolBar()); + + setKeyChooser( CKeyChooser::createInstance(modules(), key(), mainToolBar()) ); + + mainToolBar()->insertWidget(0, keyChooser()->sizeHint().width(), keyChooser()); + mainToolBar()->setFullSize(false); + + setModuleChooserBar( new CModuleChooserBar(modules(), modules().first()->type(), this) ); + addDockWindow(moduleChooserBar()); + + setButtonsToolBar( new KToolBar(this) ); + addDockWindow(buttonsToolBar()); + + setIcon(CToolClass::getIconForModule(modules().first())); + setCentralWidget( displayWidget()->view() ); +} + +void CLexiconReadWindow::initToolbars() { + //main toolbar + Q_ASSERT(m_actions.backInHistory); + m_actions.backInHistory->plug( mainToolBar(),0 ); //1st button + m_actions.forwardInHistory->plug( mainToolBar(),1 ); //2nd button + + //buttons toolbar + KAction* action = actionCollection()->action( + CResMgr::displaywindows::general::search::actionName); + Q_ASSERT( action ); + if (action) { + action->plug(buttonsToolBar()); + } + #if KDE_VERSION_MINOR < 1 + action->plugAccel( accel() ); + #endif + + setDisplaySettingsButton( new CDisplaySettingsButton( &displayOptions(), &filterOptions(), modules(), buttonsToolBar()) ); + buttonsToolBar()->insertWidget(2,displaySettingsButton()->size().width(), displaySettingsButton()); +} + +void CLexiconReadWindow::setupPopupMenu() { + popup()->insertTitle(CToolClass::getIconForModule(modules().first()), i18n("Lexicon window")); + + // m_actions.selectAll = new KAction(i18n("Select all"), KShortcut(0), displayWidget()->connectionsProxy(), SLOT(selectAll()), actionCollection()); + m_actions.findText->plug(popup()); + m_actions.findStrongs->plug(popup()); + + m_actions.selectAll->plug(popup()); + + + (new KActionSeparator(this))->plug( popup() ); + + m_actions.copyMenu = new KActionMenu(i18n("Copy..."), CResMgr::displaywindows::lexiconWindow::copyMenu::icon, actionCollection()); + m_actions.copyMenu->setDelayed(false); + + m_actions.copyMenu->insert(m_actions.copy.reference); + m_actions.copyMenu->insert(m_actions.copy.entry); + m_actions.copyMenu->insert(new KActionSeparator(this)); + m_actions.copyMenu->insert(m_actions.copy.selectedText); + m_actions.copyMenu->plug(popup()); + + m_actions.saveMenu = new KActionMenu(i18n("Save..."), CResMgr::displaywindows::lexiconWindow::saveMenu::icon, actionCollection()); + m_actions.saveMenu->setDelayed(false); + m_actions.saveMenu->insert(m_actions.save.entryAsPlain); + m_actions.saveMenu->insert(m_actions.save.entryAsHTML); + m_actions.saveMenu->plug(popup()); + + m_actions.printMenu = new KActionMenu(i18n("Print..."), CResMgr::displaywindows::lexiconWindow::printMenu::icon, actionCollection()); + m_actions.printMenu->setDelayed(false); + m_actions.printMenu->insert(m_actions.print.reference); + m_actions.printMenu->insert(m_actions.print.entry); + m_actions.printMenu->plug(popup()); +} + +/** Reimplemented. */ +void CLexiconReadWindow::updatePopupMenu() { + //enable the action depending on the supported module features +/* bool hasStrongs = false; + ListCSwordModuleInfo mods = modules(); + for (ListCSwordModuleInfo::iterator it = mods.begin(); it != mods.end(); ++it) { + if ( (*it)->has( CSwordModuleInfo::strongNumbers ) ) { + hasStrongs = true; + break; + } + } + m_actions.findStrongs->setEnabled( hasStrongs );*/ + m_actions.findStrongs->setEnabled( displayWidget()->getCurrentNodeInfo()[CDisplay::Lemma] != QString::null ); + + m_actions.copy.reference->setEnabled( displayWidget()->hasActiveAnchor() ); + //m_actions.copy.entry->setEnabled( displayWidget()->hasActiveAnchor() ); + m_actions.copy.selectedText->setEnabled( displayWidget()->hasSelection() ); + + m_actions.print.reference->setEnabled( displayWidget()->hasActiveAnchor() ); +} + +/** No descriptions */ +void CLexiconReadWindow::nextEntry() { + keyChooser()->setKey(ldKey()->NextEntry()); +} + +/** No descriptions */ +void CLexiconReadWindow::previousEntry() { + keyChooser()->setKey(ldKey()->PreviousEntry()); +} + +/** Reimplementation to return the right key. */ +CSwordLDKey* CLexiconReadWindow::ldKey() { + return dynamic_cast(CDisplayWindow::key()); +} + +/** This function saves the entry as html using the CExportMgr class. */ +void CLexiconReadWindow::saveAsHTML() { + CExportManager mgr(i18n("Saving entry ..."), true, i18n("Saving"), filterOptions(), displayOptions()); + mgr.saveKey(key(), CExportManager::HTML, true); +} + +/** This function saves the entry as html using the CExportMgr class. */ +void CLexiconReadWindow::saveAsPlain() { + CExportManager mgr(i18n("Saving entry ..."), true, i18n("Saving"), filterOptions(), displayOptions()); + mgr.saveKey(key(), CExportManager::Text, true); +} + +void CLexiconReadWindow::slotFillBackHistory() { + // qWarning("fill back history"); + QStringList keyList = keyChooser()->getPreviousKeys(); + QPopupMenu* menu = m_actions.backInHistory->popupMenu(); + menu->clear(); + + QStringList::iterator it; + int index = 1; + for (it = keyList.begin(); it != keyList.end(); ++it) { + menu->insertItem(*it,index, index); + ++index; + } +} + +void CLexiconReadWindow::slotFillForwardHistory() { + // qWarning("fill forward history"); + QStringList keyList = keyChooser()->getNextKeys(); + QPopupMenu* menu = m_actions.forwardInHistory->popupMenu(); + menu->clear(); + + QStringList::iterator it; + int index = 1; + for (it = keyList.begin(); it != keyList.end(); ++it) { + menu->insertItem(*it,index, index); + ++index; + } +} + + +void CLexiconReadWindow::slotUpdateHistoryButtons() { + // qWarning("updating history buttons"); + Q_ASSERT(m_actions.backInHistory); + Q_ASSERT(keyChooser()); + + m_actions.backInHistory->setEnabled( keyChooser()->getPreviousKeys().size() > 0 ); + m_actions.forwardInHistory->setEnabled( keyChooser()->getNextKeys().size() > 0 ); +} diff --git a/bibletime/frontend/displaywindow/clexiconreadwindow.h b/bibletime/frontend/displaywindow/clexiconreadwindow.h new file mode 100644 index 0000000..a29e4d0 --- /dev/null +++ b/bibletime/frontend/displaywindow/clexiconreadwindow.h @@ -0,0 +1,117 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CLEXICONREADWINDOW_H +#define CLEXICONREADWINDOW_H + +//BibleTime includes +#include "creadwindow.h" + +//Qt includes +#include + +//KDE includes +#include + +class CSwordKey; +class CSwordLDKey; +//KDE +class KToolBarPopupAction; + +/** + *@author The BibleTime team + */ + +class CLexiconReadWindow : public CReadWindow { + Q_OBJECT +public: + CLexiconReadWindow(ListCSwordModuleInfo modules, CMDIArea* parent, const char *name=0); + virtual ~CLexiconReadWindow(); + /** + * Store the settings of this window in the given CProfileWindow object. + */ + // virtual void storeProfileSettings( CProfileWindow* profileWindow ); + /** + * Store the settings of this window in the given profile window. + */ + // virtual void applyProfileSettings( CProfileWindow* profileWindow ); + /** + * Reimplementation. + */ + // static void insertKeyboardActions( KAccel* a ); + static void insertKeyboardActions( KActionCollection* const a ); + +protected: + virtual void initActions(); + virtual void initToolbars(); + virtual void initConnections(); + virtual void initView(); + virtual void updatePopupMenu(); + virtual void setupPopupMenu(); + + + struct ActionsStruct { + KToolBarPopupAction* backInHistory; + KToolBarPopupAction* forwardInHistory; + + KAction* selectAll; + KAction* findText; + KAction* findStrongs; + + KActionMenu* copyMenu; + struct { + KAction* reference; + KAction* entry; + KAction* selectedText; + } + copy; + + KActionMenu* saveMenu; + struct { + KAction* reference; + KAction* entryAsPlain; + KAction* entryAsHTML; + } + save; + + KActionMenu* printMenu; + struct { + KAction* reference; + KAction* entry; + } + print; + } + m_actions; + +private: + /** + * Reimplementation to return the right key. + */ + CSwordLDKey* ldKey(); + +protected slots: // Protected slots + void previousEntry(); + void nextEntry(); + /** + * This function saves the entry as html using the CExportMgr class. + */ + void saveAsHTML(); + /** + * This function saves the entry as plain text using the CExportMgr class. + */ + void saveAsPlain(); + void slotFillBackHistory(); + void slotFillForwardHistory(); + + void slotUpdateHistoryButtons(); +}; + +#endif diff --git a/bibletime/frontend/displaywindow/cmodulechooserbar.cpp b/bibletime/frontend/displaywindow/cmodulechooserbar.cpp new file mode 100644 index 0000000..11492b6 --- /dev/null +++ b/bibletime/frontend/displaywindow/cmodulechooserbar.cpp @@ -0,0 +1,152 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cmodulechooserbar.h" +#include "cmodulechooserbutton.h" + +#include + +CModuleChooserBar::CModuleChooserBar(ListCSwordModuleInfo useModules, CSwordModuleInfo::ModuleType type, QWidget *parent, const char *name ) +: KToolBar(parent,name), +m_moduleType(type), +m_idCounter(0), +m_buttonLimit(-1) //-1 means no limit +{ + //insert buttons if useModules != 0 + // for (useModules.first(); useModules.current(); useModules.next()) { + ListCSwordModuleInfo::iterator end_it = useModules.end(); + for (ListCSwordModuleInfo::iterator it(useModules.begin()); it != end_it; ++it) { + + if ((m_buttonLimit != -1) && ( m_buttonLimit <= (int)m_buttonList.count()) ) { //we reached the button limit + break; + }; + + addButton( *it ); + } + + // We can add a button to choose an additional module + if ( (m_buttonLimit == -1) || (m_buttonLimit > (int)m_buttonList.count()) ) { + addButton(0); //add a button without module set + } +} + +/** Adds a button to the toolbar */ +CModuleChooserButton* const CModuleChooserBar::addButton( CSwordModuleInfo* const module ) { + CModuleChooserButton* b = new CModuleChooserButton(module, m_moduleType, ++m_idCounter, this); + insertWidget( m_idCounter, b->size().width(), b ); + m_buttonList.append(b); + + connect( b, SIGNAL(sigAddButton()), this, SLOT(addButton()) ); + + connect( b, SIGNAL(sigRemoveButton(const int)), this, SLOT(removeButton(const int)) ); + + connect( b, SIGNAL(sigChanged()), SIGNAL(sigChanged()) ); + connect( b, SIGNAL(sigChanged()), SLOT(updateMenuItems()) ); + + b->show(); + + updateMenuItems(); //make sure the items are up to date with the newest module list + + return b; +} + +void CModuleChooserBar::addButton( ) { + addButton(0); +} + +/** Removes a button from the toolbar */ +void CModuleChooserBar::removeButton( const int ID ) { + for (m_buttonList.first(); m_buttonList.current(); m_buttonList.next()) { + if (m_buttonList.current()->getId() == ID) { //found the right button to remove + CModuleChooserButton* b = m_buttonList.current(); + m_buttonList.remove(b); + + b->hide(); + b->deleteLater(); + break; + } + } + + emit sigChanged(); + + updateMenuItems(); //make sure the items are up to date with the newest module list +} + +/** Returns a list of selected modules. */ +ListCSwordModuleInfo CModuleChooserBar::getModuleList() { + const int currentItemIndex = m_buttonList.at(); //make sure we don't change the current list item + + ListCSwordModuleInfo list; + CSwordModuleInfo* m = 0; + for ( m_buttonList.first(); m_buttonList.current(); m_buttonList.next()) { + m = m_buttonList.current()->module(); + if ( m ) { + list.append( m ); + } + } + + m_buttonList.at( currentItemIndex ); + return list; +} + +/** Sets the number of the maximum count of buttons. */ +void CModuleChooserBar::setButtonLimit(const int limit) { + m_buttonLimit = limit; + if (limit == -1) //no need to delete buttons + return; + + const int tooMuch = m_buttonList.count() - limit; + for (int i = 0; i < tooMuch; ++i) { + CModuleChooserButton* b = m_buttonList.getLast(); + m_buttonList.remove(b); + b->hide(); + delete b; + } + + updateMenuItems(); +} + +/** Sets the modules which are chosen in this module chooser bar. */ +void CModuleChooserBar::setModules( ListCSwordModuleInfo useModules ) { + setButtonLimit(0); + setButtonLimit(-1); //these two lines clear the bar + + if (!useModules.count()) { + return; + } + + // for (useModules.first(); useModules.current(); useModules.next()) { + ListCSwordModuleInfo::iterator end_it = useModules.end(); + for (ListCSwordModuleInfo::iterator it(useModules.begin()); it != end_it; ++it) { + if ( (m_buttonLimit != -1) && (m_buttonLimit <= (int)m_buttonList.count()) ) { + break; + } + + addButton( *it ); + } + if ( (m_buttonLimit == -1) || (m_buttonLimit > (int)m_buttonList.count()) ) { + addButton(0);//add button without module set + } + + updateMenuItems(); +} + + +/*! + \fn CModuleChooserBar::updateMenuItems() + */ +void CModuleChooserBar::updateMenuItems() { + QPtrList buttons = m_buttonList ; + + for (buttons.first(); buttons.current(); buttons.next()) { + buttons.current()->updateMenuItems(); + } +} diff --git a/bibletime/frontend/displaywindow/cmodulechooserbar.h b/bibletime/frontend/displaywindow/cmodulechooserbar.h new file mode 100644 index 0000000..0ab2009 --- /dev/null +++ b/bibletime/frontend/displaywindow/cmodulechooserbar.h @@ -0,0 +1,79 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CMODULECHOOSERBAR_H +#define CMODULECHOOSERBAR_H + +//BibleTime includes +#include "cmodulechooserbutton.h" + +#include "backend/cswordmoduleinfo.h" + +#include "util/cpointers.h" + +//Qt includes +#include +#include + +//KDE includes +#include + +/** + * @author The BibleTime team + */ +class CModuleChooserBar : public KToolBar { + Q_OBJECT +public: + /** + * Default constructor + */ + CModuleChooserBar(ListCSwordModuleInfo useModules, CSwordModuleInfo::ModuleType type, QWidget *parent=0, const char *name=0); + /** + * Returns a list of selected modules. + */ + ListCSwordModuleInfo getModuleList(); + /** + * Sets the number of the maximum count of buttons. + */ + void setButtonLimit( const int limit); + /** + * Sets the modules which are chosen in this module chooser bar. + */ + void setModules( ListCSwordModuleInfo modules ); + +protected: + /** + * Adds a button to the toolbar + */ + CModuleChooserButton* const addButton( CSwordModuleInfo* const module ); + +protected slots: // Protected slots + /* Add a button + * This slot calls the addButton function above to add a button. + */ + void addButton(); + /** + * Removes a button from the toolbar + */ + void removeButton( const int ID ); + void updateMenuItems(); + +private: + CSwordModuleInfo::ModuleType m_moduleType; + int m_idCounter; + int m_buttonLimit; + QPtrList m_buttonList; + +signals: // Signals + void sigChanged(); +}; + +#endif diff --git a/bibletime/frontend/displaywindow/cmodulechooserbutton.cpp b/bibletime/frontend/displaywindow/cmodulechooserbutton.cpp new file mode 100644 index 0000000..7f5eaa4 --- /dev/null +++ b/bibletime/frontend/displaywindow/cmodulechooserbutton.cpp @@ -0,0 +1,276 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cmodulechooserbutton.h" +#include "cmodulechooserbar.h" + +#include "backend/cswordbackend.h" + +#include "util/cresmgr.h" + +//Qt includes +#include +#include +#include +#include + +//KDE includes +#include +#include +#include + +CModuleChooserButton::CModuleChooserButton(CSwordModuleInfo* useModule,CSwordModuleInfo::ModuleType type, const int id, CModuleChooserBar *parent, const char *name ) +: KToolBarButton(iconName(), id, parent, name), +m_id(id), m_popup(0), m_moduleChooserBar(parent) { + m_moduleType = type; + m_module = useModule; + if (!m_module) { + m_hasModule = false; + } + else { + m_hasModule = true; + } + + setIcon( iconName() ); + setPopupDelay(1); + + populateMenu(); +} + +CModuleChooserButton::~CModuleChooserButton() { + m_submenus.setAutoDelete(true); //delete all submenus + m_submenus.clear(); + + delete m_popup; +} + +/** Returns the icon used for the current status. */ +const QString CModuleChooserButton::iconName() { + switch (m_moduleType) { + case CSwordModuleInfo::Bible: + if (m_hasModule) + return CResMgr::modules::bible::icon_unlocked; + else + return CResMgr::modules::bible::icon_add; + case CSwordModuleInfo::Commentary: + if (m_hasModule) + return CResMgr::modules::commentary::icon_unlocked; + else + return CResMgr::modules::commentary::icon_add; + case CSwordModuleInfo::Lexicon: + if (m_hasModule) + return CResMgr::modules::lexicon::icon_unlocked; + else + return CResMgr::modules::lexicon::icon_add; + case CSwordModuleInfo::GenericBook: + if (m_hasModule) + return CResMgr::modules::book::icon_unlocked; + else + return CResMgr::modules::book::icon_add; + default: //return as default the bible icon + return CResMgr::modules::bible::icon_unlocked; + } +} + +CSwordModuleInfo* CModuleChooserButton::module() { + for ( KPopupMenu* popup = m_submenus.first(); popup; popup = m_submenus.next() ) { + for (unsigned int i = 0; i < popup->count(); i++) { + if ( m_popup->isItemChecked(popup->idAt(i)) ) { + QString mod = popup->text(popup->idAt(i)).remove('&'); + return backend()->findModuleByName( mod.left(mod.find(" ")) ); + } + } + + } + return 0; //"none" selected +} + +/** Returns the id used for this button. */ +int CModuleChooserButton::getId() const { + return m_id; +} + +/** Is called after a module was selected in the popup */ +void CModuleChooserButton::moduleChosen( int ID ) { + for ( KPopupMenu* popup = m_submenus.first(); popup; popup = m_submenus.next() ) { + for (unsigned int i = 0; i < popup->count(); i++) { + popup->setItemChecked(popup->idAt(i),false); + } + popup->setItemChecked(ID, true); + } + + m_popup->setItemChecked(m_noneId, false); //uncheck the "none" item + + if (m_popup->text(ID).remove('&') == i18n("NONE")) { // note: this is for m_popup, the toplevel! + if (m_hasModule) { + emit sigRemoveButton(m_id); + return; + } + } + else { + if (!m_hasModule) { + emit sigAddButton(); + } + + m_hasModule = true; + m_module = module(); + setIcon( iconName() ); + emit sigChanged(); + + setText( i18n("Select a work") ); + m_popup->changeTitle(m_titleId, i18n("Select a work")); + + QToolTip::remove + (this); + if (module()) { + QToolTip::add + (this, module()->name()); + } + } +} + +/** No descriptions */ +void CModuleChooserButton::populateMenu() { + m_submenus.setAutoDelete(true); //delete all submenus + m_submenus.clear(); + + delete m_popup; + + //create a new, empty popup + m_popup = new KPopupMenu(this); + + if (m_module) { + m_titleId = m_popup->insertTitle( i18n("Select a work") ); + } + else { + m_titleId = m_popup->insertTitle( i18n("Select an additional work") ); + } + + m_popup->setCheckable(true); + + m_noneId = m_popup->insertItem(i18n("NONE")); + if ( !m_module ) { + m_popup->setItemChecked(m_noneId, true); + } + + m_popup->insertSeparator(); + connect(m_popup, SIGNAL(activated(int)), this, SLOT(moduleChosen(int))); + setPopup(m_popup, true); + + QStringList languages; + QDict langdict; + + //the modules list contains only the modules we can use, i.e. same type and same features + ListCSwordModuleInfo modules; + ListCSwordModuleInfo allMods = backend()->moduleList(); + + // for (allMods.first(); allMods.current(); allMods.next()) { + ListCSwordModuleInfo::iterator end_it = allMods.end(); + for (ListCSwordModuleInfo::iterator it(allMods.begin()); it != end_it; ++it) { + if ((*it)->type() != m_moduleType) { + continue; + } + + modules.append( *it ); + }; + + //iterate through all found modules of the type we support + // for (modules.first(); modules.current(); modules.next()) { + /*ListCSwordModuleInfo::iterator*/ + end_it = modules.end(); + for (ListCSwordModuleInfo::iterator it(modules.begin()); it != end_it; ++it) { + QString lang = (*it)->language()->translatedName(); + + if (lang.isEmpty()) { + //lang = QString::fromLatin1("xx"); //unknown language -- do not use English as default!! + lang = (*it)->language()->abbrev(); + if (lang.isEmpty()) { + lang = "xx"; + } + } + + if (languages.find( lang ) == languages.end() ) { //this lang was not yet added + languages += lang; + + KPopupMenu* menu = new KPopupMenu; + langdict.insert(lang, menu ); + m_submenus.append(menu); + connect(menu, SIGNAL(activated(int)), this, SLOT(moduleChosen(int))); + } + } + + + //Check the appropriate entry + // for (modules.first(); modules.current(); modules.next()) { + /*ListCSwordModuleInfo::iterator*/ end_it = modules.end(); + for (ListCSwordModuleInfo::iterator it(modules.begin()); it != end_it; ++it) { + QString lang = (*it)->language()->translatedName(); + + if (lang.isEmpty()) { + lang = (*it)->language()->abbrev(); + if (lang.isEmpty()) { + lang = "xx"; + } + } + + QString name((*it)->name()); + name.append(" ").append((*it)->isLocked() ? i18n("[locked]") : QString::null); + + const int id = langdict[lang]->insertItem( name ); + if ( m_module && (*it)->name() == m_module->name()) { + langdict[lang]->setItemChecked(id, true); + } + } + + languages.sort(); + for ( QStringList::Iterator it = languages.begin(); it != languages.end(); ++it ) { + m_popup->insertItem( *it, langdict[*it]); + } + + if (module()) { + QToolTip::add + (this, module()->name()); + } + else { + QToolTip::add + (this, i18n("No work selected")); + } +} + + +/*! + \fn CModuleChooserButton::updateMenuItems() + */ +void CModuleChooserButton::updateMenuItems() { + QString moduleName; + CSwordModuleInfo* module = 0; + ListCSwordModuleInfo chosenModules = m_moduleChooserBar->getModuleList(); + + for ( KPopupMenu* popup = m_submenus.first(); popup; popup = m_submenus.next() ) { + + for (unsigned int i = 0; i < popup->count(); i++) { + moduleName = popup->text(popup->idAt(i)).remove('&'); + module = backend()->findModuleByName( moduleName.left(moduleName.findRev(" ")) ); + + Q_ASSERT(module); +// if (!module) { +// qWarning("Can't find module with name %s", moduleName.latin1()); +// } + + bool alreadyChosen = chosenModules.contains( module ); + if (m_module) { + alreadyChosen = alreadyChosen && (m_module->name() != moduleName); + } + + popup->setItemEnabled(popup->idAt(i), !alreadyChosen); //grey it out, it was chosen already + } + } +} diff --git a/bibletime/frontend/displaywindow/cmodulechooserbutton.h b/bibletime/frontend/displaywindow/cmodulechooserbutton.h new file mode 100644 index 0000000..2bd9fa7 --- /dev/null +++ b/bibletime/frontend/displaywindow/cmodulechooserbutton.h @@ -0,0 +1,77 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CMODULECHOOSERBUTTON_H +#define CMODULECHOOSERBUTTON_H + +//BibleTime includes +#include "backend/cswordmoduleinfo.h" +#include "util/cpointers.h" + +//Qt includes +#include +#include + +//KDE includes +#include +#include + +class KPopupMenu; +class CModuleChooserBar; + +/** The CModuleChooserButton displays a list of submenus sorted by language which contain the possible modules + * which can be displayed together with the first one. + * @author The BibleTime team + */ +class CModuleChooserButton : public KToolBarButton, public CPointers { + Q_OBJECT +public: + CModuleChooserButton(CSwordModuleInfo* useModule, CSwordModuleInfo::ModuleType type, const int id, CModuleChooserBar *parent, const char *name = 0 ); + ~CModuleChooserButton(); + + CSwordModuleInfo* module(); + /** + * Returns the id used for this button. + */ + int getId() const; + void updateMenuItems(); + +protected: // Protected methods + void populateMenu(); + +private: + /** + * Returns the icon used for the current status. + */ + const QString iconName(); + + bool m_hasModule; + int m_id; + int m_noneId; + int m_titleId; + CSwordModuleInfo::ModuleType m_moduleType; + CSwordModuleInfo* m_module; + + KPopupMenu* m_popup; + QPtrList m_submenus; + + CModuleChooserBar* m_moduleChooserBar; + + +private slots: + void moduleChosen(int ID ); + +signals: + void sigRemoveButton(const int ID); + void sigAddButton(); + void sigChanged(); +}; +#endif diff --git a/bibletime/frontend/displaywindow/cplainwritewindow.cpp b/bibletime/frontend/displaywindow/cplainwritewindow.cpp new file mode 100644 index 0000000..ba95bec --- /dev/null +++ b/bibletime/frontend/displaywindow/cplainwritewindow.cpp @@ -0,0 +1,176 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cplainwritewindow.h" + +#include "frontend/keychooser/ckeychooser.h" +#include "frontend/cprofilewindow.h" +#include "frontend/cbtconfig.h" + +#include "util/cresmgr.h" + +//Qt includes +#include + +//KDE includes +#include +#include +#include +#include + +using namespace Profile; + +CPlainWriteWindow::CPlainWriteWindow(ListCSwordModuleInfo moduleList, CMDIArea* parent, const char *name ) : CWriteWindow(moduleList, parent, name) { + setKey( CSwordKey::createInstance(moduleList.first()) ); +} + + +CPlainWriteWindow::~CPlainWriteWindow() {} + +/** Initialize the state of this widget. */ +void CPlainWriteWindow::initView() { + // qWarning("CPlainWriteWindow::initView()"); + setDisplayWidget( CDisplay::createWriteInstance(this) ); + setCentralWidget( displayWidget()->view() ); + + setMainToolBar( new KToolBar(this) ); + mainToolBar()->setFullSize(true); + addDockWindow(mainToolBar()); + + setKeyChooser( CKeyChooser::createInstance(modules(), key(), mainToolBar()) ); + mainToolBar()->insertWidget(0,keyChooser()->sizeHint().width(),keyChooser()); + mainToolBar()->setFullSize(false); + +} + +void CPlainWriteWindow::initToolbars() { + m_actions.syncWindow = new KToggleAction(i18n("Sync with active Bible"), + CResMgr::displaywindows::commentaryWindow::syncWindow::icon, + CResMgr::displaywindows::commentaryWindow::syncWindow::accel, + actionCollection(), + CResMgr::displaywindows::commentaryWindow::syncWindow::actionName + ); + m_actions.syncWindow->setToolTip(CResMgr::displaywindows::commentaryWindow::syncWindow::tooltip); + m_actions.syncWindow->plug(mainToolBar()); + + + m_actions.saveText = new KAction(i18n("Save text"), + CResMgr::displaywindows::writeWindow::saveText::icon, + CResMgr::displaywindows::writeWindow::saveText::accel, + this, SLOT(saveCurrentText()), + actionCollection(), + CResMgr::displaywindows::writeWindow::saveText::actionName + ); + m_actions.saveText->setToolTip( CResMgr::displaywindows::writeWindow::saveText::tooltip ); + m_actions.saveText->plug(mainToolBar()); + + + m_actions.deleteEntry = new KAction(i18n("Delete current entry"), + CResMgr::displaywindows::writeWindow::deleteEntry::icon, + CResMgr::displaywindows::writeWindow::deleteEntry::accel, + this, SLOT(deleteEntry()), + actionCollection(), + CResMgr::displaywindows::writeWindow::deleteEntry::actionName + ); + m_actions.deleteEntry->setToolTip( CResMgr::displaywindows::writeWindow::deleteEntry::tooltip ); + m_actions.deleteEntry->plug(mainToolBar()); + + + m_actions.restoreText = new KAction(i18n("Restore original text"), + CResMgr::displaywindows::writeWindow::restoreText::icon, + CResMgr::displaywindows::writeWindow::restoreText::accel, + this, SLOT(restoreText()), + actionCollection(), + CResMgr::displaywindows::writeWindow::restoreText::actionName + ); + m_actions.restoreText->setToolTip( CResMgr::displaywindows::writeWindow::restoreText::tooltip ); + m_actions.restoreText->plug(mainToolBar()); +} + +void CPlainWriteWindow::initConnections() { + CWriteWindow::initConnections(); + connect(keyChooser(), SIGNAL(keyChanged(CSwordKey*)), + this, SLOT(lookup(CSwordKey*))); + + connect(displayWidget()->connectionsProxy(), SIGNAL(textChanged()), + this, SLOT(textChanged()) ); +} + +void CPlainWriteWindow::storeProfileSettings( CProfileWindow* profileWindow ) { + CWriteWindow::storeProfileSettings(profileWindow); + profileWindow->setWindowSettings( m_actions.syncWindow->isChecked() ); +}; + +void CPlainWriteWindow::applyProfileSettings( CProfileWindow* profileWindow ) { + CWriteWindow::applyProfileSettings(profileWindow); + if (profileWindow->windowSettings()) { + m_actions.syncWindow->setChecked(true); + } +}; + +/** Saves the text for the current key. Directly writes the changed text into the module. */ +void CPlainWriteWindow::saveCurrentText( const QString& /*key*/ ) { + QString t = displayWidget()->plainText(); + //since t is a complete HTML page at the moment, strip away headers and footers of a HTML page + QRegExp re("(?:.+)", false); //remove headers, case insensitive + re.setMinimal(true); + t.replace(re, ""); + t.replace(QRegExp("", false), "");//remove footer + + const QString& oldKey = this->key()->key(); + if( modules().first()->isWritable() ) { + modules().first()->write(this->key(), t ); + this->key()->key( oldKey ); + + displayWidget()->setModified(false); + textChanged(); + } else { + KMessageBox::error( this, + QString::fromLatin1("%1
%2
") + .arg( i18n("Module is not writable.") ) + .arg( i18n("Either the module may not be edited, or " + "you do not have write permission.") ), + i18n("Module not writable") ); + } +} + +/** Loads the original text from the module. */ +void CPlainWriteWindow::restoreText() { + lookup(key()); + displayWidget()->setModified(false); + textChanged(); +} + +/** Is called when the current text was changed. */ +void CPlainWriteWindow::textChanged() { + m_actions.saveText->setEnabled( displayWidget()->isModified() ); + m_actions.restoreText->setEnabled( displayWidget()->isModified() ); +} + +/** Deletes the module entry and clears the edit widget, */ +void CPlainWriteWindow::deleteEntry() { + modules().first()->deleteEntry( key() ); + lookup( key() ); + displayWidget()->setModified(false); +} + +/** Setups the popup menu of this display widget. */ +void CPlainWriteWindow::setupPopupMenu() {} + +const bool CPlainWriteWindow::syncAllowed() const { + return m_actions.syncWindow->isChecked(); +} + +void CPlainWriteWindow::initActions() { +} + +void CPlainWriteWindow::insertKeyboardActions( KActionCollection* const ) { +} diff --git a/bibletime/frontend/displaywindow/cplainwritewindow.h b/bibletime/frontend/displaywindow/cplainwritewindow.h new file mode 100644 index 0000000..94f9b70 --- /dev/null +++ b/bibletime/frontend/displaywindow/cplainwritewindow.h @@ -0,0 +1,97 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CPLAINWRITEWINDOW_H +#define CPLAINWRITEWINDOW_H + +//BibleTime includes +#include "cwritewindow.h" + +//Qt includes +#include + + +class KAction; +class KToggleAction; + +/** The write window class which offers a plain editor for source code editing. + * @author The BibleTime team + */ +class CPlainWriteWindow : public CWriteWindow { + Q_OBJECT +public: + CPlainWriteWindow( ListCSwordModuleInfo modules, CMDIArea* parent, const char *name = 0 ); + virtual ~CPlainWriteWindow(); + + /** + * Store the settings of this window in the given CProfileWindow object. + */ + virtual void storeProfileSettings( Profile::CProfileWindow* profileWindow ); + /** + * Store the settings of this window in the given profile window. + */ + virtual void applyProfileSettings( Profile::CProfileWindow* profileWindow ); + + /** + * Setups the popup menu of this display widget. + */ + virtual void setupPopupMenu(); + virtual const bool syncAllowed() const; + +protected: // Protected methods + /** + * Initialize the state of this widget. + */ + virtual void initView(); + virtual void initConnections(); + virtual void initToolbars(); + virtual const CDisplayWindow::WriteWindowType writeWindowType() { + return CDisplayWindow::PlainTextWindow; + }; + + /** + * Initializes the intern keyboard actions. + */ + virtual void initActions(); + /** + * Insert the keyboard accelerators of this window into the given KAccel object. + */ + static void insertKeyboardActions( KActionCollection* const a ); + +private: + struct { + KAction* saveText; + KAction* deleteEntry; + KAction* restoreText; + KToggleAction* syncWindow; + } + m_actions; + +protected slots: // Protected slots + /** + * Saves the text for the current key. Directly writes the changed text into the module. + */ + virtual void saveCurrentText( const QString& ); + /** + * Is called when the current text was changed. + */ + virtual void textChanged(); + /** + * Loads the original text from the module. + */ + virtual void restoreText(); + /** + * Deletes the module entry and clears the edit widget. + */ + virtual void deleteEntry(); +}; + +#endif diff --git a/bibletime/frontend/displaywindow/creadwindow.cpp b/bibletime/frontend/displaywindow/creadwindow.cpp new file mode 100644 index 0000000..d1bcd11 --- /dev/null +++ b/bibletime/frontend/displaywindow/creadwindow.cpp @@ -0,0 +1,195 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "creadwindow.h" + +#include "backend/centrydisplay.h" +#include "backend/cdisplayrendering.h" +#include "backend/cswordkey.h" + +#include "frontend/cbtconfig.h" +#include "frontend/cexportmanager.h" +#include "frontend/cmdiarea.h" +#include "frontend/cprofilewindow.h" +#include "frontend/displaywindow/cmodulechooserbar.h" +#include "frontend/keychooser/ckeychooser.h" +#include "frontend/searchdialog/csearchdialog.h" + +#include "util/cresmgr.h" + +//KDE includes +#include +#include +#include +#include +#include + +using namespace Profile; + +CReadWindow::CReadWindow(ListCSwordModuleInfo modules, CMDIArea* parent, const char *name ) +: CDisplayWindow(modules,parent,name), +m_displayWidget(0) { + + // installEventFilter(this); +} + +CReadWindow::~CReadWindow() { + // qWarning("destructor of CReadWindow"); +} + +/** Returns the display widget of this window. */ +CReadDisplay* const CReadWindow::displayWidget() { + return m_displayWidget; +} + +/** Sets the display widget of this display window. */ +void CReadWindow::setDisplayWidget( CReadDisplay* newDisplay ) { + CDisplayWindow::setDisplayWidget(newDisplay); + if (m_displayWidget) { + disconnect(m_displayWidget->connectionsProxy(), SIGNAL(referenceClicked(const QString&, const QString&)), this, SLOT(lookup(const QString&, const QString&))); + + disconnect(m_displayWidget->connectionsProxy(), SIGNAL(referenceDropped(const QString&)), this, SLOT(lookup(const QString&))); + } + + m_displayWidget = newDisplay; + connect( + m_displayWidget->connectionsProxy(), + SIGNAL(referenceClicked(const QString&, const QString&)), + this, + SLOT(lookup(const QString&, const QString&)) + ); + + connect( + m_displayWidget->connectionsProxy(), + SIGNAL(referenceDropped(const QString&)), + this, + SLOT(lookup(const QString&)) + ); +} + +/** Lookup the given entry. */ +void CReadWindow::lookup( CSwordKey* newKey ) { + Q_ASSERT(newKey); + + using namespace Rendering; + + Q_ASSERT(isReady() && newKey && modules().first()); + if (!isReady() || !newKey || !modules().first()) { + return; + } + + Q_ASSERT(modules().first()->getDisplay()); + CEntryDisplay* display = modules().first()->getDisplay(); + if (display) { //do we have a display object? + displayWidget()->setText( + display->text( + modules(), + newKey->key(), + displayOptions(), + filterOptions() + ) + ); + } + + if (key() != newKey) { + key()->key(newKey->key()); + } + + setCaption( windowCaption() ); + + // qDebug("[CReadWindow::lookup] Moving to anchor %s", CDisplayRendering::keyToHTMLAnchor(key()->key()).latin1()); + + displayWidget()->moveToAnchor( CDisplayRendering::keyToHTMLAnchor(key()->key()) ); +} + +/** Store the settings of this window in the given CProfileWindow object. */ +void CReadWindow::storeProfileSettings(CProfileWindow * const settings) { + QRect rect; + rect.setX(parentWidget()->x()); + rect.setY(parentWidget()->y()); + rect.setWidth(width()); + rect.setHeight(height()); + settings->setGeometry(rect); + + // settings->setScrollbarPositions( m_htmlWidget->view()->horizontalScrollBar()->value(), m_htmlWidget->view()->verticalScrollBar()->value() ); + settings->setType(modules().first()->type()); + settings->setMaximized(isMaximized() || parentWidget()->isMaximized()); + settings->setFocus( (this == mdi()->activeWindow()) ); //set property to true if this window is the active one. + + if (key()) { + sword::VerseKey* vk = dynamic_cast(key()); + QString oldLang; + if (vk) { + oldLang = QString(vk->getLocale()); + vk->setLocale("en"); //save english locale names as default! + } + settings->setKey( key()->key() ); + if (vk) { + vk->setLocale(oldLang.latin1()); + } + } + + QStringList mods; + + ListCSwordModuleInfo allMods = modules(); + ListCSwordModuleInfo::iterator end_it = allMods.end(); + for (ListCSwordModuleInfo::iterator it(allMods.begin()); it != end_it; ++it) { + mods.append((*it)->name()); + } + settings->setModules(mods); +} + +void CReadWindow::applyProfileSettings(CProfileWindow * const settings) { + // parentWidget()->setUpdatesEnabled(false); + setUpdatesEnabled(false); + + if (settings->maximized()) { //maximize this window + // Use parentWidget() to call showMaximized. Otherwise we'd get lot's of X11 errors + parentWidget()->showMaximized(); + } + else { + const QRect rect = settings->geometry(); + resize(rect.width(), rect.height()); + parentWidget()->move(rect.x(), rect.y()); + } + + setUpdatesEnabled(true); +} + +void CReadWindow::insertKeyboardActions( KActionCollection* const ) {} + +/** No descriptions */ +void CReadWindow::copyDisplayedText() { + CExportManager mgr(QString::null); + mgr.copyKey(key(), CExportManager::Text, true); +} + + +/*! + \fn CReadWindow::resizeEvent(QResizeEvent* e) + */ +void CReadWindow::resizeEvent(QResizeEvent* /*e*/) { + displayWidget()->moveToAnchor( + Rendering::CDisplayRendering::keyToHTMLAnchor(key()->key()) + ); +} + +void CReadWindow::openSearchStrongsDialog() { +// qWarning("looking for lemma %s", displayWidget()->getCurrentNodeInfo()[CDisplay::Lemma].latin1() ); + QString searchText = QString::null; + + if (displayWidget()->getCurrentNodeInfo()[CDisplay::Lemma] != QString::null) { + searchText.append("strong:").append(displayWidget()->getCurrentNodeInfo() [CDisplay::Lemma]); + } + + Search::CSearchDialog::openDialog( modules(), searchText, 0 ); +} diff --git a/bibletime/frontend/displaywindow/creadwindow.h b/bibletime/frontend/displaywindow/creadwindow.h new file mode 100644 index 0000000..9dd36b0 --- /dev/null +++ b/bibletime/frontend/displaywindow/creadwindow.h @@ -0,0 +1,74 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CREADWINDOW_H +#define CREADWINDOW_H + +//BibleTime includes +#include "cdisplaywindow.h" + +#include "frontend/display/cdisplay.h" +#include "frontend/display/creaddisplay.h" + +//Qt includes +#include +#include + +class KPopupMenu; + +/** The base class for all read-only display windows. + * @author The BibleTime team + */ + +class CReadWindow : public CDisplayWindow { + Q_OBJECT +public: + // static void insertKeyboardActions( KAccel* const a ); + static void insertKeyboardActions( KActionCollection* const a ); + + CReadWindow(ListCSwordModuleInfo modules, CMDIArea* parent, const char *name=0); + virtual ~CReadWindow(); + /** + * Store the settings of this window in the given CProfileWindow object. + */ + virtual void storeProfileSettings(Profile::CProfileWindow * const settings); + /** + * Store the settings of this window in the given CProfileWindow object. + */ + virtual void applyProfileSettings(Profile::CProfileWindow * const settings); + +protected: // Protected methods + /** + * Sets the display widget of this display window. + */ + virtual void setDisplayWidget( CReadDisplay* newDisplay ); + /** + * Returns the display widget of this window. + */ + virtual CReadDisplay* const displayWidget(); + virtual void resizeEvent(QResizeEvent* e); + +protected slots: + virtual void lookup( CSwordKey* ); + /** + * Update the status of the popup menu entries. + */ + virtual void copyDisplayedText(); + /** Open the search dialog with the strong info of the last clicked word. + * + */ + void openSearchStrongsDialog(); + +private: + CReadDisplay* m_displayWidget; +}; + +#endif diff --git a/bibletime/frontend/displaywindow/cwritewindow.cpp b/bibletime/frontend/displaywindow/cwritewindow.cpp new file mode 100644 index 0000000..34be15c --- /dev/null +++ b/bibletime/frontend/displaywindow/cwritewindow.cpp @@ -0,0 +1,176 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cwritewindow.h" + +#include "backend/cswordmoduleinfo.h" + +#include "frontend/keychooser/ckeychooser.h" +#include "frontend/cprofilewindow.h" + +//KDE includes +#include +#include + +using namespace Profile; + +CWriteWindow::CWriteWindow(ListCSwordModuleInfo modules, CMDIArea* parent, const char *name ) +: CDisplayWindow(modules, parent,name), m_writeDisplay(0) {} + +CWriteWindow::~CWriteWindow() {} + + +// void CWriteWindow::insertKeyboardActions( KAccel* const /*a*/ ) { +// +// }; +void CWriteWindow::insertKeyboardActions( KActionCollection* const ) { + /* new KAction( + i18n("Next book"), CResMgr::displaywindows::bibleWindow::nextBook::accel, + a, "nextBook" + );*/ +} + +void CWriteWindow::initConnections() { + // qWarning("CWriteWindow::initConnections()"); + Q_ASSERT(keyChooser()); + + connect(keyChooser(), SIGNAL(beforeKeyChange(const QString&)), + this, SLOT(beforeKeyChange(const QString&)) + ); +}; + +void CWriteWindow::initActions() {} +; + +void CWriteWindow::storeProfileSettings(CProfileWindow * const settings) { + + settings->setWriteWindowType( writeWindowType() ); + + QRect rect; + rect.setX(parentWidget()->x()); + rect.setY(parentWidget()->y()); + rect.setWidth(width()); + rect.setHeight(height()); + settings->setGeometry(rect); + + // settings->setScrollbarPositions( m_htmlWidget->view()->horizontalScrollBar()->value(), m_htmlWidget->view()->verticalScrollBar()->value() ); + settings->setType(modules().first()->type()); + settings->setMaximized(isMaximized() || parentWidget()->isMaximized()); + + if (key()) { + sword::VerseKey* vk = dynamic_cast(key()); + QString oldLang; + if (vk) { + oldLang = QString::fromLatin1(vk->getLocale()); + vk->setLocale("en"); //save english locale names as default! + } + settings->setKey( key()->key() ); + if (vk) { + vk->setLocale(oldLang.latin1()); + } + } + + QStringList mods; + ListCSwordModuleInfo allMods = modules(); + // for (CSwordModuleInfo* m = modules().first(); m; m = modules().next()) { + ListCSwordModuleInfo::iterator end_it = allMods.end(); + for (ListCSwordModuleInfo::iterator it(allMods.begin()); it != end_it; ++it) { + mods.append((*it)->name()); + } + settings->setModules(mods); +}; + +void CWriteWindow::applyProfileSettings(CProfileWindow * const settings) { + setUpdatesEnabled(false); + + if (settings->maximized()) { + parentWidget()->showMaximized(); + } + else { + const QRect rect = settings->geometry(); + resize(rect.width(), rect.height()); + parentWidget()->move(rect.x(), rect.y()); + //setGeometry( settings->geometry() ); + } + // displayWidget()->view()->horizontalScrollBar()->setValue( settings->scrollbarPositions().horizontal ); + // m_htmlWidget->view()->verticalScrollBar()->setValue( settings->scrollbarPositions().vertical ); + + setUpdatesEnabled(true); +}; + +/** Sets the write display-widget for this write display window. */ +void CWriteWindow::setDisplayWidget( CWriteDisplay* display ) { + CDisplayWindow::setDisplayWidget(display); + m_writeDisplay = display; +} + +/** Look up the given key and display the text. In our case we offer to edit the text. */ +void CWriteWindow::lookup( CSwordKey* newKey ) { + //set the raw text to the display widget + if (!newKey) + return; + + if (key() != newKey) { //set passage of newKey to key() if they're different, otherwise we'd get mixed up if we look up newkey which may have a different module set + key()->key(newKey->key()); + } + + if ( modules().count() ) { + displayWidget()->setText( key()->rawText() ); + } + setCaption( windowCaption() ); +} + +/** Returns the write display widget used by this window. */ +CWriteDisplay* const CWriteWindow::displayWidget() { + return m_writeDisplay; +} + +/** Saves settings */ +bool CWriteWindow::queryClose() { + // qWarning("queryClose called!"); + //save the text if it has changed + if (m_writeDisplay->isModified()) { + switch (KMessageBox::warningYesNoCancel( this, i18n("Save text before closing?")) ) { + case KMessageBox::Yes: { //save and close + saveCurrentText(); + m_writeDisplay->setModified( false ); + return true; + } + case KMessageBox::No: //don't save and close + return true; + default: // cancel, don't close + return false; + } + } + return true; +} + +void CWriteWindow::beforeKeyChange(const QString& key) { + Q_ASSERT(displayWidget()); + Q_ASSERT(keyChooser()); + if (!isReady()) { + return; + } + + //If the text changed and we'd do a lookup ask the user if the text should be saved + if (modules().first() && displayWidget()->isModified()) { + switch (KMessageBox::warningYesNo( this, i18n("Save changed text?")) ) { + case KMessageBox::Yes: { //save the changes + saveCurrentText( key ); + break; + } + default: {// set modified to false so it won't ask again + displayWidget()->setModified(false); + break; + } + } + } +} diff --git a/bibletime/frontend/displaywindow/cwritewindow.h b/bibletime/frontend/displaywindow/cwritewindow.h new file mode 100644 index 0000000..dfa4c1a --- /dev/null +++ b/bibletime/frontend/displaywindow/cwritewindow.h @@ -0,0 +1,79 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CWRITEWINDOW_H +#define CWRITEWINDOW_H + +//BibleTime includes +#include "frontend/display/cwritedisplay.h" +#include "cdisplaywindow.h" + +//Qt includes +#include + +/**The base class for all write-only display windows. + *@author The BibleTime team + */ + +class CWriteWindow : public CDisplayWindow { + Q_OBJECT +public: + static void insertKeyboardActions( KActionCollection* const a ); + + CWriteWindow(ListCSwordModuleInfo modules, CMDIArea* parent, const char *name=0); + virtual ~CWriteWindow(); + /** + * Store the settings of this window in the given CProfileWindow object. + */ + virtual void storeProfileSettings(Profile::CProfileWindow * const settings); + /** + * Store the settings of this window in the given CProfileWindow object. + */ + virtual void applyProfileSettings(Profile::CProfileWindow * const settings); + /** + * Returns the write display widget used by this window. + */ + CWriteDisplay* const displayWidget(); + virtual void initConnections(); + virtual void initActions(); + +public slots: + /** + * Look up the given key and display the text. In our case we offer to edit the text. + */ + virtual void lookup( CSwordKey* key ); + + +protected: // Protected methods + /** + * Saves the given text as text of the given key. Use this function + * as backend in each write window implementation. + */ + void setDisplayWidget( CWriteDisplay* display ); + virtual const CDisplayWindow::WriteWindowType writeWindowType() = 0; + virtual bool queryClose(); + virtual void saveCurrentText( const QString& key ) = 0; + +protected slots: + /** Save text to the module + */ + void saveCurrentText() { + if(key()) { + saveCurrentText(key()->key()); + }; + }; + virtual void beforeKeyChange(const QString&); + +private: + CWriteDisplay* m_writeDisplay; +}; + +#endif diff --git a/bibletime/frontend/keychooser/Makefile.am b/bibletime/frontend/keychooser/Makefile.am new file mode 100644 index 0000000..af817e7 --- /dev/null +++ b/bibletime/frontend/keychooser/Makefile.am @@ -0,0 +1,28 @@ +INCLUDES = $(all_includes) + +libkeychooser_a_METASOURCES = AUTO + +noinst_LIBRARIES = libkeychooser.a + +libkeychooser_a_SOURCES = \ +cbiblekeychooser.cpp \ +clexiconkeychooser.cpp \ +ckeychooser.cpp \ +cscrollbutton.cpp \ +ckeychooserwidget.cpp \ +ckeyreferencewidget.cpp \ +cscrollerwidgetset.cpp \ +cbookkeychooser.cpp \ +cbooktreechooser.cpp + +all_headers = ckeychooserwidget.h \ +cscrollbutton.h \ +ckeychooser.h \ +clexiconkeychooser.h \ +cscrollerwidgetset.h \ +cbiblekeychooser.h \ +ckeyreferencewidget.h \ +cbookkeychooser.h \ +cbooktreechooser.h + +EXTRA_DIST = $(libkeychooser_a_SOURCES) $(all_headers) diff --git a/bibletime/frontend/keychooser/Makefile.in b/bibletime/frontend/keychooser/Makefile.in new file mode 100644 index 0000000..c0fa4e6 --- /dev/null +++ b/bibletime/frontend/keychooser/Makefile.in @@ -0,0 +1,815 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/frontend/keychooser +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) +ARFLAGS = cru +libkeychooser_a_AR = $(AR) $(ARFLAGS) +libkeychooser_a_LIBADD = +am_libkeychooser_a_OBJECTS = cbiblekeychooser.$(OBJEXT) \ + clexiconkeychooser.$(OBJEXT) ckeychooser.$(OBJEXT) \ + cscrollbutton.$(OBJEXT) ckeychooserwidget.$(OBJEXT) \ + ckeyreferencewidget.$(OBJEXT) cscrollerwidgetset.$(OBJEXT) \ + cbookkeychooser.$(OBJEXT) cbooktreechooser.$(OBJEXT) +#>- libkeychooser_a_OBJECTS = $(am_libkeychooser_a_OBJECTS) +#>+ 9 +libkeychooser_a_final_OBJECTS = libkeychooser_a.all_cpp.o +libkeychooser_a_nofinal_OBJECTS = cbiblekeychooser.$(OBJEXT) \ + clexiconkeychooser.$(OBJEXT) ckeychooser.$(OBJEXT) \ + cscrollbutton.$(OBJEXT) ckeychooserwidget.$(OBJEXT) \ + ckeyreferencewidget.$(OBJEXT) cscrollerwidgetset.$(OBJEXT) \ + cbookkeychooser.$(OBJEXT) cbooktreechooser.$(OBJEXT)\ +ckeyreferencewidget.moc.o cbookkeychooser.moc.o cscrollbutton.moc.o crefselectdialog.moc.o cscrollerwidgetset.moc.o ckeychooserwidget.moc.o cbiblekeychooser.moc.o clexiconkeychooser.moc.o cbooktreechooser.moc.o ckeychooser.moc.o +@KDE_USE_FINAL_FALSE@libkeychooser_a_OBJECTS = $(libkeychooser_a_nofinal_OBJECTS) +@KDE_USE_FINAL_TRUE@libkeychooser_a_OBJECTS = $(libkeychooser_a_final_OBJECTS) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/admin/depcomp +am__depfiles_maybe = depfiles +#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 2 +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 3 +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +CXXLD = $(CXX) +#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ +#>- $(LDFLAGS) -o $@ +#>+ 3 +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libkeychooser_a_SOURCES) +DIST_SOURCES = $(libkeychooser_a_SOURCES) +ETAGS = etags +CTAGS = ctags +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +INCLUDES = $(all_includes) +#>- libkeychooser_a_METASOURCES = AUTO +noinst_LIBRARIES = libkeychooser.a +libkeychooser_a_SOURCES = \ +cbiblekeychooser.cpp \ +clexiconkeychooser.cpp \ +ckeychooser.cpp \ +cscrollbutton.cpp \ +ckeychooserwidget.cpp \ +ckeyreferencewidget.cpp \ +cscrollerwidgetset.cpp \ +cbookkeychooser.cpp \ +cbooktreechooser.cpp + +all_headers = ckeychooserwidget.h \ +cscrollbutton.h \ +ckeychooser.h \ +clexiconkeychooser.h \ +cscrollerwidgetset.h \ +cbiblekeychooser.h \ +ckeyreferencewidget.h \ +cbookkeychooser.h \ +cbooktreechooser.h + +EXTRA_DIST = $(libkeychooser_a_SOURCES) $(all_headers) +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/keychooser/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/frontend/keychooser/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/keychooser/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/frontend/keychooser/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/frontend/keychooser/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +libkeychooser.a: $(libkeychooser_a_OBJECTS) $(libkeychooser_a_DEPENDENCIES) + -rm -f libkeychooser.a + $(libkeychooser_a_AR) libkeychooser.a $(libkeychooser_a_OBJECTS) $(libkeychooser_a_LIBADD) + $(RANLIB) libkeychooser.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cbiblekeychooser.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cbookkeychooser.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cbooktreechooser.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ckeychooser.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ckeychooserwidget.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ckeyreferencewidget.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clexiconkeychooser.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cscrollbutton.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cscrollerwidgetset.Po@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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 $(LIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ +#>- mostlyclean-am +#>+ 2 +clean-am: clean-metasources clean-bcheck clean-final clean-generic clean-libtool clean-noinstLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am + +# 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: + +#>+ 3 +ckeyreferencewidget.moc.cpp: $(srcdir)/ckeyreferencewidget.h + $(MOC) $(srcdir)/ckeyreferencewidget.h -o ckeyreferencewidget.moc.cpp + +#>+ 2 +mocs: ckeyreferencewidget.moc.cpp + +#>+ 3 +cbookkeychooser.moc.cpp: $(srcdir)/cbookkeychooser.h + $(MOC) $(srcdir)/cbookkeychooser.h -o cbookkeychooser.moc.cpp + +#>+ 2 +mocs: cbookkeychooser.moc.cpp + +#>+ 3 +cscrollbutton.moc.cpp: $(srcdir)/cscrollbutton.h + $(MOC) $(srcdir)/cscrollbutton.h -o cscrollbutton.moc.cpp + +#>+ 2 +mocs: cscrollbutton.moc.cpp + +#>+ 3 +crefselectdialog.moc.cpp: $(srcdir)/crefselectdialog.h + $(MOC) $(srcdir)/crefselectdialog.h -o crefselectdialog.moc.cpp + +#>+ 2 +mocs: crefselectdialog.moc.cpp + +#>+ 3 +cscrollerwidgetset.moc.cpp: $(srcdir)/cscrollerwidgetset.h + $(MOC) $(srcdir)/cscrollerwidgetset.h -o cscrollerwidgetset.moc.cpp + +#>+ 2 +mocs: cscrollerwidgetset.moc.cpp + +#>+ 3 +ckeychooserwidget.moc.cpp: $(srcdir)/ckeychooserwidget.h + $(MOC) $(srcdir)/ckeychooserwidget.h -o ckeychooserwidget.moc.cpp + +#>+ 2 +mocs: ckeychooserwidget.moc.cpp + +#>+ 3 +cbiblekeychooser.moc.cpp: $(srcdir)/cbiblekeychooser.h + $(MOC) $(srcdir)/cbiblekeychooser.h -o cbiblekeychooser.moc.cpp + +#>+ 2 +mocs: cbiblekeychooser.moc.cpp + +#>+ 3 +clexiconkeychooser.moc.cpp: $(srcdir)/clexiconkeychooser.h + $(MOC) $(srcdir)/clexiconkeychooser.h -o clexiconkeychooser.moc.cpp + +#>+ 2 +mocs: clexiconkeychooser.moc.cpp + +#>+ 3 +cbooktreechooser.moc.cpp: $(srcdir)/cbooktreechooser.h + $(MOC) $(srcdir)/cbooktreechooser.h -o cbooktreechooser.moc.cpp + +#>+ 2 +mocs: cbooktreechooser.moc.cpp + +#>+ 3 +ckeychooser.moc.cpp: $(srcdir)/ckeychooser.h + $(MOC) $(srcdir)/ckeychooser.h -o ckeychooser.moc.cpp + +#>+ 2 +mocs: ckeychooser.moc.cpp + +#>+ 3 +clean-metasources: + -rm -f ckeyreferencewidget.moc.cpp cbookkeychooser.moc.cpp cscrollbutton.moc.cpp crefselectdialog.moc.cpp cscrollerwidgetset.moc.cpp ckeychooserwidget.moc.cpp cbiblekeychooser.moc.cpp clexiconkeychooser.moc.cpp cbooktreechooser.moc.cpp ckeychooser.moc.cpp + +#>+ 2 +KDE_DIST=cbiblekeychooser.h crefselectdialog.h ckeychooser.h cscrollbutton.h Makefile.in clexiconkeychooser.h cscrollerwidgetset.h cbooktreechooser.h cbookkeychooser.h ckeychooserwidget.h Makefile.am ckeyreferencewidget.h crefselectdialog.cpp + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/keychooser/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/frontend/keychooser/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/frontend/keychooser/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 11 +libkeychooser_a.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/cbiblekeychooser.cpp $(srcdir)/clexiconkeychooser.cpp $(srcdir)/ckeychooser.cpp $(srcdir)/cscrollbutton.cpp $(srcdir)/ckeychooserwidget.cpp $(srcdir)/ckeyreferencewidget.cpp $(srcdir)/cscrollerwidgetset.cpp $(srcdir)/cbookkeychooser.cpp $(srcdir)/cbooktreechooser.cpp cbookkeychooser.moc.cpp ckeyreferencewidget.moc.cpp cscrollerwidgetset.moc.cpp cbooktreechooser.moc.cpp ckeychooser.moc.cpp cscrollbutton.moc.cpp crefselectdialog.moc.cpp ckeychooserwidget.moc.cpp cbiblekeychooser.moc.cpp clexiconkeychooser.moc.cpp + @echo 'creating libkeychooser_a.all_cpp.cpp ...'; \ + rm -f libkeychooser_a.all_cpp.files libkeychooser_a.all_cpp.final; \ + echo "#define KDE_USE_FINAL 1" >> libkeychooser_a.all_cpp.final; \ + for file in cbiblekeychooser.cpp clexiconkeychooser.cpp ckeychooser.cpp cscrollbutton.cpp ckeychooserwidget.cpp ckeyreferencewidget.cpp cscrollerwidgetset.cpp cbookkeychooser.cpp cbooktreechooser.cpp cbookkeychooser.moc.cpp ckeyreferencewidget.moc.cpp cscrollerwidgetset.moc.cpp cbooktreechooser.moc.cpp ckeychooser.moc.cpp cscrollbutton.moc.cpp crefselectdialog.moc.cpp ckeychooserwidget.moc.cpp cbiblekeychooser.moc.cpp clexiconkeychooser.moc.cpp ; do \ + echo "#include \"$$file\"" >> libkeychooser_a.all_cpp.files; \ + test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libkeychooser_a.all_cpp.final; \ + done; \ + cat libkeychooser_a.all_cpp.final libkeychooser_a.all_cpp.files > libkeychooser_a.all_cpp.cpp; \ + rm -f libkeychooser_a.all_cpp.final libkeychooser_a.all_cpp.files + +#>+ 3 +clean-final: + -rm -f libkeychooser_a.all_cpp.cpp + +#>+ 3 +final: + $(MAKE) libkeychooser_a_OBJECTS="$(libkeychooser_a_final_OBJECTS)" all-am + +#>+ 3 +final-install: + $(MAKE) libkeychooser_a_OBJECTS="$(libkeychooser_a_final_OBJECTS)" install-am + +#>+ 3 +no-final: + $(MAKE) libkeychooser_a_OBJECTS="$(libkeychooser_a_nofinal_OBJECTS)" all-am + +#>+ 3 +no-final-install: + $(MAKE) libkeychooser_a_OBJECTS="$(libkeychooser_a_nofinal_OBJECTS)" install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/frontend/keychooser/cbiblekeychooser.cpp b/bibletime/frontend/keychooser/cbiblekeychooser.cpp new file mode 100644 index 0000000..88a2a51 --- /dev/null +++ b/bibletime/frontend/keychooser/cbiblekeychooser.cpp @@ -0,0 +1,113 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "cbiblekeychooser.h" +#include "ckeyreferencewidget.h" +#include "cscrollbutton.h" + +#include "backend/cswordversekey.h" +#include "backend/cswordbiblemoduleinfo.h" +#include "backend/cswordmoduleinfo.h" + +#include "util/cresmgr.h" + +//Qt includes +#include +#include +#include + +//KDE includes +#include + +CBibleKeyChooser::CBibleKeyChooser(ListCSwordModuleInfo modules, CSwordKey *key, QWidget *parent, const char *name ) +: CKeyChooser(modules, key, parent, name), +m_key(dynamic_cast(key)) { + w_ref = 0; + setModules(modules, false); + if (!m_modules.count()) { + qWarning("CBibleKeyChooser: module is not a Bible or commentary!"); + m_key = 0; + return; + } + QHBoxLayout* layout = new QHBoxLayout(this); + layout->setDirection( QBoxLayout::LeftToRight ); + + w_ref = new CKeyReferenceWidget(dynamic_cast(m_modules.first()), m_key, this); + layout->addWidget(w_ref); + + connect(w_ref,SIGNAL(changed(CSwordVerseKey *)),SLOT(refChanged(CSwordVerseKey *))); + + setKey(m_key); //set the key without changing it, setKey(key()) would change it +} + +CSwordKey* const CBibleKeyChooser::key() { + return m_key; +} + +void CBibleKeyChooser::setKey(CSwordKey* key) { + Q_ASSERT(dynamic_cast(key)); + if (dynamic_cast(key) == 0) { + return; + } + + m_key = dynamic_cast(key); + emit (beforeKeyChange(m_key->key())); //required to make direct setKey calls work from the outside + + w_ref->setKey(m_key); + + emit keyChanged(m_key); +} + +void CBibleKeyChooser::refChanged(CSwordVerseKey* key) { + Q_ASSERT(m_key); + Q_ASSERT(key); + + if (!isUpdatesEnabled()) + return; + + setUpdatesEnabled(false); + if (m_key) + emit beforeKeyChange(m_key->key()); + + m_key = key; + emit keyChanged(m_key); + + setUpdatesEnabled(true); +} + +/** Sets te module and refreshes the combos */ +void CBibleKeyChooser::setModules(const ListCSwordModuleInfo& modules, const bool refresh) { + m_modules.clear(); + + // for (modules.first(); modules.current(); modules.next()) { + ListCSwordModuleInfo::const_iterator end_it = modules.end(); + for (ListCSwordModuleInfo::const_iterator it(modules.begin()); it != end_it; ++it) { + if ((*it)->type() == CSwordModuleInfo::Bible || (*it)->type() == CSwordModuleInfo::Commentary) { + if (CSwordBibleModuleInfo* bible = dynamic_cast(*it)) { + m_modules.append(bible); + } + } + } + + // First time this is called we havnt set up w_ref. + if (w_ref) w_ref->setModule(dynamic_cast(m_modules.first())); + if (refresh) refreshContent(); +} + +void CBibleKeyChooser::refreshContent() { + setKey (m_key); +} + + +/** No descriptions */ +void CBibleKeyChooser::updateKey(CSwordKey* /*key*/) {} +void CBibleKeyChooser::adjustFont() {} diff --git a/bibletime/frontend/keychooser/cbiblekeychooser.h b/bibletime/frontend/keychooser/cbiblekeychooser.h new file mode 100644 index 0000000..88e987e --- /dev/null +++ b/bibletime/frontend/keychooser/cbiblekeychooser.h @@ -0,0 +1,73 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CBIBLEKEYCHOOSER_H +#define CBIBLEKEYCHOOSER_H + +#include +#include "ckeychooser.h" + +#include "backend/cswordbiblemoduleinfo.h" + +class CKeyReferenceWidget; +class CSwordVerseKey; +class CSwordBibleModuleInfo; + +/** This class implements the KeyChooser for bibles and commentaries + * + * it inhertits @ref CKeyChooser + * + * it uses a CKeyReferenceWidget 's to represent the bible keys + * + * @author The BibleTime team + */ + +class CBibleKeyChooser : public CKeyChooser { + Q_OBJECT + +public: + /** + * the constructor + * you should not need to use this, use @ref CKeyChooser::createInstance instead + */ + CBibleKeyChooser(ListCSwordModuleInfo modules, CSwordKey *key=0, QWidget *parent=0, const char *name=0); + +public slots: + /** + * see @ref CKeyChooser::getKey + */ + CSwordKey* const key(); + /** + * see @ref CKeyChooser::setKey + */ + virtual void setKey(CSwordKey *key); + /** + * Sets the module + */ + virtual void setModules(const ListCSwordModuleInfo& modules, const bool refresh = true); + /** + * used to react to changes + * @param index not used + */ + void refChanged(CSwordVerseKey *key); + + void updateKey(CSwordKey* key); + void adjustFont(); + void refreshContent(); + + +private: + CKeyReferenceWidget* w_ref; + QPtrList m_modules; + CSwordVerseKey *m_key; +}; + +#endif diff --git a/bibletime/frontend/keychooser/cbookkeychooser.cpp b/bibletime/frontend/keychooser/cbookkeychooser.cpp new file mode 100644 index 0000000..0741bad --- /dev/null +++ b/bibletime/frontend/keychooser/cbookkeychooser.cpp @@ -0,0 +1,288 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2007 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cbookkeychooser.h" +#include "backend/cswordtreekey.h" +#include "backend/cswordbookmoduleinfo.h" +#include "frontend/cbtconfig.h" + +//Qt includes +#include +#include + +QMap boxes; + +CBookKeyChooser::CBookKeyChooser(ListCSwordModuleInfo modules, CSwordKey *key, QWidget *parent, const char *name) +: CKeyChooser(modules, key, parent,name), m_layout(0) { + + setModules(modules, false); + m_key = dynamic_cast(key); + if (!m_modules.count()) { + m_key = 0; + } + + setModules(modules, true); + setKey(key); + + adjustFont(); +} + +CBookKeyChooser::~CBookKeyChooser() {} + +void CBookKeyChooser::setKey(CSwordKey* newKey) { + setKey(newKey, true); +} + +/** Sets a new key to this keychooser */ +void CBookKeyChooser::setKey(CSwordKey* newKey, const bool emitSignal) { + //qDebug("CBookKeyChooser::setKey"); + if (m_key != newKey) { + m_key = dynamic_cast(newKey); + } + + /*const */QString oldKey = m_key->key(); + + if (oldKey.isEmpty()) { //don't set keys equal to "/", always use a key which may have content + m_key->firstChild(); + oldKey = m_key->key(); + } + const int oldOffset = m_key->getOffset(); + + QStringList siblings; + if (m_key && !oldKey.isEmpty()) { + siblings = QStringList::split("/", oldKey, false); + } + + int depth = 0; + int index = 0; + + m_key->root(); + + while( m_key->firstChild() && (depth <= int(siblings.count())) ) { + const QString key = m_key->key(); + index = (depth == 0) ? -1 : 0; + const QString sibling = siblings[depth]; + + if (!sibling.isEmpty()) { //found it + bool found = false; + + do { + ++index; + //qDebug("set 'found'"); + //found = (QString::fromLocal8Bit(m_key->getLocalName()) == sibling); + found = (m_key->getLocalNameUnicode() == sibling); + } + while (!found && m_key->nextSibling()); + + if (!found) { + m_key->key( key ); + } + } + + setupCombo(key, depth, index); + depth++; + } + + //clear the combos which were not filled + for (; depth < m_modules.first()->depth(); ++depth) { + CKeyChooserWidget* chooser = m_chooserWidgets.at(depth); + if (chooser) { + chooser->reset(0,0,false); + } + } + + if (oldKey.isEmpty()) { + m_key->root(); + } + else { + //m_key->key(oldKey); + m_key->setOffset(oldOffset); + } + + if (emitSignal) { + emit keyChanged(m_key); + } +} + +/** Returns the key of this kechooser. */ +CSwordKey* const CBookKeyChooser::key() { + return m_key; +} + +/** Sets another module to this keychooser */ +void CBookKeyChooser::setModules(const ListCSwordModuleInfo& modules, const bool refresh) { + m_modules.clear(); + + // for (modules.first(); modules.current(); modules.next()) { + ListCSwordModuleInfo::const_iterator end_it = modules.end(); + for (ListCSwordModuleInfo::const_iterator it(modules.begin()); it != end_it; ++it) { + if ( (*it)->type() == CSwordModuleInfo::GenericBook ) { + if (CSwordBookModuleInfo* book = dynamic_cast(*it)) { + m_modules.append(book); + } + } + } + + //refresh the number of combos + if (refresh && m_modules.count() && m_key) { + if (!m_layout) { + m_layout = new QHBoxLayout(this); + } + + //delete old widgets + m_chooserWidgets.setAutoDelete(true); + m_chooserWidgets.clear(); + m_chooserWidgets.setAutoDelete(false); + + for (int i = 0; i < m_modules.first()->depth(); ++i) { + // Create an empty keychooser, don't handle next/prev signals + CKeyChooserWidget* w = new CKeyChooserWidget(0, false, this); + m_chooserWidgets.append( w ); + + //don't allow a too high width, try to keep as narrow as possible + //to aid users with smaller screen resolutions + int totalWidth = 200; //only 1 level + if (m_modules.first()->depth() > 1) { + if (m_modules.first()->depth() > 3) + totalWidth = 400; //4+ levels + else + totalWidth = 300; //2-3 levels + } + + int maxWidth = (int) ((float) totalWidth / (float) m_modules.first()->depth()); + + w->comboBox()->setMaximumWidth(maxWidth); + w->comboBox()->setCurrentItem(0); + + connect(w, SIGNAL(changed(int)), SLOT(keyChooserChanged(int))); + connect(w, SIGNAL(focusOut(int)), SLOT(keyChooserChanged(int))); + + m_layout->addWidget(w); + boxes[w] = i; + + w->show(); + } + + //set the tab order of the key chooser widgets + + CKeyChooserWidget* chooser = 0; + CKeyChooserWidget* chooser_prev = 0; + const int count = m_chooserWidgets.count(); + for (int i = 0; i < count; ++i) { + chooser = m_chooserWidgets.at(i); + Q_ASSERT(chooser); + + if (chooser && chooser_prev) { + QWidget::setTabOrder(chooser_prev, chooser); + } + + chooser_prev = chooser; + } + QWidget::setTabOrder(chooser, 0); + + updateKey(m_key); + adjustFont(); // only when refresh is set. + } +} + +/** No descriptions */ +void CBookKeyChooser::adjustFont() { + + //Make sure the entries are displayed correctly. + for ( CKeyChooserWidget* idx = m_chooserWidgets.first(); idx; idx = m_chooserWidgets.next() ) { + idx->comboBox()->setFont( CBTConfig::get + ( m_modules.first()->language() ).second ); + } +} + +/** Refreshes the content. */ +void CBookKeyChooser::refreshContent() { + if (m_key) { + updateKey( m_key ); //refresh with current key + } +} + +void CBookKeyChooser::setupCombo(const QString key, const int depth, const int currentItem) { + CKeyChooserWidget* chooserWidget = m_chooserWidgets.at(depth); + + const unsigned long oldOffset = m_key->getOffset(); + m_key->key(key); + + if ((depth == 0) && chooserWidget && chooserWidget->comboBox()->count()) { //has already items + //set now the right item + if (CKeyChooserWidget* chooserWidget = m_chooserWidgets.at(depth)) { + chooserWidget->setItem( chooserWidget->comboBox()->text(currentItem) ); + } + + m_key->setOffset(oldOffset); + return; + } + + + //insert an empty item at the top + QStringList items; + if (depth > 0) { + items << QString::null; + } + + do { + //items << QString::fromLocal8Bit(m_key->getLocalName()); + items << m_key->getLocalNameUnicode(); + } + while (m_key->nextSibling()); + + if (chooserWidget) { + chooserWidget->reset(items,currentItem,false); + } + + //restore old key + // m_key->key(oldKey); + m_key->setOffset( oldOffset ); +} + +/** A keychooser changed. Update and emit a signal if necessary. */ +void CBookKeyChooser::keyChooserChanged(int /*newIndex*/) { + const int activeID = boxes[const_cast(sender())]; //no so good code! + + QStringList items; + CKeyChooserWidget* chooser; + const int count = m_chooserWidgets.count(); + + for (int i = 0; i < count; ++i) { + chooser = m_chooserWidgets.at(i); + const QString currentText = + (chooser && chooser->comboBox()) + ? chooser->comboBox()->currentText() + : QString::null; + + if (currentText.isEmpty() || i > activeID) { + break; + } + + items << currentText; + } + + QString newKey("/"); + newKey.append(items.join("/")); + if (newKey.length() > 1) { + newKey.remove(newKey.length(),1); //remove the traling slash + } + + // qWarning("key changed: setting to %s", newKey.latin1()); + m_key->key(newKey); + setKey(m_key); +} + +/** Updates the keychoosers for the given key but emit no signal. */ +void CBookKeyChooser::updateKey(CSwordKey* key) { + setKey(key, false); +} + diff --git a/bibletime/frontend/keychooser/cbookkeychooser.h b/bibletime/frontend/keychooser/cbookkeychooser.h new file mode 100644 index 0000000..586996e --- /dev/null +++ b/bibletime/frontend/keychooser/cbookkeychooser.h @@ -0,0 +1,99 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CBOOKKEYCHOOSER_H +#define CBOOKKEYCHOOSER_H + +//BibleTime includes +#include "ckeychooser.h" +#include "ckeychooserwidget.h" + +//Sword includes + +//Qt includes +#include +#include +#include +#include +#include + +class CSwordKey; +class CSwordBookModuleInfo; +class CSwordTreeKey; + +namespace sword { + class TreeKeyIdx; +} + +class QHBoxLayout; + +/** The keychooser implementation for books. + * @author The BibleTime team + */ +class CBookKeyChooser : public CKeyChooser { + Q_OBJECT +public: + CBookKeyChooser(ListCSwordModuleInfo modules, CSwordKey *key=0, QWidget *parent=0, const char *name=0); + ~CBookKeyChooser(); + /** + * Refreshes the content. + */ + virtual void refreshContent(); + /** + * Sets another module to this keychooser + */ + virtual void setModules(const ListCSwordModuleInfo& modules, const bool refresh = false); + /** + * Returns the key of this kechooser. + */ + virtual CSwordKey* const key(); + /** + * Sets a new key to this keychooser + */ + virtual void setKey(CSwordKey*); + /** + * Sets a new key to this keychooser + */ + void setKey(CSwordKey*, const bool emitSignal); + + +public slots: // Public slots + /** + * Updates the keychoosers for the given key but emit no signal. + */ + void updateKey(CSwordKey*); + +protected: // Protected methods + /** + * Fills the combo given by depth with the items from the key having depth "depth". + * The parent sibling is given by key. + */ + void setupCombo(const QString key, const int depth, const int currentItem); + /** No descriptions */ + virtual void adjustFont(); + +protected slots: + /** + * A keychooser changed. Update and emit a signal if necessary. + */ + void keyChooserChanged(int); + //is called when a keychooser widget wants to jump to the next/previous key + // void nextEntry(); + // void previousEntry(); + +private: + QPtrList m_chooserWidgets; + QPtrList m_modules; + CSwordTreeKey *m_key; + QHBoxLayout* m_layout; +}; + +#endif diff --git a/bibletime/frontend/keychooser/cbooktreechooser.cpp b/bibletime/frontend/keychooser/cbooktreechooser.cpp new file mode 100644 index 0000000..33e95fa --- /dev/null +++ b/bibletime/frontend/keychooser/cbooktreechooser.cpp @@ -0,0 +1,321 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2007 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cbooktreechooser.h" +#include "backend/cswordtreekey.h" +#include "backend/cswordbookmoduleinfo.h" +#include "frontend/cbtconfig.h" + +//Qt includes +#include +#include +#include +#include + +//KDE includes +#include + +//////////// + +CBookTreeChooser::TreeItem::TreeItem(QListViewItem* parent, QListViewItem* after, CSwordTreeKey* key, const QString keyName) +: KListViewItem(parent, after), +m_key(key), +m_keyName(keyName) { + //qDebug("first CBookTreeChooser::TreeItem ctor"); + const unsigned long offset = m_key->getOffset(); + + m_key->key(m_keyName); + //setText(0, QString::fromLocal8Bit(m_key->getLocalName()) ); + setText(0, m_key->getLocalNameUnicode() ); + + m_key->setOffset( offset ); +}; + +CBookTreeChooser::TreeItem::TreeItem(QListViewItem* parent,CSwordTreeKey* key, const QString keyName) +: KListViewItem(parent), +m_key(key), +m_keyName(keyName) { + //qDebug("second CBookTreeChooser::TreeItem ctor"); + const unsigned int offset = m_key->getOffset(); + + m_key->key(m_keyName); + //setText(0, QString::fromLocal8Bit(m_key->getLocalName()) ); + setText(0, m_key->getLocalNameUnicode() ); + + m_key->setOffset( offset ); +}; + +CBookTreeChooser::TreeItem::TreeItem(QListView* view, QListViewItem* after,CSwordTreeKey* key, const QString keyName) +: KListViewItem(view,after), +m_key(key), +m_keyName(keyName) { + //qDebug("third CBookTreeChooser::TreeItem ctor"); + const unsigned int offset = m_key->getOffset(); + + m_key->key(m_keyName); + //setText(0, QString::fromLocal8Bit(m_key->getLocalName()) ); + setText(0, m_key->getLocalNameUnicode() ); + + m_key->setOffset( offset ); +}; + +const QString& CBookTreeChooser::TreeItem::key() const { + return m_keyName; +}; + +/** Initializes this item with the correct caption. */ +void CBookTreeChooser::TreeItem::setup() { + const unsigned int offset = m_key->getOffset(); + + m_key->key(m_keyName); + setExpandable(m_key->hasChildren()); + + m_key->setOffset( offset ); + + KListViewItem::setup(); +} + +void CBookTreeChooser::TreeItem::createChilds() { + //make sure that we don't change the status of the key! + + const unsigned long offset = m_key->getOffset(); + + m_key->key(m_keyName); + + if (m_key->hasChildren()) { + m_key->firstChild(); //go to the first child + + QListViewItem* oldItem = 0; + + do { + if (oldItem) { + oldItem = new TreeItem(this, oldItem, m_key, m_key->key()); + } + else { + oldItem = new TreeItem(this, m_key, m_key->key()); + } + + // oldItem->setExpandable( m_key->hasChildren() ); + } + while (m_key->nextSibling()); + } + + m_key->setOffset( offset ); //restore the old state +} + +void CBookTreeChooser::TreeItem::setOpen(bool o) { + //setup the tree under this item + if ((!isOpen() && o) && childCount() == 0) { + listView()->viewport()->setCursor(WaitCursor); + createChilds(); + listView()->viewport()->unsetCursor(); + } + + KListViewItem::setOpen(o); +} + +////////////////////////////////// + +CBookTreeChooser::CBookTreeChooser(ListCSwordModuleInfo modules, CSwordKey *key, QWidget *parent, const char *name) +: CKeyChooser(modules, key, parent,name), +m_key( dynamic_cast(key) ) { + setModules(modules, false); + + if (!modules.count()) { + m_modules.clear(); + m_key = 0; + } + + //now setup the keychooser widgets + QHBoxLayout* layout = new QHBoxLayout(this); + + m_treeView = new KListView(this); + layout->addWidget(m_treeView); + m_treeView->addColumn("Tree"); + m_treeView->header()->hide(); + m_treeView->setSorting(-1); + m_treeView->setRootIsDecorated(true); + m_treeView->setFullWidth(true); + connect(m_treeView, SIGNAL(executed(QListViewItem*)), SLOT(itemActivated(QListViewItem*))); + + setKey(key); + adjustFont(); +} + +CBookTreeChooser::~CBookTreeChooser() {} + +/** Sets a new key to this keychooser */ +void CBookTreeChooser::setKey(CSwordKey* key/*newKey*/) { + setKey(key, false); +} + +/** Sets a new key to this keychooser */ +void CBookTreeChooser::setKey(CSwordKey* newKey, const bool emitSignal) { + if (m_key != newKey ) { + m_key = dynamic_cast(newKey); + } + + const QString key = m_key->key(); + + QStringList siblings; + if (m_key && !key.isEmpty()) { + siblings = QStringList::split("/",key,false); + } + + //find the right listview item + const int count = siblings.count(); + int index = 0; + QString currentSibling = siblings[index]; + + QListViewItem* child = m_treeView->firstChild(); + while( child && index < count ) { + if (child->text(0) == currentSibling) { //found a parent of our item + //found right entry? + TreeItem* i = dynamic_cast(child); + if (!i || i->key() == key) { + break; + } + i->setOpen(true); //automatically creates childs + child = i->firstChild(); + currentSibling = siblings[++index]; + } + else { + child = child->nextSibling(); + } + } + + m_treeView->setCurrentItem( child ); + m_treeView->setSelected( child, true ); + m_treeView->ensureItemVisible(child); + + if (emitSignal) { + emit keyChanged(m_key); + } +} + +/** Returns the key of this kechooser. */ +CSwordKey* const CBookTreeChooser::key() { + return m_key; +} + +/** Sets another module to this keychooser */ +void CBookTreeChooser::setModules(const ListCSwordModuleInfo& modules, const bool refresh) { + m_modules.clear(); + + // for (modules.first(); modules.current(); modules.next()) { + ListCSwordModuleInfo::const_iterator end_it = modules.end(); + for (ListCSwordModuleInfo::const_iterator it(modules.begin()); it != end_it; ++it) { + if (CSwordBookModuleInfo* book = dynamic_cast(*it)) { + m_modules.append(book); + } + } + + if (refresh && m_modules.count() && m_key) { + const uint offset = m_key->getOffset(); + setupTree(); + m_key->setOffset( offset ); + + /* m_key->root(); + m_key->firstChild(); + setKey(m_key, true);*/ + + // m_treeView->clear(); + // + // const QString oldKey = m_key->key(); + // m_key->root(); + // m_key->firstChild(); + // setupTree(0,0,m_key); + // + // m_key->key(oldKey); + // + // updateKey(m_key); + adjustFont(); //only when refresh is set. + } +} + +/** No descriptions */ +void CBookTreeChooser::adjustFont() { + //Make sure the entries are displayed correctly. + // if ( m_modules.first()->isUnicode() ){ + m_treeView->setFont( CBTConfig::get + (m_modules.first()->language()).second ); + // qWarning("Unicode Book detected"); + // } + // else{ + // m_treeView->setFont( CBTConfig::get(CBTConfig::standard) ); + // qWarning("Standard Book detected"); + // } +} + + +/** Refreshes the content. */ +void CBookTreeChooser::refreshContent() { + if (m_key) { + updateKey( m_key ); //refresh with current key + } +} + +/** No descriptions */ +void CBookTreeChooser::itemActivated( QListViewItem* item ) { + TreeItem* i = dynamic_cast(item); + if (!i) { + return; + } + + m_key->key( i->key() ); + + if (i->childCount() > 0 || i->isExpandable()) { + i->setOpen(true); + } + + emit keyChanged(m_key); +} + +/** No descriptions */ +void CBookTreeChooser::updateKey( CSwordKey* key ) { + setKey(key, false); +} + +/** Reimplementationm to handle tree creation on show. */ +void CBookTreeChooser::show() { + CKeyChooser::show(); + + if (!m_treeView->childCount()) { + KApplication::setOverrideCursor(WaitCursor); + setupTree(); //create the first level of the tree structure + m_treeView->resize(m_treeView->sizeHint()); + KApplication::restoreOverrideCursor(); + } +} + +/** Creates the first level of the tree structure. */ +void CBookTreeChooser::setupTree() { + m_treeView->clear(); + + const unsigned long offset = m_key->getOffset(); + m_key->root(); + + if (m_key->hasChildren()) { + QListViewItem* item = 0; + + m_key->firstChild(); + do { + //the TreeItem constructor doesn't change the state of the key + item = new TreeItem(m_treeView, item, m_key, m_key->key()); + } + while (m_key->nextSibling()); + } + + /* m_key->root(); + m_key->firstChild();*/ + m_key->setOffset( offset ); + setKey(m_key, false); //the module may have changed +} diff --git a/bibletime/frontend/keychooser/cbooktreechooser.h b/bibletime/frontend/keychooser/cbooktreechooser.h new file mode 100644 index 0000000..43b03d5 --- /dev/null +++ b/bibletime/frontend/keychooser/cbooktreechooser.h @@ -0,0 +1,112 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CBOOKTREECHOOSER_H +#define CBOOKTREECHOOSER_H + + +/** The treechooser implementation for books. + * @author The BibleTime team + */ +//BibleTime includes +#include "ckeychooser.h" +#include "ckeychooserwidget.h" + +//Sword includes + +//Qt includes +#include +#include +#include +#include +#include + +//KDE includes +#include + +class CSwordKey; +class CSwordBookModuleInfo; +class CSwordTreeKey; + +namespace sword { + class TreeKeyIdx; +} + +/** The keychooser implementeation for books. + * @author The BibleTime team + */ +class CBookTreeChooser : public CKeyChooser { + Q_OBJECT +public: + CBookTreeChooser(ListCSwordModuleInfo modules, CSwordKey *key=0, QWidget *parent=0, const char *name=0); + ~CBookTreeChooser(); + /** + * Refreshes the content. + */ + virtual void refreshContent(); + /** + * Sets another module to this keychooser + */ + virtual void setModules(const ListCSwordModuleInfo& modules, const bool refresh = true); + /** + * Returns the key of this kechooser. + */ + virtual CSwordKey* const key(); + /** + * Sets a new key to this keychooser + */ + virtual void setKey(CSwordKey*); + void setKey(CSwordKey*, const bool emitSinal); + +public slots: // Public slots + virtual void updateKey( CSwordKey* ); + /** + * Reimplementationm to handle tree creation on show. + */ + virtual void show(); + + +protected: // Protected methods + /** + * Creates the first level of the tree structure. + */ + void setupTree(); + virtual void adjustFont(); + +protected slots: // Protected slots + void itemActivated( QListViewItem* item ); + +private: +class TreeItem : public KListViewItem { +public: + TreeItem(QListViewItem* parent, QListViewItem* after, CSwordTreeKey* key, const QString keyName); + TreeItem(QListViewItem* parent, CSwordTreeKey* key, const QString keyName); + TreeItem(QListView* view,QListViewItem* after, CSwordTreeKey* key, const QString keyName); + const QString& key() const; + void createChilds(); + virtual void setOpen(bool); + +protected: + /** + * Initializes this item with the correct caption. + */ + virtual void setup(); +private: + CSwordTreeKey* m_key; + QString m_keyName; + }; + + QPtrList m_modules; + CSwordTreeKey* m_key; + KListView* m_treeView; +}; + +#endif diff --git a/bibletime/frontend/keychooser/ckeychooser.cpp b/bibletime/frontend/keychooser/ckeychooser.cpp new file mode 100644 index 0000000..4dcd878 --- /dev/null +++ b/bibletime/frontend/keychooser/ckeychooser.cpp @@ -0,0 +1,149 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "ckeychooser.h" +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordbiblemoduleinfo.h" +#include "backend/cswordcommentarymoduleinfo.h" +#include "backend/cswordlexiconmoduleinfo.h" + +#include "clexiconkeychooser.h" +#include "cbiblekeychooser.h" +#include "cbookkeychooser.h" + +CKeyChooser::CKeyChooser(ListCSwordModuleInfo, CSwordKey *, QWidget *parent, const char *name ) +: QWidget(parent, name), +m_inHistoryFunction(false) {} + +CKeyChooser::~CKeyChooser() {} + +CKeyChooser* CKeyChooser::createInstance(ListCSwordModuleInfo modules, CSwordKey *key, QWidget *parent) { + if (!modules.count()) { + return 0; + } + + CKeyChooser* ck = 0; + switch ( modules.first()->type() ) { + case CSwordModuleInfo::Commentary: //Bibles and commentaries uise the same key chooser + case CSwordModuleInfo::Bible: + ck = new CBibleKeyChooser(modules,key,parent); + break; + case CSwordModuleInfo::Lexicon: + ck = new CLexiconKeyChooser(modules,key,parent); + break; + case CSwordModuleInfo::GenericBook: + ck = new CBookKeyChooser(modules,key,parent); + break; + default: + return 0; + } + return ck; +} + +void CKeyChooser::backInHistory() { + backInHistory(1); +} + +void CKeyChooser::backInHistory(int count) { + m_inHistoryFunction = true; + // qWarning("go back %d items in history", count); + + Q_ASSERT(m_prevKeyHistoryList.size()); + + QStringList::iterator it = m_prevKeyHistoryList.begin(); + + //pop_front count items, the top item is then the new current key + int index = count; + while ((index > 0) && (it != m_prevKeyHistoryList.end())) { + // qWarning("pop_front"); + + m_nextKeyHistoryList.prepend(*it); + it = m_prevKeyHistoryList.remove(it); + --index; + } + + //the first item is now the item which should be set as key + if (it != m_nextKeyHistoryList.end() && key()) { + CSwordKey* k = key(); + k->key(*it); + setKey(k); + } + + m_inHistoryFunction = false; +} + +void CKeyChooser::forwardInHistory() { + forwardInHistory(1); +} + +void CKeyChooser::forwardInHistory(int count) { + m_inHistoryFunction = true; + // qWarning("go forward %d items in history", count); + + Q_ASSERT(m_nextKeyHistoryList.size()); + + QStringList::iterator it = m_nextKeyHistoryList.begin(); + //pop_front count-1 items, the top item is then the new current key + int index = count; + while (index > 0 && it != m_nextKeyHistoryList.end()) { + // qWarning("pop_front"); + + m_prevKeyHistoryList.prepend(*it); + it = m_nextKeyHistoryList.remove(it); + --index; + } + + //the first item of the back list is now the new key + it = m_prevKeyHistoryList.begin(); + if (it != m_prevKeyHistoryList.end() && key()) { + CSwordKey* k = key(); + k->key(*it); + setKey(k); + } + + m_inHistoryFunction = false; +} + +void CKeyChooser::addToHistory(CSwordKey* k) { + // qWarning("addToHistory"); + + Q_ASSERT(!m_inHistoryFunction); + if (k && !m_inHistoryFunction) { + Q_ASSERT(k->key() == key()->key()); + m_prevKeyHistoryList.prepend(k->key()); + } + + emit historyChanged(); +} + +const QStringList CKeyChooser::getPreviousKeys() const { + QStringList ret = m_prevKeyHistoryList; + if (ret.size() >= 1) { + ret.pop_front(); //the first item always is equal to the current key + } + + return ret; +} + +const QStringList CKeyChooser::getNextKeys() const { + return m_nextKeyHistoryList; +} + + +/*! + \fn CKeyChooser::polish() + */ +void CKeyChooser::polish() { + QWidget::polish(); + + //connect the history calls just before we show, we want an empty history + connect(this, SIGNAL(keyChanged(CSwordKey*)), SLOT(addToHistory(CSwordKey*))); +} diff --git a/bibletime/frontend/keychooser/ckeychooser.h b/bibletime/frontend/keychooser/ckeychooser.h new file mode 100644 index 0000000..c5ad246 --- /dev/null +++ b/bibletime/frontend/keychooser/ckeychooser.h @@ -0,0 +1,114 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CKEYCHOOSER_H +#define CKEYCHOOSER_H + +#include + +#include "backend/cswordmoduleinfo.h" + +class CSwordModuleInfo; +class CSwordKey; + +/** + * The base class for the KeyChooser. + * Do not use directly, create a KeyChooser with + * @ref #createInstance , this will create the proper one + * of the classes that inherit from @ref CKeyChooser + * + * @author The BibleTime team + */ + +class CKeyChooser : public QWidget { + Q_OBJECT + +public: + /** + * Creates a proper Instance, either + * + @ref CLexiconKeyChooser or + * @ref CBibleKeyChooser + * @param info the @ref CModuleInfo to be represented by the KeyChooser + * @param key if not NULL, the @ref CKey the KeyChooser should be set to + * @param parent the parent of the widget to create + */ + static CKeyChooser* createInstance(ListCSwordModuleInfo modules, CSwordKey *key, QWidget *parent); + + const QStringList getPreviousKeys() const; + const QStringList getNextKeys() const; + +public slots: + /** + * sets the @ref CKey + * @param key the key which the widget should be set to + */ + virtual void setKey(CSwordKey* key) = 0; + /** + * sets the @ref CKey + * @param key the key which the widget should be set to + */ + virtual void updateKey(CSwordKey* key) = 0; + /** + * gets the current @ref CKey + * + * @return the current @ref CKey + */ + virtual CSwordKey* const key() = 0; + /** + * Sets the module of this keychooser and refreshes the comboboxes + */ + virtual void setModules( const ListCSwordModuleInfo& modules, const bool refresh = true ) = 0; + /** + * Freshes the content of the different key chooser parts. + */ + virtual void refreshContent() = 0; + + void addToHistory(CSwordKey*); + + void backInHistory(); + void backInHistory(int); + + void forwardInHistory(); + void forwardInHistory(int); + +signals: + /** + * is emitted if the @ref CKey was changed by the user + */ + void keyChanged(CSwordKey* key); + /** + * Is emitted before the key is changed! + */ + void beforeKeyChange(const QString& key); + void historyChanged(); + +protected: + /** + * the constructor - DO NOT USE! -- use @ref #createInstance instead! + */ + CKeyChooser(ListCSwordModuleInfo info, CSwordKey *key=0, QWidget *parent=0, const char *name=0); + virtual ~CKeyChooser(); + /** + * Set the appropriate font do display the modules + */ + virtual void adjustFont() = 0; + +private: + QStringList m_prevKeyHistoryList; + QStringList m_nextKeyHistoryList; + int m_currentKeyHistoryPos; + bool m_inHistoryFunction; +protected: + virtual void polish(); +}; + +#endif diff --git a/bibletime/frontend/keychooser/ckeychooserwidget.cpp b/bibletime/frontend/keychooser/ckeychooserwidget.cpp new file mode 100644 index 0000000..64de499 --- /dev/null +++ b/bibletime/frontend/keychooser/ckeychooserwidget.cpp @@ -0,0 +1,303 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + +//BibleTime includes +#include "ckeychooserwidget.h" + +//BibleTime frontend includes +#include "frontend/cbtconfig.h" + + +//Qt includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +CKCComboBox::CKCComboBox(bool rw,QWidget* parent,const char* name) +: QComboBox(rw,parent,name) { + setFocusPolicy(QWidget::WheelFocus); + if (lineEdit()) { + installEventFilter( lineEdit() ); + } +} + +/** Reimplementation. */ +bool CKCComboBox::eventFilter( QObject *o, QEvent *e ) { + if (e->type() == QEvent::FocusOut) { + QFocusEvent* f = static_cast(e); + + if (o == lineEdit() && f->reason() == QFocusEvent::Tab) { + int index = listBox()->index( listBox()->findItem(currentText()) ); + if (index == -1) { + index = 0;// return 0 if not found + } + setCurrentItem( index ); + emit focusOut( index ); + + return false; + } + else if (f->reason() == QFocusEvent::Popup) { + return false; + } + else if (f->reason() == QFocusEvent::ActiveWindow) { + emit activated(currentText()); + return false; + } + else if (f->reason() == QFocusEvent::Mouse) { + emit activated(currentText()); + return false; + } + else if (o == this) { + emit activated(currentText()); + return false; + } + } + + return QComboBox::eventFilter(o,e); +} + +/** Scrolls in the list if the wheel of the mouse was used. */ +void CKCComboBox::wheelEvent( QWheelEvent* e ) { + return QComboBox::wheelEvent(e); + + const signed int change = (int)((float)e->delta()/(float)120); + int current = currentItem(); + + if ((current+change >= 0) && (current+changeaccept(); + emit activated( currentItem() ); + } + else { + e->ignore(); + } +} + +//**********************************************************************************/ + +CKeyChooserWidget::CKeyChooserWidget(int count, const bool useNextPrevSignals, QWidget *parent, const char *name) : QWidget(parent,name) { + m_useNextPrevSignals = useNextPrevSignals; + + for (int index=1; index <= count; index++) { + m_list.append( QString::number(index) ); + } + init(); + reset(m_list,0,false); +}; + +CKeyChooserWidget::CKeyChooserWidget(QStringList *list, const bool useNextPrevSignals, QWidget *parent, const char *name ) : QWidget(parent,name) { + m_useNextPrevSignals = useNextPrevSignals; + + if (list) { + m_list = *list; //deep copy the items of list + } + else { + m_list.clear(); + } + + init(); + reset(m_list,0,false); +} + +void CKeyChooserWidget::reset(const int count, int index, bool do_emit) { + if (!isUpdatesEnabled()) + return; + + m_list.clear(); + for (int i=1; i <= count; i++) { //TODO: CHECK + m_list.append( QString::number(i) ); + } + + reset(&m_list,index,do_emit); +} + +void CKeyChooserWidget::reset(QStringList& list, int index, bool do_emit) { + if (!isUpdatesEnabled()) + return; + + m_list = list; + reset(&m_list,index,do_emit); +} + + +void CKeyChooserWidget::reset(QStringList *list, int index, bool do_emit) { + if (isResetting || !isUpdatesEnabled()) + return; + + // qWarning("starting insert"); + isResetting = true; + + oldKey = QString::null; + + // m_comboBox->setUpdatesEnabled(false); + //DON'T REMOVE THE HIDE: Otherwise QComboBox's sizeHint() function won't work properly + m_comboBox->hide(); + m_comboBox->clear(); + if (list) { + m_comboBox->insertStringList(*list); + } + + if (!list || (list && !list->count())) { //nothing in the combobox + setEnabled(false); + } + else if (!isEnabled()) { //was disabled + setEnabled(true); + } + + if (list->count()) { + m_comboBox->setCurrentItem(index); + } + if (do_emit) { + emit changed(m_comboBox->currentItem()); + } + + const QSize dummySize = m_comboBox->sizeHint(); //without this function call the combo box won't be properly sized! + //DON'T REMOVE OR MOVE THE show()! Otherwise QComboBox's sizeHint() function won't work properly! + m_comboBox->show(); + + // m_comboBox->setFont( m_comboBox->font() ); + // m_comboBox->setUpdatesEnabled(true); + + isResetting = false; + // qWarning("inserted"); +} + +/** Initializes this widget. We need this function because we have more than one constructor. */ +void CKeyChooserWidget::init() { + oldKey = QString::null; + + setFocusPolicy(QWidget::WheelFocus); + + m_comboBox = new CKCComboBox( true, this ); + m_comboBox->setAutoCompletion( true ); + m_comboBox->setInsertionPolicy(QComboBox::NoInsertion); + m_comboBox->setFocusPolicy(QWidget::WheelFocus); + + m_mainLayout = new QHBoxLayout( this ); + m_mainLayout->addWidget(m_comboBox,5); + + m_scroller = new CScrollerWidgetSet(this); + + m_mainLayout->addWidget( m_scroller ); + m_mainLayout->addSpacing(2); + + setTabOrder(m_comboBox, 0); + + connect(m_scroller, SIGNAL(scroller_pressed()), SLOT(lock())); + connect(m_scroller, SIGNAL(scroller_released()), SLOT(unlock())); + connect(m_scroller, SIGNAL(change(int)), SLOT(changeCombo(int)) ); + + connect(m_comboBox, SIGNAL(activated(int)), SLOT(slotComboChanged(int))); + // connect(m_comboBox, SIGNAL(activated(const QString&)), SLOT(slotReturnPressed(const QString&))); + connect(m_comboBox->lineEdit(), SIGNAL(returnPressed()), SLOT(slotReturnPressed())); + connect(m_comboBox, SIGNAL(focusOut(int)), SIGNAL(focusOut(int))); + + updatelock = false; + isResetting = false; +} + +/** Is called when the return key was presed in the combobox. */ +void CKeyChooserWidget::slotReturnPressed( /*const QString& text*/) { + Q_ASSERT(comboBox()->lineEdit()); + qWarning("return pressed"); + + QString text = comboBox()->lineEdit()->text(); + for (int index = 0; index < comboBox()->count(); ++index) { + if (comboBox()->text(index) == text) { +// emit changed(index); + emit focusOut(index); // a workaround because focusOut is not checked, the slot connected to changed to check + break; + } + } +} + +/** Is called when the current item of the combo box was changed. */ +void CKeyChooserWidget::slotComboChanged(int index) { + qWarning("CKeyChooserWidget::slotComboChanged(int index)"); + if (!isUpdatesEnabled()) { + return; + } + + setUpdatesEnabled(false); + + const QString key = comboBox()->text( index ); + if (oldKey.isNull() || (oldKey != key)) { + emit changed(index); + } + + oldKey = key; + + setUpdatesEnabled(true); +} + +/** Sets the tooltips for the given entries using the parameters as text. */ +void CKeyChooserWidget::setToolTips( const QString comboTip, const QString nextEntryTip, const QString scrollButtonTip, const QString previousEntryTip) { + QToolTip::add (comboBox(),comboTip); + m_scroller->setToolTips(nextEntryTip, scrollButtonTip, previousEntryTip); +} + +/** Sets the current item to the one with the given text */ +bool CKeyChooserWidget::setItem( const QString item ) { + bool ret = false; + const int count = comboBox()->count(); + for (int i = 0; i < count; ++i) { + if (comboBox()->text(i) == item) { + comboBox()->setCurrentItem(i); + ret = true; + break; + } + } + if (!ret) + comboBox()->setCurrentItem(-1); + return ret; +} + +/* Handlers for the various scroller widgetset. */ +void CKeyChooserWidget::lock() { + updatelock = true; + comboBox()->setEditable(false); + oldKey = comboBox()->currentText(); +} + +void CKeyChooserWidget::unlock() { + updatelock = false; + comboBox()->setEditable(true); + comboBox()->setEditText(comboBox()->text(comboBox()->currentItem())); + if (comboBox()->currentText() != oldKey) { + emit changed(comboBox()->currentItem()); + } +} + +void CKeyChooserWidget::changeCombo(int n) { + const int old_item = comboBox()->currentItem(); + int new_item = old_item + n; + + //index of highest Item + const int max = comboBox()->count()-1; + if(new_item > max) new_item = max; + if(new_item < 0) new_item = 0; + + if(new_item != old_item) { + comboBox()->setCurrentItem(new_item); + if(!updatelock) + emit changed(new_item); + } +} + diff --git a/bibletime/frontend/keychooser/ckeychooserwidget.h b/bibletime/frontend/keychooser/ckeychooserwidget.h new file mode 100644 index 0000000..e5893ce --- /dev/null +++ b/bibletime/frontend/keychooser/ckeychooserwidget.h @@ -0,0 +1,179 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CKEYCHOOSERWIDGET_H +#define CKEYCHOOSERWIDGET_H + +#include +#include +#include + +#include +#include "cscrollerwidgetset.h" + + +class CLexiconKeyChooser; +//class CMinMaxLayout; + +class QIconSet; +//class QComboBox; +class QStringList; +class QPoint; +class QMouseEvent; +class QWheelEvent; +class QHBoxLayout; + +/* +* We use this class to conrtol the focus move in the combobox +* This class is used in the key chooser widgets +*/ +class CKCComboBox : public QComboBox { + Q_OBJECT + +public: + CKCComboBox(bool rw, QWidget * parent=0, const char * name=0 ); + /** + * Returns the size this widget would like to have. + */ + // virtual QSize sizeHint() const; + +protected: + /** + * Reimplementation. + */ + virtual bool eventFilter( QObject *o, QEvent *e ); + /** + * Scrolls in the list if the wheel of the mouse was used. + */ + virtual void wheelEvent( QWheelEvent* e); + +signals: + /** + * Emitted when the user moves the focus away from the combo by pressing tab + */ + void focusOut(int itemIndex); +}; + +/** + * This class implements the KeyCooser Widget, which + * consists of a @ref QComboBox, two normal ref @QToolButton + * and a enhanced @ref CScrollButton + * + * @author The BibleTime team + */ +class CKeyChooserWidget : public QWidget { + Q_OBJECT +public: + /** + * the constructor + */ + CKeyChooserWidget(QStringList *list=0, const bool useNextPrevSignals = false, QWidget *parent=0, const char *name=0); + /** + * the constructor + */ + CKeyChooserWidget(int count=0, const bool useNextPrevSignals = false, QWidget *parent=0, const char *name=0); + /** + * This function does clear the combobox, then fill in + * the StringList, set the ComboBox' current item to index + * and if do_emit is true, it will emit @ref #changed + * + * @param list the stringlist to be inserted + * @param index the index that the combobox is to jump to + * @param do_emit should we emit @ref #changed(int) + */ + void reset(const int count, int index, bool do_emit); + void reset(QStringList& list, int index, bool do_emit); + void reset(QStringList *list, int index, bool do_emit); + /** + * Initializes this widget. We need this function because + * we have more than one constructor. + */ + virtual void init(); + /** + * + */ + // virtual void adjustSize(); + /** + * Sets the tooltips for the given entries using the parameters as text. + */ + void setToolTips( const QString comboTip, const QString nextEntry, const QString scrollButton, const QString previousEntry); + /** + * Sets the current item to the one with the given text + */ + bool setItem( const QString item); + /** + * Return the combobox of this key chooser widget. + */ + QComboBox* comboBox() {return m_comboBox;}; + +public slots: + /** + * is called to lock the combobox + */ + void lock() + ; + /** + * is called to unlock the combobox + */ + void unlock(); + /** + * is called to move the combobox to a certain index + * @param index the index to jump to + */ + void changeCombo(int index); + void slotComboChanged(int index); + +signals: + /** + * Is emitted if the widget changed, but + * only if it is not locked or being reset + * + * @param the current ComboBox index + */ + void changed(int index); + /** + * Is emitted if the widget was left with a focus out event. + * @param index The new index of the ComboBox + */ + void focusOut(int index); + +protected: + /** + * indicates wheter we are resetting at the moment + */ + bool isResetting; + /** + * + */ + QString oldKey; + +protected slots: // Protected slots + /** + * Is called when the return key was presed in the combobox. + */ + void slotReturnPressed( /*const QString&*/ ); + + +private: + friend class CLexiconKeyChooser; + QStringList m_list; + bool m_useNextPrevSignals; + bool updatelock; + + /** + * Members should never be public!! + */ + CKCComboBox* m_comboBox; + QHBoxLayout *m_mainLayout; + CScrollerWidgetSet * m_scroller; +}; + +#endif diff --git a/bibletime/frontend/keychooser/ckeyreferencewidget.cpp b/bibletime/frontend/keychooser/ckeyreferencewidget.cpp new file mode 100644 index 0000000..b0fc7c9 --- /dev/null +++ b/bibletime/frontend/keychooser/ckeyreferencewidget.cpp @@ -0,0 +1,210 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + +//BibleTime includes +#include "ckeyreferencewidget.h" +#include "cscrollerwidgetset.h" + +//BibleTime frontend includes +#include "frontend/cbtconfig.h" +#include "backend/cswordversekey.h" +#include "util/cresmgr.h" + +//Qt includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Override the completion box for our references */ +CKeyReferenceCompletion::CKeyReferenceCompletion(CSwordBibleModuleInfo *mod) : KCompletion() +{ + m_key = new CSwordVerseKey(mod); + m_module = mod; +} + +QString CKeyReferenceCompletion::makeCompletion(const QString &text) { + if(!text.isEmpty() && m_key->key(text)) { + // XXX: key() does not check bounds properly if we only have eg the NT. + return m_key->key(); + } + + return QString::null; +} + +//**********************************************************************************/ +/* To get popup working we have to rework KLineEdit too */ +CKeyReferenceLineEdit::CKeyReferenceLineEdit(QWidget *parent, const char *name) : KLineEdit(parent,name) { +} + +void CKeyReferenceLineEdit::makeCompletion(const QString &text) { + KCompletion *comp = compObj(); + KGlobalSettings::Completion mode = completionMode(); + + if ( !comp || mode == KGlobalSettings::CompletionNone ) + return; // No completion object... + + QString match = comp->makeCompletion( text ); + if ( mode == KGlobalSettings::CompletionPopup || + mode == KGlobalSettings::CompletionPopupAuto ) + { + if ( match.isNull() ) + { + KCompletionBox *compbox = completionBox(); + compbox->hide(); + compbox->clear(); + } else { + QStringList t; + t.append(match); + setCompletedItems(t); + } + } else { + KLineEdit::makeCompletion(text); + } +} + +//**********************************************************************************/ + +CKeyReferenceWidget::CKeyReferenceWidget( CSwordBibleModuleInfo *mod, CSwordVerseKey *key, QWidget *parent, const char *name) : QWidget(parent,name) { + + updatelock = false; + m_module = mod; + + setFocusPolicy(QWidget::WheelFocus); + + // Erase button + KGuiItem erase_picture; + erase_picture.setIconName("locationbar_erase"); + KPushButton *clearRef = new KPushButton(this); + clearRef->setGuiItem(erase_picture); + connect(clearRef, SIGNAL(clicked( ) ), SLOT(slotClearRef( ))); + + m_bookScroller = new CScrollerWidgetSet(this); + + m_textbox = new CKeyReferenceLineEdit( this ); + setKey(key); // The order of these two functions is important. + setModule(); + + m_chapterScroller = new CScrollerWidgetSet(this); + m_verseScroller = new CScrollerWidgetSet(this); + + m_mainLayout = new QHBoxLayout( this ); + m_mainLayout->addWidget(clearRef); + m_mainLayout->addWidget(m_bookScroller); + m_mainLayout->addWidget(m_textbox); + m_mainLayout->addWidget(m_chapterScroller); + m_mainLayout->addWidget(m_verseScroller); + + setTabOrder(m_textbox, 0); + + m_bookScroller->setToolTips( + CResMgr::displaywindows::bibleWindow::nextBook::tooltip, + CResMgr::displaywindows::general::scrollButton::tooltip, + CResMgr::displaywindows::bibleWindow::previousBook::tooltip + ); + m_chapterScroller->setToolTips( + CResMgr::displaywindows::bibleWindow::nextChapter::tooltip, + CResMgr::displaywindows::general::scrollButton::tooltip, + CResMgr::displaywindows::bibleWindow::previousChapter::tooltip + ); + m_verseScroller->setToolTips( + CResMgr::displaywindows::bibleWindow::nextVerse::tooltip, + CResMgr::displaywindows::general::scrollButton::tooltip, + CResMgr::displaywindows::bibleWindow::previousVerse::tooltip + ); + + + // signals and slots connections + + connect(m_bookScroller, SIGNAL(change(int)), SLOT(slotBookChange(int))); + connect(m_bookScroller, SIGNAL(scroller_pressed()), SLOT(slotUpdateLock())); + connect(m_bookScroller, SIGNAL(scroller_released()), SLOT(slotUpdateUnlock())); + connect(m_textbox, SIGNAL(returnPressed()), SLOT(slotReturnPressed())); + connect(m_chapterScroller, SIGNAL(change(int)), SLOT(slotChapterChange(int))); + connect(m_chapterScroller, SIGNAL(scroller_pressed()), SLOT(slotUpdateLock())); + connect(m_chapterScroller, SIGNAL(scroller_released()), SLOT(slotUpdateUnlock())); + connect(m_verseScroller, SIGNAL(change(int)), SLOT(slotVerseChange(int))); + connect(m_verseScroller, SIGNAL(scroller_pressed()), SLOT(slotUpdateLock())); + connect(m_verseScroller, SIGNAL(scroller_released()), SLOT(slotUpdateUnlock())); +} + +void CKeyReferenceWidget::setModule(CSwordBibleModuleInfo *m) { + if (m) + m_module = m; + + delete m_textbox->completionObject(); + CKeyReferenceCompletion *comp = new CKeyReferenceCompletion(m_module); + m_textbox->setCompletionObject(comp); + m_textbox->setCompletionMode(KGlobalSettings::CompletionPopup); +} + +void CKeyReferenceWidget::slotClearRef( ) { + m_textbox->setText(""); + m_textbox->setFocus(); +} + +void CKeyReferenceWidget::updateText() { + m_textbox->setText(m_key->key()); +} + +bool CKeyReferenceWidget::setKey(CSwordVerseKey *key) { + m_key = key; + updateText(); + + return true; +} + +KLineEdit* CKeyReferenceWidget::textbox() { + return m_textbox; +} + +void CKeyReferenceWidget::slotReturnPressed() { + m_key->key(m_textbox->text()); + updateText(); + + emit changed(m_key); +} + +/* Handlers for the various scroller widgetsets. Do we really want a verse scroller? */ +void CKeyReferenceWidget::slotUpdateLock() { + updatelock = true; + oldKey = m_key->key(); +} + +void CKeyReferenceWidget::slotUpdateUnlock() { + updatelock = false; + if (oldKey != m_key->key()) emit changed(m_key); +} + +void CKeyReferenceWidget::slotBookChange(int n) { + n > 0 ? m_key->next( CSwordVerseKey::UseBook ) : m_key->previous( CSwordVerseKey::UseBook ); + updateText(); + if (!updatelock) emit changed(m_key); +} + +void CKeyReferenceWidget::slotChapterChange(int n) { + n > 0 ? m_key->next( CSwordVerseKey::UseChapter ) : m_key->previous( CSwordVerseKey::UseChapter ); + updateText(); + if (!updatelock) emit changed(m_key); +} + +void CKeyReferenceWidget::slotVerseChange(int n) { + n > 0 ? m_key->next( CSwordVerseKey::UseVerse ) : m_key->previous( CSwordVerseKey::UseVerse ); + updateText(); + if (!updatelock) emit changed(m_key); +} diff --git a/bibletime/frontend/keychooser/ckeyreferencewidget.h b/bibletime/frontend/keychooser/ckeyreferencewidget.h new file mode 100644 index 0000000..bcb6bb9 --- /dev/null +++ b/bibletime/frontend/keychooser/ckeyreferencewidget.h @@ -0,0 +1,89 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CKEYREFERENCEWIDGET_H +#define CKEYREFERENCEWIDGET_H + +#include "cscrollerwidgetset.h" +#include "backend/cswordbiblemoduleinfo.h" + +#include +#include + +#include +#include + +class CLexiconKeyChooser; +class CSwordVerseKey; + +class CKeyReferenceCompletion : public KCompletion { + Q_OBJECT +public: + CKeyReferenceCompletion(CSwordBibleModuleInfo*); + QString makeCompletion(const QString &); + QStringList allMatches(); +private: + CSwordVerseKey *m_key; + CSwordBibleModuleInfo *m_module; +}; + +class CKeyReferenceLineEdit : public KLineEdit { + Q_OBJECT +public: + CKeyReferenceLineEdit(QWidget *parent=0, const char *name=0); + void makeCompletion(const QString &); +}; + +class CKeyReferenceWidget : public QWidget { + Q_OBJECT +public: + /** + * the constructor + */ + CKeyReferenceWidget(CSwordBibleModuleInfo *, CSwordVerseKey*, QWidget *parent=0, const char *name=0); + bool setKey(CSwordVerseKey* key); + KLineEdit* textbox(); + void setModule(CSwordBibleModuleInfo *m = 0); + +signals: + void changed(CSwordVerseKey* key); + +protected: + void updateText(); + +protected slots: // Protected slots + /** + * Is called when the return key was presed in the textbox. + */ + void slotReturnPressed(); + + void slotClearRef(); + + void slotUpdateLock(); + void slotUpdateUnlock(); + void slotBookChange(int); + void slotChapterChange(int); + void slotVerseChange(int); + +private: + friend class CLexiconKeyChooser; + QHBoxLayout *m_mainLayout; + CKeyReferenceLineEdit *m_textbox; + CSwordVerseKey *m_key; + CScrollerWidgetSet *m_bookScroller; + CScrollerWidgetSet *m_chapterScroller; + CScrollerWidgetSet *m_verseScroller; + bool updatelock; + QString oldKey; + CSwordBibleModuleInfo *m_module; +}; + +#endif diff --git a/bibletime/frontend/keychooser/clexiconkeychooser.cpp b/bibletime/frontend/keychooser/clexiconkeychooser.cpp new file mode 100644 index 0000000..ff55602 --- /dev/null +++ b/bibletime/frontend/keychooser/clexiconkeychooser.cpp @@ -0,0 +1,176 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "clexiconkeychooser.h" +#include "ckeychooserwidget.h" +#include "cscrollbutton.h" + +#include "backend/cswordlexiconmoduleinfo.h" +#include "frontend/cbtconfig.h" + +#include "util/cresmgr.h" + +//STL headers +#include +#include +#include + +//Qt includes +#include +#include +#include + +//KDE includes +#include + +CLexiconKeyChooser::CLexiconKeyChooser(ListCSwordModuleInfo modules, CSwordKey *key, QWidget *parent, const char *name ) +: CKeyChooser(modules, key, parent, name), +m_key(dynamic_cast(key)) { + + setModules(modules, false); + + //we use a layout because the key chooser should be resized to full size + m_layout = new QHBoxLayout(this, QBoxLayout::LeftToRight); + m_layout->setResizeMode(QLayout::FreeResize); + + m_widget = new CKeyChooserWidget(0, false, this); + + //don't allow a too high width, try to keep as narrow as possible + //to aid users with smaller screen resolutions + m_widget->comboBox()->setMaximumWidth(200); + + m_widget->setToolTips( + CResMgr::displaywindows::lexiconWindow::entryList::tooltip, + CResMgr::displaywindows::lexiconWindow::nextEntry::tooltip, + CResMgr::displaywindows::general::scrollButton::tooltip, + CResMgr::displaywindows::lexiconWindow::previousEntry::tooltip + ); + + m_layout->addWidget(m_widget,0,Qt::AlignLeft); + + connect(m_widget,SIGNAL(changed(int)),SLOT(activated(int))); + connect(m_widget,SIGNAL(focusOut(int)),SLOT(activated(int))); + + setModules(modules, true); + setKey(key); +} + +CSwordKey* const CLexiconKeyChooser::key() { + // qWarning("key"); + return m_key; +} + +void CLexiconKeyChooser::setKey(CSwordKey* key) { + if (!(m_key = dynamic_cast(key))) { + return; + } + + // qWarning("setKey start"); + QString newKey = m_key->key(); + const int index = m_widget->comboBox()->listBox()->index(m_widget->comboBox()->listBox()->findItem( newKey )); + m_widget->comboBox()->setCurrentItem(index); + + // qWarning("setKey end"); + emit keyChanged( m_key ); +} + +void CLexiconKeyChooser::activated(int index) { + // qWarning("activated"); + const QString text = m_widget->comboBox()->text(index); + + // To prevent from eternal loop, because activated() is emitted again + if (m_key && m_key->key() != text) { + m_key->key(text); + setKey(m_key); + } + // qWarning("activated end"); +} + +inline const bool my_cmpEntries(const QString& a, const QString& b) { + return a < b; +}; + +/** Reimplementation. */ +void CLexiconKeyChooser::refreshContent() { + if (m_modules.count() == 1) { + m_widget->reset(m_modules.first()->entries(), 0, true); + // qWarning("resetted"); + } + else { + typedef std::multimap EntryMap; + EntryMap entryMap; + QStringList* entries = 0; + for (m_modules.first(); m_modules.current(); m_modules.next()) { + entries = m_modules.current()->entries(); + entryMap.insert( std::make_pair(entries->count(), entries) ); + } + + QStringList goodEntries; //The string list which contains the entries which are available in all modules + + EntryMap::iterator it = entryMap.begin(); //iterator to go thoigh all selected modules + QStringList refEntries = *(it->second); //copy the items for the first time + QStringList* cmpEntries = ( ++it )->second; //list for comparision, starts with the second module in the map + + while(it != entryMap.end()) { + std::set_intersection( + refEntries.begin(), --(refEntries.end()), //--end() is the last valid entry + cmpEntries->begin(), --(cmpEntries->end()), + std::back_inserter(goodEntries), //append valid entries to the end of goodEntries + my_cmpEntries //ci_cmpEntries is the comparision function + ); + + cmpEntries = ( ++it )->second; //this is a pointer to the string list of a new module + + /* + * use the good entries for next comparision, + * because the final list can only have the entries of goodEntries as maxiumum + */ + refEntries = goodEntries; + }; + + m_widget->reset(goodEntries, 0, true); //write down the entries + } //end of ELSE + + //make sure the list sorted + /* This is not the best solution, module()->entries() should be sorted already */ + // Q_ASSERT(m_widget->comboBox()->listBox()); + // m_widget->comboBox()->listBox()->sort(); +} + +/** No descriptions */ +void CLexiconKeyChooser::adjustFont() { + // //Make sure the entries are displayed correctly. + // m_widget->comboBox()->setFont( CBTConfig::get( m_modules.first()->language() ).second ); +} + +/** Sets the module and refreshes the combo boxes */ +void CLexiconKeyChooser::setModules( const ListCSwordModuleInfo& modules, const bool refresh ) { + Q_ASSERT(!m_modules.autoDelete()); + m_modules.clear(); + Q_ASSERT(!m_modules.autoDelete()); + + // for (modules.first(); modules.current(); modules.next()) { + ListCSwordModuleInfo::const_iterator end_it = modules.end(); + for (ListCSwordModuleInfo::const_iterator it(modules.begin()); it != end_it; ++it) { + CSwordLexiconModuleInfo* lexicon = dynamic_cast(*it); + if (lexicon) { + m_modules.append(lexicon); + } + } + + if (refresh) { + refreshContent(); + // adjustFont(); + } +} + +/** No descriptions */ +void CLexiconKeyChooser::updateKey(CSwordKey*) {} diff --git a/bibletime/frontend/keychooser/clexiconkeychooser.h b/bibletime/frontend/keychooser/clexiconkeychooser.h new file mode 100644 index 0000000..10283eb --- /dev/null +++ b/bibletime/frontend/keychooser/clexiconkeychooser.h @@ -0,0 +1,79 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CLEXICONKEYCHOOSER_H +#define CLEXICONKEYCHOOSER_H + +#include +#include "ckeychooser.h" +#include "backend/cswordldkey.h" +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordlexiconmoduleinfo.h" + +class CKeyChooserWidget; +class QHBoxLayout; + +/** + * This class implements the KeyChooser for lexicons + * + * it inhertits @ref CKeyChooser + * it uses 1 @ref CKeyChooserWidget to represent the lexicon keys + * + * @author The BibleTime team + */ +class CLexiconKeyChooser : public CKeyChooser { + Q_OBJECT +public: + /** + * The constructor + * + * you should not need to use this, use @ref CKeyChooser::createInstance instead + */ + CLexiconKeyChooser(ListCSwordModuleInfo modules, CSwordKey *key=0, QWidget *parent=0, const char *name=0); + +public slots: + /** + * see @ref CKeyChooser::getKey + * @return Return the key object we use. + */ + virtual CSwordKey* const key(); + /** + * see @ref CKeyChooser::setKey + */ + virtual void setKey(CSwordKey* key); + /** + * used to react to changes in the @ref CKeyChooserWidget + * + * @param index not used + **/ + virtual void activated(int index); + /** + * Reimplementatuion. + */ + virtual void refreshContent(); + /** + * Sets the module and refreshes the combo boxes of this keychooser. + */ + virtual void setModules( const ListCSwordModuleInfo& modules, const bool refresh = true ); + +protected: + CKeyChooserWidget *m_widget; + CSwordLDKey* m_key; + QPtrList m_modules; + QHBoxLayout *m_layout; + + virtual void adjustFont(); + +public slots: // Public slots + virtual void updateKey(CSwordKey* key); +}; + +#endif diff --git a/bibletime/frontend/keychooser/crefselectdialog.cpp b/bibletime/frontend/keychooser/crefselectdialog.cpp new file mode 100644 index 0000000..e0c0552 --- /dev/null +++ b/bibletime/frontend/keychooser/crefselectdialog.cpp @@ -0,0 +1,100 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "crefselectdialog.h" + +// QT +#include "qlayout.h" +#include "qlineedit.h" +#include "qlabel.h" + +// backend +#include "backend/cswordkey.h" +#include "backend/cswordversekey.h" + +//KDE includes +#include + + +//CRefSelectDialog::CRefSelectDialog(QWidget *parent) +// : KDialogBase(parent, "Refenences", +// true, i18n("Refenence selector"), +// KDialogBase::Ok|KDialogBase::Cancel, KDialogBase::Ok, true), +// m_oldPos(0,0) +// +//{ +// m_page = new QWidget( this ); +// m_placeholder = new QWidget( m_page); +// QVBoxLayout* layout = new QVBoxLayout( m_page, 0, spacingHint()); +// m_lineedit = new QLineEdit( QString::null, m_page, "select" ); +// m_lineedit->setMinimumWidth(fontMetrics().maxWidth()*8); +// +// QHBoxLayout* hlayout = new QHBoxLayout(m_page, 0, spacingHint()); +// hlayout->addWidget(new QLabel(i18n("Verse key:"), m_page)); +// hlayout->addWidget(m_lineedit); +// layout->addItem(hlayout); +// layout->addWidget(m_placeholder); +// +// m_chooser = NULL; +// m_oldParent = NULL; +// setMainWidget(m_page); +// +// connect(this, SIGNAL(okClicked()), SLOT(slotPressedOk())); +// connect(this, SIGNAL(cancelClicked()), SLOT(slotPressedCancel())); +//} +// +//CRefSelectDialog::~CRefSelectDialog() { +//} +// +// +//void CRefSelectDialog::setChooser(CKeyChooser* const chooser) { +// if (chooser && chooser != m_chooser) { +// if (m_chooser) restoreParent(); +// +// m_chooser = chooser; +// +// // store old owner and position +// m_oldParent = chooser->parentWidget(false); +// m_oldPos = chooser->pos(); +// +// // we temporary borrow chooser widget from the MDI window +// m_placeholder->setMinimumSize(chooser->size()); +// chooser->reparent(m_placeholder, QPoint(0,0), true); +// } +//} +// +//void CRefSelectDialog::slotPressedOk() { +// // go to proper key +// CSwordKey* key = m_chooser->key(); +// key->key(m_lineedit->text()); +// m_chooser->setKey(key); +// +// // restore parent of stolen widget +// restoreParent(); +//} +// +//void CRefSelectDialog::slotPressedCancel() { +// // restore parent of stolen widget +// restoreParent(); +//} +// +//void CRefSelectDialog::restoreParent() { +// if (m_chooser && m_oldParent) { +// m_chooser->reparent(m_oldParent, m_oldPos, true); +// } +// m_chooser = NULL; +//} + + + + + + diff --git a/bibletime/frontend/keychooser/crefselectdialog.h b/bibletime/frontend/keychooser/crefselectdialog.h new file mode 100644 index 0000000..3d78ffe --- /dev/null +++ b/bibletime/frontend/keychooser/crefselectdialog.h @@ -0,0 +1,56 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CREFSELECTDIALOG_H +#define CREFSELECTDIALOG_H +//Qt includes +#include +#include +class QLineEdit; + +//KDE includes +#include +#include + + +// BT includes +#include "ckeychooser.h" + +//class CRefSelectDialog : public KDialogBase { +// Q_OBJECT +// public: +// CRefSelectDialog(QWidget *parent); +// virtual ~CRefSelectDialog(); +// +// void setChooser(CKeyChooser* const chooser); +// +// public slots: +// void slotPressedOk(); +// void slotPressedCancel(); +// +// +// protected: +// void restoreParent(); +// +// private: +// QWidget* m_page; +// QWidget* m_placeholder; +// QWidget* m_oldParent; +// CKeyChooser* m_chooser; +// QLineEdit* m_lineedit; +// QPoint m_oldPos; +//}; +#endif + + + + + diff --git a/bibletime/frontend/keychooser/cscrollbutton.cpp b/bibletime/frontend/keychooser/cscrollbutton.cpp new file mode 100644 index 0000000..c9952cc --- /dev/null +++ b/bibletime/frontend/keychooser/cscrollbutton.cpp @@ -0,0 +1,101 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cscrollbutton.h" + +#include "frontend/cbtconfig.h" + +#include +#include + +//Qt includes +#include +#include +#include + +CScrollButton::CScrollButton(QWidget *parent, const char *name ) : QToolButton(parent,name) { + setFocusPolicy(QWidget::WheelFocus); + setCursor( splitVCursor ); + + m_isLocked = false; + connect(this, SIGNAL(pressed() ), SLOT(was_pressed() )); + connect(this, SIGNAL(released()), SLOT(was_released())); +} + +const bool CScrollButton::isLocked( ) const { + return m_isLocked; +} + +void CScrollButton::was_pressed( ) { + QApplication::setOverrideCursor( BlankCursor ); + m_isLocked = true; + lock_Point = get_lock_Point(); + + emit lock() + ; +} + +void CScrollButton::was_released( ) { + QApplication::restoreOverrideCursor(); + m_isLocked = false; + + emit unlock(); +} + +const QPoint CScrollButton::get_lock_Point() const { + return mapToGlobal( QPoint( width()/2, height()/2 ) ); +} + +void CScrollButton::mouseMoveEvent( QMouseEvent* e ) { + if (m_isLocked) { + int vchange = (QCursor::pos().y() - lock_Point.y()); + + if (abs(vchange) < 10) { + vchange = (int)((vchange>0 ? 1 : -1) * pow(abs(vchange), 0.3)); + } + else if (abs(vchange) < 30) { + vchange = (int)((vchange>0 ? 1 : -1) * pow(abs(vchange), 0.6)); + } + else if (abs(vchange) < 40) { + vchange = (int)((vchange>0 ? 1 : -1) * pow(abs(vchange), 1.2)); + } + else { + vchange = (int)((vchange>0 ? 1 : -1) * pow(abs(vchange), 2.0)); + } + + if (vchange) { //not emit 0 + emit change_requested( vchange ); + } + + QCursor::setPos( lock_Point ); + } + else { + QToolButton::mouseMoveEvent(e); + } +} + + + +/** If the wheel of the mouse is used while the mouse stays over our scrollbutton the content is scrolled like the mouse was pressed and moved. */ +void CScrollButton::wheelEvent( QWheelEvent* e ) { + /** + * The problem is, that wheel events do everytime have the delta value 120 + */ + const int vchange = ((e->delta() > 0) ? (1) : (-1)); + + if (vchange!=0) {//do not emit a change with value 0 + emit change_requested( vchange ); + e->accept(); + } + else { + e->ignore(); + } +} diff --git a/bibletime/frontend/keychooser/cscrollbutton.h b/bibletime/frontend/keychooser/cscrollbutton.h new file mode 100644 index 0000000..bd6e900 --- /dev/null +++ b/bibletime/frontend/keychooser/cscrollbutton.h @@ -0,0 +1,86 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSRCOLLBUTTON_H +#define CSRCOLLBUTTON_H + +#include +#include + +class QMouseEvent; + +/** This Class implements the direct chooser button used in the KeyChooser Widget + * @author The BibleTime team + */ +class CScrollButton : public QToolButton { + Q_OBJECT +public: + /** + * The constructor + */ + CScrollButton(QWidget *parent=0, const char *name=0); + const bool isLocked() const; + +signals: + /** + * is emitted when the button enters locked state + */ + void lock() + ; + /** + * is emitted when the button leaves locked state + */ + void unlock(); + /** + * indicates a change the user made by moving the mouse + * @param count the number of items to be changed in the KeyChooser ComboBox + */ + void change_requested(int count); + +protected slots: + /* + * used to process the button press events + */ + void was_pressed(); + /** + * used to process the button release events + */ + void was_released(); + +protected: + /** + * Reimplementation from @ref QWidget#mouseMoveEvent - processes + * the mouse move events + */ + virtual void mouseMoveEvent( QMouseEvent* e ); + /** + * used to find the lock point - the middle of the button + * @return the lock point + */ + const QPoint get_lock_Point() const; + /** + * If the wheel of the mouse is used while the mouse stays over our scrollbutton the content is + * scrolled like the mouse was pressed and moved. + */ + virtual void wheelEvent( QWheelEvent* e ); + +private: + /** + * Indicates whether the button is in locked state or not + */ + bool m_isLocked; + /** + * stores the lock point + */ + QPoint lock_Point; +}; + +#endif diff --git a/bibletime/frontend/keychooser/cscrollerwidgetset.cpp b/bibletime/frontend/keychooser/cscrollerwidgetset.cpp new file mode 100644 index 0000000..dd4201b --- /dev/null +++ b/bibletime/frontend/keychooser/cscrollerwidgetset.cpp @@ -0,0 +1,78 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + +//BibleTime includes +#include "cscrollbutton.h" +#include "cscrollerwidgetset.h" + +//BibleTime frontend includes +#include "frontend/cbtconfig.h" + +//Qt includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +const unsigned int WIDTH = 16; +const unsigned int ARROW_HEIGHT = 12; +const unsigned int MOVER_HEIGHT = 6; + +CScrollerWidgetSet::CScrollerWidgetSet(QWidget *parent, const char *name) : QWidget(parent,name) { + m_layout = new QVBoxLayout(this); + m_layout->setAlignment(Qt::AlignHCenter | Qt::AlignCenter); + + //setAlignment(Qt::AlignHCenter | Qt::AlignCenter); + + btn_up = new QToolButton( UpArrow, this, "btn_up" ); + btn_up->setFixedSize(WIDTH, ARROW_HEIGHT); + btn_up->setFocusPolicy(QWidget::NoFocus); + + btn_fx = new CScrollButton( this, "btn_fx" ); + btn_fx->setFixedSize(WIDTH, MOVER_HEIGHT); + btn_fx->setFocusPolicy(QWidget::NoFocus); + + btn_down = new QToolButton( DownArrow, this, "btn_down" ); + btn_down->setFixedSize(WIDTH, ARROW_HEIGHT); + btn_down->setFocusPolicy(QWidget::NoFocus); + m_layout->addWidget( btn_up,0 ); + m_layout->addWidget( btn_fx,0 ); + m_layout->addWidget( btn_down,0 ); + setMinimumWidth(WIDTH+4); // Kludge to add some spacing but seems to work. + + connect(btn_fx, SIGNAL(lock()), SLOT(slotLock())); + connect(btn_fx, SIGNAL(unlock()), SLOT(slotUnlock())); + connect(btn_fx, SIGNAL(change_requested(int)), SLOT(slotScroller(int))); + connect(btn_up, SIGNAL(clicked()), SLOT(slotUpClick())); + connect(btn_down, SIGNAL(clicked()), SLOT(slotDownClick())); +} + +/** Sets the tooltips for the given entries using the parameters as text. */ +void CScrollerWidgetSet::setToolTips( const QString nextEntryTip, const QString scrollButtonTip, const QString previousEntryTip) { + QToolTip::add (btn_fx, scrollButtonTip); + QToolTip::add (btn_down, nextEntryTip); + QToolTip::add (btn_up, previousEntryTip); +} + +void CScrollerWidgetSet::slotLock() { emit scroller_pressed(); } +void CScrollerWidgetSet::slotUnlock() { emit scroller_released(); } +void CScrollerWidgetSet::slotScroller(int n) { emit change(n); } +void CScrollerWidgetSet::slotUpClick() { slotScroller(-1); } +void CScrollerWidgetSet::slotDownClick() { slotScroller(1); } diff --git a/bibletime/frontend/keychooser/cscrollerwidgetset.h b/bibletime/frontend/keychooser/cscrollerwidgetset.h new file mode 100644 index 0000000..dd3e6d8 --- /dev/null +++ b/bibletime/frontend/keychooser/cscrollerwidgetset.h @@ -0,0 +1,72 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSCROLLERWIDGETSET_H +#define CSCROLLERWIDGETSET_H + +#include +#include +#include +#include +#include + +#include +#include "cscrollbutton.h" + +/** + * This class implements the Scroller Widget-set, which + * consists of two normal ref @QToolButton and a enhanced @ref CScrollButton + * + * @author The BibleTime team + */ +class CScrollerWidgetSet : public QWidget { + Q_OBJECT +public: + /** + * the constructor + */ + CScrollerWidgetSet(QWidget *parent=0, const char *name=0); + /** + * Sets the tooltips for the given entries using the parameters as text. + */ + void setToolTips( const QString nextEntry, const QString scrollButton, const QString previousEntry); + +signals: + /** + * is emitted to proceed to some other entry relative to the + * current, indicated by the int value + */ + void change(int count); + + /** + * These emit when the scroll button is pressed or released + */ + void scroller_pressed(); + void scroller_released(); + +protected: + QToolButton* btn_up; + QToolButton* btn_down; + CScrollButton* btn_fx; + +protected slots: + void slotLock(); + void slotUnlock(); + void slotUpClick(); + void slotDownClick(); + void slotScroller(int); + +private: + QVBoxLayout *m_layout; + +}; + +#endif diff --git a/bibletime/frontend/kstartuplogo.cpp b/bibletime/frontend/kstartuplogo.cpp new file mode 100644 index 0000000..62c01e9 --- /dev/null +++ b/bibletime/frontend/kstartuplogo.cpp @@ -0,0 +1,115 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//Own includes +#include "kstartuplogo.h" + +//Qt includes +#include +#include +#include +#include + +//KDE includes +#include +#include +//#include + +//static objects +KStartupLogo* KStartupLogo::startupLogo = 0; + +void KStartupLogo::createSplash() { + deleteSplash(); + startupLogo = new KStartupLogo(); +} + +void KStartupLogo::showSplash() { + if (KStartupLogo::startupLogo) { + KStartupLogo::startupLogo->show(); + } +} + +void KStartupLogo::hideSplash() { + if (startupLogo) { + startupLogo->hide(); + } +} + +void KStartupLogo::deleteSplash() { + delete startupLogo; + startupLogo = 0; +} + + +void KStartupLogo::setStatusMessage(const QString& message) { + if (startupLogo) { + startupLogo->setText(message); + } +} + +KStartupLogo::KStartupLogo() +: QWidget(0, "startuplogo", /*WStyle_Customize | WStyle_NoBorder*/ WStyle_NoBorder|WStyle_StaysOnTop|WX11BypassWM ) { + + QPixmap pm; + if ( !pm.load(locate("BT_pic","startuplogo.png")) ) { + qWarning("Can't load startuplogo! Check your installation."); + } + + setBackgroundPixmap(pm); + + //Please not change the margin + textLabel = new QLabel(this); + textLabel->setGeometry(0,pm.height(),pm.width(),textLabel->sizeHint().height()+10); + textLabel->setBackgroundColor( QColor("#0d6de9") ); + textLabel->setFrameStyle(QFrame::Panel | QFrame::Plain); + textLabel->setLineWidth(1); + textLabel->setScaledContents( true ); + + QFont f; + f.setBold( true ); + textLabel->setFont( f ); + + QPalette p = palette(); + p.setColor( QPalette::Inactive, QColorGroup::Text, Qt::white ); + p.setColor( QPalette::Inactive, QColorGroup::Foreground, Qt::white ); + p.setColor( QPalette::Normal, QColorGroup::Text, Qt::white ); + p.setColor( QPalette::Normal, QColorGroup::Foreground, Qt::white ); + setPalette( p ); + + setGeometry ( + (KApplication::desktop()->width()-pm.width())/2, + (KApplication::desktop()->height()-pm.height()-textLabel->height())/2, + pm.width(), + pm.height()+textLabel->height() + ); +} + +void KStartupLogo::setText(const QString text) { + //Please not make the text bold & let the first character be blank + textLabel->setText( QString::fromLatin1(" %1").arg(text) ); + KApplication::kApplication()->processEvents(); +} + +/** Makes the splashscreen the toplevel window. */ +void KStartupLogo::raiseSplash() { + if (startupLogo) { + startupLogo->raise(); + startupLogo->setActiveWindow(); + startupLogo->textLabel->show(); + } +} + +/** Lowers the splash screen one window down, so it's possible to make it not to hide tip windows or other startup stuff. */ +void KStartupLogo::lowerSplash() { + if (startupLogo) { + startupLogo->lower(); + } +} diff --git a/bibletime/frontend/kstartuplogo.h b/bibletime/frontend/kstartuplogo.h new file mode 100644 index 0000000..d1a7af0 --- /dev/null +++ b/bibletime/frontend/kstartuplogo.h @@ -0,0 +1,66 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef KSTARTUPLOGO_H +#define KSTARTUPLOGO_H + +#include + +//class forward declarations +class QLabel; + +/** + * This class provides a startuplogo. + * + * @author The team of BibleTime + */ +class KStartupLogo : public QWidget { +public: + /** + * Create the splash screen and show it on the screen. + * Use hideSplash, raiseSplash and lowerSplash() to control the visibility on screen. + */ + static void createSplash(); + /** + * Show the splash screen on the users desktop. + */ + static void showSplash(); + /** + * Hides the splash screen. + */ + static void hideSplash(); + /** + * Delete the splash screen if it exists. + */ + static void deleteSplash(); + /** + * Sets the text status message in the splash screen. + */ + static void setStatusMessage(const QString& message); + /** + * Makes the splashscreen the toplevel window. + */ + static void raiseSplash(); + /** + * Lowers the splash screen one window down, + * so it's possible to make it not to hide tip windows or other startup stuff. + */ + static void lowerSplash(); + +private: + KStartupLogo(); + void setText(const QString text); + QLabel* textLabel; + + static KStartupLogo* startupLogo; +}; + +#endif diff --git a/bibletime/frontend/mainindex/Makefile.am b/bibletime/frontend/mainindex/Makefile.am new file mode 100644 index 0000000..e79b5b8 --- /dev/null +++ b/bibletime/frontend/mainindex/Makefile.am @@ -0,0 +1,18 @@ +INCLUDES = $(all_includes) +libmainindex_a_METASOURCES = AUTO +noinst_LIBRARIES = libmainindex.a + +libmainindex_a_SOURCES = \ +cmainindex.cpp \ +cindexitem.cpp + +all_headers = \ +cmainindex.h \ +cindexitem.h + +EXTRA_DIST = $(libmainindex_a_SOURCES) $(all_headers) + + + + + diff --git a/bibletime/frontend/mainindex/Makefile.in b/bibletime/frontend/mainindex/Makefile.in new file mode 100644 index 0000000..8f099fb --- /dev/null +++ b/bibletime/frontend/mainindex/Makefile.in @@ -0,0 +1,724 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/frontend/mainindex +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) +ARFLAGS = cru +libmainindex_a_AR = $(AR) $(ARFLAGS) +libmainindex_a_LIBADD = +am_libmainindex_a_OBJECTS = cmainindex.$(OBJEXT) cindexitem.$(OBJEXT) +#>- libmainindex_a_OBJECTS = $(am_libmainindex_a_OBJECTS) +#>+ 5 +libmainindex_a_final_OBJECTS = libmainindex_a.all_cpp.o +libmainindex_a_nofinal_OBJECTS = cmainindex.$(OBJEXT) cindexitem.$(OBJEXT)\ +cmainindex.moc.o +@KDE_USE_FINAL_FALSE@libmainindex_a_OBJECTS = $(libmainindex_a_nofinal_OBJECTS) +@KDE_USE_FINAL_TRUE@libmainindex_a_OBJECTS = $(libmainindex_a_final_OBJECTS) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/admin/depcomp +am__depfiles_maybe = depfiles +#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 2 +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 3 +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +CXXLD = $(CXX) +#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ +#>- $(LDFLAGS) -o $@ +#>+ 3 +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libmainindex_a_SOURCES) +DIST_SOURCES = $(libmainindex_a_SOURCES) +ETAGS = etags +CTAGS = ctags +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +INCLUDES = $(all_includes) +#>- libmainindex_a_METASOURCES = AUTO +noinst_LIBRARIES = libmainindex.a +libmainindex_a_SOURCES = \ +cmainindex.cpp \ +cindexitem.cpp + +all_headers = \ +cmainindex.h \ +cindexitem.h + +EXTRA_DIST = $(libmainindex_a_SOURCES) $(all_headers) +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/mainindex/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/frontend/mainindex/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/mainindex/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/frontend/mainindex/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/frontend/mainindex/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +libmainindex.a: $(libmainindex_a_OBJECTS) $(libmainindex_a_DEPENDENCIES) + -rm -f libmainindex.a + $(libmainindex_a_AR) libmainindex.a $(libmainindex_a_OBJECTS) $(libmainindex_a_LIBADD) + $(RANLIB) libmainindex.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cindexitem.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmainindex.Po@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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 $(LIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ +#>- mostlyclean-am +#>+ 2 +clean-am: clean-metasources clean-bcheck clean-final clean-generic clean-libtool clean-noinstLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am + +# 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: + +#>+ 3 +cmainindex.moc.cpp: $(srcdir)/cmainindex.h + $(MOC) $(srcdir)/cmainindex.h -o cmainindex.moc.cpp + +#>+ 2 +mocs: cmainindex.moc.cpp + +#>+ 3 +clean-metasources: + -rm -f cmainindex.moc.cpp + +#>+ 2 +KDE_DIST=cmainindex.h Makefile.in cindexitem.h Makefile.am + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/mainindex/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/frontend/mainindex/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/frontend/mainindex/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 11 +libmainindex_a.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/cmainindex.cpp $(srcdir)/cindexitem.cpp cmainindex.moc.cpp + @echo 'creating libmainindex_a.all_cpp.cpp ...'; \ + rm -f libmainindex_a.all_cpp.files libmainindex_a.all_cpp.final; \ + echo "#define KDE_USE_FINAL 1" >> libmainindex_a.all_cpp.final; \ + for file in cmainindex.cpp cindexitem.cpp cmainindex.moc.cpp ; do \ + echo "#include \"$$file\"" >> libmainindex_a.all_cpp.files; \ + test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libmainindex_a.all_cpp.final; \ + done; \ + cat libmainindex_a.all_cpp.final libmainindex_a.all_cpp.files > libmainindex_a.all_cpp.cpp; \ + rm -f libmainindex_a.all_cpp.final libmainindex_a.all_cpp.files + +#>+ 3 +clean-final: + -rm -f libmainindex_a.all_cpp.cpp + +#>+ 3 +final: + $(MAKE) libmainindex_a_OBJECTS="$(libmainindex_a_final_OBJECTS)" all-am + +#>+ 3 +final-install: + $(MAKE) libmainindex_a_OBJECTS="$(libmainindex_a_final_OBJECTS)" install-am + +#>+ 3 +no-final: + $(MAKE) libmainindex_a_OBJECTS="$(libmainindex_a_nofinal_OBJECTS)" all-am + +#>+ 3 +no-final-install: + $(MAKE) libmainindex_a_OBJECTS="$(libmainindex_a_nofinal_OBJECTS)" install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/frontend/mainindex/cindexitem.cpp b/bibletime/frontend/mainindex/cindexitem.cpp new file mode 100644 index 0000000..4896e1b --- /dev/null +++ b/bibletime/frontend/mainindex/cindexitem.cpp @@ -0,0 +1,1228 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "cindexitem.h" +#include "cmainindex.h" + +#include "backend/creferencemanager.h" +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordkey.h" +#include "backend/cswordversekey.h" +#include "backend/clanguagemgr.h" + +#include "frontend/searchdialog/csearchdialog.h" +#include "frontend/cexportmanager.h" +#include "frontend/cbtconfig.h" +#include "frontend/cinputdialog.h" +#include "frontend/cexportmanager.h" +#include "frontend/cdragdropmgr.h" +#include "frontend/cprinter.h" + +#include "util/cresmgr.h" +#include "util/scoped_resource.h" +#include "util/ctoolclass.h" + +#include + +//Qt includes +#include +#include +#include +#include +#include + +//KDE includes +#include +#include +#include +#include +#include + +#define CURRENT_SYNTAX_VERSION 1 + +using namespace Printing; +using std::string; + +CItemBase::CItemBase(CMainIndex* mainIndex, const Type type) +: KListViewItem(mainIndex), +m_type(type), +m_sortingEnabled(true) {} + +CItemBase::CItemBase(CItemBase* parentItem, const Type type) +: KListViewItem(parentItem), +m_type(type), +m_sortingEnabled(true) {} + +CItemBase::~CItemBase() {} + +const QString CItemBase::toolTip() { + return QString::null; +} + +/** Returns the used main index. */ +CMainIndex* CItemBase::listView() const { + return dynamic_cast( QListViewItem::listView() ); +} + +void CItemBase::init() { + update(); +} + +void CItemBase::update() {} + +const CItemBase::Type& CItemBase::type() const { + return m_type; +}; + +void CItemBase::moveAfter( CItemBase* const item ) { + if (!item) + return; + + if ( parent() == item->parent() ) { //same parent means level + moveItem(item); //both items are on the same level, so we can use moveItem + } +} + +/** Returns true if the given action should be enabled in the popup menu. */ +const bool CItemBase::enableAction( const MenuAction /*action*/ ) { + return false; //this base class has no valif actions +} + +/** No descriptions */ +const bool CItemBase::isMovable() { + return false; +} + +const bool CItemBase::allowAutoOpen( const QMimeSource* ) const { + return false; +}; + +/** This function engables or disables sorting depending on the parameter. */ +void CItemBase::setSortingEnabled( const bool& enableSort ) { + m_sortingEnabled = enableSort; +} + +/** Returns true whether the sorting is enabled or not. */ +const bool CItemBase::isSortingEnabled() { + return m_sortingEnabled; +} + +/** Reimplementation which takes care of the our sortingEnabled setting. */ +void CItemBase::sortChildItems( int col, bool asc ) { + if (!isSortingEnabled()) { + return; + } + else { + KListViewItem::sortChildItems( col, asc ); + } +} + +/** Reimplementation which takes care of the our sortingEnabled setting. */ +void CItemBase::sort() { + if (!isSortingEnabled()) { + return; + } + else { + KListViewItem::sort(); + } +} + +/* ---------------------------------------------- */ +/* ---------- new class: CModuleItem ------------ */ +/* ---------------------------------------------- */ + +CModuleItem::CModuleItem(CTreeFolder* parentItem, CSwordModuleInfo* module) : CItemBase(parentItem), m_module(module) {} + +CModuleItem::~CModuleItem() {} + +/** No descriptions */ +void CModuleItem::update() { + if (m_module) { + setPixmap(0, CToolClass::getIconForModule(m_module)); + setText(0,m_module->name() ); + } +} + +void CModuleItem::init() { + setDragEnabled(false); + setDropEnabled(true); + + update(); +} + + +/** Reimplementation to handle text drops on a module. In this case open the searchdialog. In the case of a referebnce open the module at the given position. */ +bool CModuleItem::acceptDrop( const QMimeSource* src ) const { + if (CDragDropMgr::canDecode(src)) { + if (CDragDropMgr::dndType(src) == CDragDropMgr::Item::Bookmark) { + CDragDropMgr::Item item = CDragDropMgr::decode(src).first(); + CSwordModuleInfo* m = CPointers::backend()->findModuleByName( item.bookmarkModule() ); + if (m && (module()->type() == m->type())) { //it makes only sense + return true; + } + //but we also allow drops from bibles on commentaries and the other way from commentaries + else if (m && (module()->type() == CSwordModuleInfo::Bible) && (m->type() == CSwordModuleInfo::Commentary)) { + return true; + } + else if (m && (module()->type() == CSwordModuleInfo::Commentary) && (m->type() == CSwordModuleInfo::Bible)) { + return true; + } + } + else if(CDragDropMgr::dndType(src) == CDragDropMgr::Item::Text) { //text drop on a module + return true; + }; + } + return false; //default return value +} + +/** No descriptions */ +void CModuleItem::dropped( QDropEvent* e, QListViewItem* /*after*/) { + /* Something was dropped on a module item + * + * 1. If the drop type is plain text open the searchdialog for this text and start the search + * 2. If the type is Bookmark, open the module at the specified position + * + * We support only the first drop item, more is not useful + */ + + if (acceptDrop(e)) { + CDragDropMgr::ItemList dndItems = CDragDropMgr::decode(e); + CDragDropMgr::Item item = dndItems.first(); + if (CDragDropMgr::dndType(e) == CDragDropMgr::Item::Text) { //open the searchdialog + // qWarning("Text dropped!"); + if ( module() ) { + ListCSwordModuleInfo modules; + modules.append(module()); + + Search::CSearchDialog::openDialog(modules, item.text()); + } + } + else if (CDragDropMgr::dndType(e) == CDragDropMgr::Item::Bookmark) { //open the module + CSwordModuleInfo* m = CPointers::backend()->findModuleByName( item.bookmarkModule() ); + if (m) { //it makes only sense to create a new window for a module with the same type + if ((module()->type() == m->type()) || + ((module()->type() == CSwordModuleInfo::Bible || module()->type() == CSwordModuleInfo::Commentary) + && (m->type() == CSwordModuleInfo::Bible || m->type() == CSwordModuleInfo::Commentary))) { //same base type of module + ListCSwordModuleInfo modules; + modules.append(module()); + + listView()->emitModulesChosen(modules, item.bookmarkKey()); + }; + } + } + }; +} + + +/** Reimplementation. */ +const QString CModuleItem::toolTip() { + return CToolClass::moduleToolTip(module()); +} + +/** Returns the used module. */ +CSwordModuleInfo* const CModuleItem::module() const { + return m_module; +} + +/** Reimplementation from CItemBase. */ +const bool CModuleItem::enableAction( const MenuAction action ) { + if (action == EditModule) { + if (!module()) + return false; + return module()->isWritable(); + } + + if (action == SearchInModules || action == AboutModule) + return true; + if (module()->isEncrypted() && action == UnlockModule) + return true; + return false; +} + +/* ----------------------------------------------*/ +/* ---------- new class: CBookmarkItem ------------*/ +/* ----------------------------------------------*/ + +CBookmarkItem::CBookmarkItem(CFolderBase* parentItem, CSwordModuleInfo* module, const QString& key, const QString& description) +: CItemBase(parentItem), +m_description(description), +m_moduleName(module ? module->name() : QString::null) { + if ((module && (module->type() == CSwordModuleInfo::Bible) || (module->type() == CSwordModuleInfo::Commentary)) ) { + CSwordVerseKey vk(0); + vk = key; + vk.setLocale("en"); + m_key = vk.key(); //the m_key member is always the english key! + } + else { + m_key = key; + }; + + m_startupXML = QDomElement(); //empty XML code +} + +CBookmarkItem::CBookmarkItem(CFolderBase* parentItem, QDomElement& xml ) +: CItemBase(parentItem), +m_key(QString::null), +m_description(QString::null), +m_moduleName(QString::null) { + m_startupXML = xml; +} + +CBookmarkItem::~CBookmarkItem() {} + +/** No descriptions */ +void CBookmarkItem::update() { + setMultiLinesEnabled(true); + setPixmap(0,SmallIcon(CResMgr::mainIndex::bookmark::icon,16)); + + const QString title = QString::fromLatin1("%1 (%2)") + .arg(key()) + .arg(module() ? module()->name() : i18n("unknown")); + setText(0, title); +} + +void CBookmarkItem::init() { + if (!m_startupXML.isNull()) { //we have some XML code to parse + loadFromXML(m_startupXML); + } + + update(); + setDropEnabled(false); + setDragEnabled(false); + + // if (!module()) + // setSelectable(false); +} + +/** Reimplementation. */ +const QString CBookmarkItem::toolTip() { + if (!module()) { + return QString::null; + } + + CSwordBackend::FilterOptions filterOptions = CBTConfig::getFilterOptionDefaults(); + filterOptions.footnotes = false; + filterOptions.scriptureReferences = false; + CPointers::backend()->setFilterOptions(filterOptions); + + QString ret; + util::scoped_ptr k( CSwordKey::createInstance(module()) ); + k->key(this->key()); + + const CLanguageMgr::Language* lang = module()->language(); + CBTConfig::FontSettingsPair fontPair = CBTConfig::get + (lang); + + Q_ASSERT(k.get()); + if (fontPair.first) { //use a special font + qWarning("using a font, %s", fontPair.second.family().latin1()); + ret = QString::fromLatin1("%1 (%2)
%3
%5") + .arg(key()) + .arg(module()->name()) + .arg(description()) + .arg(fontPair.second.family()) + .arg(k->renderedText()); + } + else { + ret = QString::fromLatin1("%1 (%2)
%3
%4") + .arg(key()) + .arg(module()->name()) + .arg(description()) + .arg(k->renderedText()); + } + + return ret; +} + +/** Returns the used module. */ +CSwordModuleInfo* const CBookmarkItem::module() { + CSwordModuleInfo* const m = CPointers::backend()->findModuleByName(m_moduleName); + Q_ASSERT(m); + return m; +} + +/** Returns the used key. */ +const QString CBookmarkItem::key() { + const QString englishKeyName = englishKey(); + if (!module()) { + return englishKeyName; + } + + QString returnKeyName = englishKeyName; + if ((module()->type() == CSwordModuleInfo::Bible) || (module()->type() == CSwordModuleInfo::Commentary)) { + CSwordVerseKey vk(0); + vk = englishKeyName; + vk.setLocale(CPointers::backend()->booknameLanguage().latin1() ); + + returnKeyName = vk.key(); //the returned key is always in the currently set bookname language + } + + return returnKeyName; +} + +/** Returns the used description. */ +const QString& CBookmarkItem::description() { + return m_description; +} + +/** No descriptions */ +const bool CBookmarkItem::isMovable() { + return true; +} + +/** Reimplementation to handle the menu entries of the main index. */ +const bool CBookmarkItem::enableAction(const MenuAction action) { + if (action == ChangeBookmark || (module() && (action == PrintBookmarks)) || action == DeleteEntries) + return true; + + return false; +} + +/** Changes this bookmark. */ +void CBookmarkItem::rename() { + bool ok = false; + const QString newDescription = CInputDialog::getText(i18n("Change description ..."), i18n("Enter a new description for the chosen bookmark."), description(), &ok, listView(), true); + + if (ok) { + m_description = newDescription; + update(); + } +} + +/** Reimplementation of CItemBase::saveToXML. */ +QDomElement CBookmarkItem::saveToXML( QDomDocument& doc ) { + QDomElement elem = doc.createElement("Bookmark"); + + elem.setAttribute("key", englishKey()); + elem.setAttribute("description", description()); + elem.setAttribute("modulename", m_moduleName); + elem.setAttribute("moduledescription", module() ? module()->config(CSwordModuleInfo::Description) : QString::null); + + return elem; +} + +void CBookmarkItem::loadFromXML( QDomElement& element ) { + if (element.isNull()) + return; + + //find the right module + if (element.hasAttribute("modulename")) { + //we use the name in all cases, even if the module isn't installed anymore + m_moduleName = element.attribute("modulename"); + } + + if (element.hasAttribute("key")) { + m_key = element.attribute("key"); + } + + if (element.hasAttribute("description")) { + m_description = element.attribute("description"); + } +} + +/** Returns the english key. */ +const QString& CBookmarkItem::englishKey() const { + return m_key; +} + +/** Reimplementation. Returns false everytime because a bookmarks has not possible drops. */ +bool CBookmarkItem::acceptDrop(const QMimeSource* /*src*/) const { + return false; +} + +/****************************************/ +/***** class: CItemFolder *************/ +/****************************************/ + +CFolderBase::CFolderBase(CMainIndex* mainIndex, const Type type) : CItemBase(mainIndex, type) {} + +CFolderBase::CFolderBase(CFolderBase* parentItem, const Type type) : CItemBase(parentItem, type) {} + +CFolderBase::CFolderBase(CFolderBase* parentFolder, const QString& caption) : CItemBase(parentFolder) { + setText(0, caption); +} + +CFolderBase::~CFolderBase() {} + +const bool CFolderBase::isFolder() { + return true; +} + +void CFolderBase::update() { + CItemBase::update(); + if (isOpen() && childCount()) + setPixmap(0, SmallIcon(CResMgr::mainIndex::openedFolder::icon, 16)); + else + setPixmap(0, SmallIcon(CResMgr::mainIndex::closedFolder::icon, 16)); +} + +void CFolderBase::init() { + CItemBase::init(); + setDropEnabled(false); + setDragEnabled(false); +} + +/** No descriptions */ +void CFolderBase::setOpen( bool open ) { + KListViewItem::setOpen(open); + update(); +} + +/** The function which renames this folder. */ +void CFolderBase::rename() { + startRename(0); +} + +/** Creates a new sub folder of this folder. */ +void CFolderBase::newSubFolder() { + if (dynamic_cast(this) || dynamic_cast(this) ) { + Bookmarks::SubFolder* f = new Bookmarks::SubFolder(this, i18n("New folder")); + f->init(); + + listView()->setCurrentItem(f); + listView()->ensureItemVisible(f); + f->rename(); + } +} + +/** Reimplementation. Returns true if the drop is accepted. */ +const bool CFolderBase::allowAutoOpen( const QMimeSource* ) const { + return true; +} + +/** Reimplementation. Returns false because folders have no use for drops (except for the bookmark folders) */ +bool CFolderBase::acceptDrop(const QMimeSource*) const { + return false; +} + +QPtrList CFolderBase::getChildList() { + QPtrList childs; + if (!childCount()) //no childs available + return childs; + + QListViewItem* i = firstChild(); + while (i && (i->parent() == this)) { + CItemBase* item = dynamic_cast(i); + if (item) { //we found a valid item + childs.append(item); + + CFolderBase* folder = dynamic_cast(i); + if (folder) { + QPtrList subChilds = folder->getChildList(); + for (QListViewItem* ci = subChilds.first(); ci; ci = subChilds.next()) { + childs.append(ci); + } + } + } + + do { + i = i->nextSibling(); + } + while (i && (i->parent() != this)); + } + + return childs; +} + +/****************************************/ +/***** class: CTreeFolder *************/ +/****************************************/ + + +CTreeFolder::CTreeFolder(CMainIndex* mainIndex, const Type type, const QString& language) : CFolderBase(mainIndex, type) { + m_language = language; +} + +CTreeFolder::CTreeFolder(CFolderBase* item, const Type type, const QString& language) : CFolderBase(item, type) { + m_language = language; +} + +CTreeFolder::~CTreeFolder() {} + +void CTreeFolder::addGroup(const Type type, const QString language) { + CTreeFolder* i = 0; + if (type == BookmarkFolder) { + i = new CBookmarkFolder(this); + } + else if (type == OldBookmarkFolder) { + i = new Bookmarks::OldBookmarksFolder(this); + } + else { + i = new CTreeFolder(this, type, language); + } + i->init(); + if (!i->childCount()) + delete i; +} + +void CTreeFolder::addModule(CSwordModuleInfo* const module) { + CModuleItem* i = new CModuleItem(this, module); + i->init(); +} + +void CTreeFolder::addBookmark(CSwordModuleInfo* module, const QString& key, const QString& description) { + CBookmarkItem* i = new CBookmarkItem(this, module, key, description); + i->init(); +} + +void CTreeFolder::update() { + CFolderBase::update(); +} + +void CTreeFolder::init() { + if (language() == "*") { + switch (type()) { + case BibleModuleFolder: + setText(0,i18n("Bibles")); + break; + case CommentaryModuleFolder: + setText(0,i18n("Commentaries")); + break; + case LexiconModuleFolder: + setText(0,i18n("Lexicons")); + break; + case BookModuleFolder: + setText(0,i18n("Books")); + break; + case DevotionalModuleFolder: + setText(0,i18n("Daily devotionals")); + break; + case GlossaryModuleFolder: + setText(0,i18n("Glossaries")); + break; + case BookmarkFolder: + setText(0,i18n("Bookmarks")); + break; + case OldBookmarkFolder: + setText(0,i18n("Old bookmarks")); + break; + default: + setText(0, i18n("Unknown")); + break; + }; + } + else { + const CLanguageMgr::Language* const lang = CPointers::languageMgr()->languageForAbbrev( language() ); + +setText(0, !language().isEmpty() ? ( lang->isValid() ? lang->translatedName() : language()) : i18n("Unknown language")); + } + initTree(); + update(); +} + +void CTreeFolder::initTree() { + // qWarning("CTreeMgr::initTree"); + if (type() == Unknown) + return; + + CSwordModuleInfo::ModuleType moduleType = CSwordModuleInfo::Unknown; + if (type() == BibleModuleFolder) + moduleType = CSwordModuleInfo::Bible; + else if (type() == CommentaryModuleFolder) + moduleType = CSwordModuleInfo::Commentary; + else if (type() == LexiconModuleFolder || type() == GlossaryModuleFolder || type() == DevotionalModuleFolder) + moduleType = CSwordModuleInfo::Lexicon; + else if (type() == BookModuleFolder) + moduleType = CSwordModuleInfo::GenericBook; + + //get all modules by using the given type + ListCSwordModuleInfo allModules =CPointers::backend()->moduleList(); + ListCSwordModuleInfo usedModules; + ListCSwordModuleInfo::iterator end_it = allModules.end(); + for (ListCSwordModuleInfo::iterator it(allModules.begin()); it != end_it; ++it) { + // for (CSwordModuleInfo* m = allModules.first(); m; m = allModules.next()) { + if ((*it)->type() == moduleType) { //found a module, check if the type is correct (devotional etc.) + if (type() == GlossaryModuleFolder && !(*it)->category() == CSwordModuleInfo::Glossary) { //not a gglossary + continue; + } + if (type() == DevotionalModuleFolder && ((*it)->category() != CSwordModuleInfo::DailyDevotional)) {//not a devotional + continue; + } + if (type() == LexiconModuleFolder && ( ((*it)->category() == CSwordModuleInfo::DailyDevotional) || ((*it)->category() == CSwordModuleInfo::Glossary) )) { + //while looking for lexicons glossaries and devotionals shouldn't be used + continue; + } + + if (language() == QString::fromLatin1("*") || (language() != QString::fromLatin1("*") && QString::fromLatin1((*it)->module()->Lang()) == language()) )//right type and language! + usedModules.append(*it); + } + } + + //we have now all modules we want to have + if (language() == QString::fromLatin1("*")) { //create subfolders for each language + QStringList usedLangs; + // for (CSwordModuleInfo* m = usedModules.first(); m; m = usedModules.next()) { + /*ListCSwordModuleInfo::iterator*/ + end_it = usedModules.end(); + for (ListCSwordModuleInfo::iterator it(usedModules.begin()); it != end_it; ++it) { + QString lang = QString::fromLatin1((*it)->module()->Lang()); + // if (lang.isEmpty()) + // lang = "); + if (!usedLangs.contains(lang)) { + usedLangs.append(lang); + } + } + + //ToDo:: Optimize the loop with const itrs + QStringList::iterator lang_it; + for (lang_it = usedLangs.begin(); lang_it != usedLangs.end(); ++lang_it) { + addGroup(/**lang_it,*/ type(), *lang_it); + } + } + else if (usedModules.count() > 0) { //create subitems with the given type and language + /*ListCSwordModuleInfo::iterator*/ end_it = usedModules.end(); + for (ListCSwordModuleInfo::iterator it(usedModules.begin()); it != end_it; ++it) { + // for (CSwordModuleInfo* m = usedModules.first(); m; m = usedModules.next()) { + addModule(*it); + } + } + + sortChildItems(0,true); +} + +const QString& CTreeFolder::language() const { + return m_language; +}; + +/* --------------------------------------------------*/ +/* ---------- new class: CBookmarkFolder::SubFolder--*/ +/* --------------------------------------------------*/ + +namespace Bookmarks { + /* --------------------------------------------------------------------------*/ + /* ---------- new class: CBookmarkFolder::OldBookmarkImport -----------------*/ + /* --------------------------------------------------------------------------*/ + const QString OldBookmarkImport::oldBookmarksXML( const QString& configFileName ) { + QString fileName = (configFileName.isEmpty()) ? "bt-groupmanager" : configFileName; + KConfig* config = new KSimpleConfig( fileName ); + + KConfigGroupSaver groupSaver(config, configFileName.isEmpty() ? "Groupmanager" : "Bookmarks"); + + QDomDocument doc("DOC"); + doc.appendChild( doc.createProcessingInstruction( "xml", "version=\"1.0\" encoding=\"UTF-8\"" ) ); + + QDomElement content = doc.createElement("SwordBookmarks"); + content.setAttribute("syntaxVersion", CURRENT_SYNTAX_VERSION); + doc.appendChild(content); + + //first create the bookmark groups in the XML document, then add the bookmarks to each parent + QMap parentMap; //maps parent ids to dom elements + + + QStringList groupList = config->readListEntry("Groups"); + QValueList parentList = config->readIntListEntry("Group parents"); + + QStringList::Iterator it_groups = groupList.begin(); + QValueList::Iterator it_parents = parentList.begin(); + + int parentIDCounter = 0; + while ( (it_groups != groupList.end()) && (it_parents != parentList.end()) ) { + QDomElement parentElement = (*it_parents == -1) ? content : parentMap[*it_parents]; + if (parentElement.isNull()) { + qWarning("EMPTY PARENT FOUND!"); + parentElement = content; + }; + + QDomElement elem = doc.createElement("Folder"); + elem.setAttribute("caption", (*it_groups)); + parentMap.insert(parentIDCounter, elem); + + parentElement.appendChild( elem ); + + + ++it_parents; + ++it_groups; + ++parentIDCounter; + } + + //groups are now read in, create now the bookmarks + parentList = config->readIntListEntry("Bookmark parents"); + QStringList bookmarkList = config->readListEntry("Bookmarks"); + QStringList bookmarkModulesList = config->readListEntry("Bookmark modules"); + QStringList bookmarkDescriptionsList = config->readListEntry("Bookmark descriptions"); + + it_parents = parentList.begin(); + QStringList::Iterator it_bookmarks = bookmarkList.begin(); + QStringList::Iterator it_modules = bookmarkModulesList.begin(); + QStringList::Iterator it_descriptions = bookmarkDescriptionsList.begin(); + + while ( it_bookmarks != bookmarkList.end() + && it_parents != parentList.end() + && it_modules != bookmarkModulesList.end() + ) { + QDomElement parentElement = ((*it_parents) == -1) ? content : parentMap[(*it_parents)]; + if (parentElement.isNull()) { + qWarning("EMPTY PARENT FOUND!"); + parentElement = content; + }; + QDomElement elem = doc.createElement("Bookmark"); + + elem.setAttribute("key", *it_bookmarks); + elem.setAttribute("description", *it_descriptions); + elem.setAttribute("modulename", *it_modules); + + CSwordModuleInfo* m = CPointers::backend()->findModuleByName( *it_modules ); + elem.setAttribute("moduledescription", m ? m->config(CSwordModuleInfo::Description) : QString::null); + + parentElement.appendChild( elem ); + + + ++it_parents; + ++it_modules; + ++it_descriptions; + ++it_bookmarks; + }; + + return doc.toString(); + }; + + /******************** + * New class: OldBookmarkFolder + *********************/ + +OldBookmarksFolder::OldBookmarksFolder(CTreeFolder* folder) : CBookmarkFolder(folder, OldBookmarkFolder) {} + + OldBookmarksFolder::~OldBookmarksFolder() {} + + /** Reimplementation to handle special bookmark tree. */ + void OldBookmarksFolder::initTree() { + // Import the bookmarks of the previous BibleTime versions + if (!CBTConfig::get + ( CBTConfig::readOldBookmarks )) { //if we havn't yet loaded the old bookmarks + loadBookmarksFromXML( Bookmarks::OldBookmarkImport::oldBookmarksXML() ); + } + } + + + QDomElement OldBookmarksFolder::saveToXML( QDomDocument& doc ) { + QDomElement elem = doc.createElement("Folder"); + elem.setAttribute("caption", text(0)); + + // Append the XML nodes of all child items + CItemBase* i = dynamic_cast(firstChild()); + while( i ) { + if (i->parent() == this) { + QDomElement newElem = i->saveToXML( doc ); + if (!newElem.isNull()) { + elem.appendChild( newElem ); //append to this folder + } + } + i = dynamic_cast( i->nextSibling() ); + } + + // Save to config, that we imported the old bookmarks and that we have them on disk + CBTConfig::set + ( CBTConfig::readOldBookmarks, true ); + + return elem; + } + + void OldBookmarksFolder::loadFromXML( QDomElement& /*element*/ ) { + //this function is empty because the folder imports the old 1.2 bookmarks from the bt-groupmanager config file + } + + + // New class SubFolder + +SubFolder::SubFolder(CFolderBase* parentItem, const QString& caption) : CBookmarkFolder(parentItem, BookmarkFolder) { + m_startupXML = QDomElement(); + setText( 0, caption ); + } + +SubFolder::SubFolder(CFolderBase* parentItem, QDomElement& xml ) : CBookmarkFolder(parentItem, BookmarkFolder) { + m_startupXML = xml; + } + + SubFolder::~SubFolder() {} + + void SubFolder::init() { + CFolderBase::init(); + if (!m_startupXML.isNull()) + loadFromXML(m_startupXML); + + setDropEnabled(true); + setRenameEnabled(0,true); + } + + /** Reimplementation from CItemBase. */ + const bool SubFolder::enableAction(const MenuAction action) { + if (action == ChangeFolder || action == NewFolder || action == DeleteEntries || action == ImportBookmarks ) + return true; + + if (action == ExportBookmarks || action == ImportBookmarks ) + return true; //not yet implemented + + if ((action == PrintBookmarks) && childCount()){ + CPrinter::KeyTree tree; + CPrinter::KeyTreeItem::Settings settings; + + QPtrList items = getChildList(); + + //create a tree of keytreeitems using the bookmark hierarchy. + for (items.first(); items.current(); items.next()) { + CBookmarkItem* i = dynamic_cast(items.current()); + if (i) { + tree.append( new CPrinter::KeyTreeItem( i->key(), i->module(), settings ) ); + } + } + return tree.collectModules().count() > 0; + } + + return false; + } + + /** Returns the XML code which represents the content of this folder. */ + QDomElement SubFolder::saveToXML( QDomDocument& doc ) { + /** + * Save all subitems (bookmarks and folders) to the XML file. + * We get the XML code for the items by calling their own saveToXML implementations. + */ + QDomElement elem = doc.createElement("Folder"); + elem.setAttribute("caption", text(0)); + + //append the XML nodes of all child items + CItemBase* i = dynamic_cast(firstChild()); + while( i ) { + if (i->parent() == this) { + QDomElement newElem = i->saveToXML( doc ); + if (!newElem.isNull()) { + elem.appendChild( newElem ); //append to this folder + } + } + i = dynamic_cast( i->nextSibling() ); + } + return elem; + } + + /** Loads the content of this folder from the XML code passed as argument to this function. */ + void SubFolder::loadFromXML( QDomElement& elem ) { + //get the caption and restore all child items! + if (elem.hasAttribute("caption")) + setText(0, elem.attribute("caption")); + + //restore all child items + QDomElement child = elem.firstChild().toElement(); + CItemBase* oldItem = 0; + while ( !child.isNull() && child.parentNode() == elem ) { + CItemBase* i = 0; + if (child.tagName() == "Folder") { + i = new Bookmarks::SubFolder(this, child); + } + else if (child.tagName() == "Bookmark") { + i = new CBookmarkItem(this, child); + } + i->init(); + if (oldItem) + i->moveAfter(oldItem); + oldItem = i; + + child = child.nextSibling().toElement(); + } + } +}; + + +/* --------------------------------------------------*/ +/* ---------- new class: CBookmarkFolder ------------*/ +/* --------------------------------------------------*/ + +CBookmarkFolder::CBookmarkFolder(CMainIndex* mainIndex, const Type type) : CTreeFolder(mainIndex, type, "*") { + setSortingEnabled(false); +} + +CBookmarkFolder::CBookmarkFolder(CFolderBase* parentItem, const Type type) : CTreeFolder(parentItem, type, "*") { + setSortingEnabled(false); +} + +CBookmarkFolder::~CBookmarkFolder() {} + +void CBookmarkFolder::initTree() { + addGroup(OldBookmarkFolder, "*"); + + KStandardDirs stdDirs; + const QString path = stdDirs.saveLocation("data", "bibletime/"); + if (!path.isEmpty()) { + loadBookmarks(path + "bookmarks.xml"); + } +} + +/** Reimplementation. */ +const bool CBookmarkFolder::enableAction(const MenuAction action) { + if ((action == NewFolder) || (action == ImportBookmarks)) + return true; + + if ((action == ExportBookmarks) && childCount()) + return true; + + if ((action == PrintBookmarks) && childCount()) + return true; + + return false; +} + + +void CBookmarkFolder::exportBookmarks() { + QString fileName = KFileDialog::getSaveFileName(QString::null, i18n("*.btb | BibleTime bookmark files (*.btb)\n*.* | All files (*.*)"), 0, i18n("BibleTime - Export bookmarks")); + if (!fileName.isEmpty()) { + saveBookmarks( fileName, false ); //false means we don't want to overwrite the file without asking the user + }; +} + + +void CBookmarkFolder::importBookmarks() { + QString fileName = KFileDialog::getOpenFileName(QString::null, i18n("*.btb | BibleTime bookmark files (*.btb)\n*.* | All files (*.*)"), 0, i18n("BibleTime - Import bookmarks")); + if (!fileName.isEmpty()) { + //we have to decide if we should load an old bookmark file from 1.2 or earlier or the new XML format of > 1.3 + if ( !loadBookmarks(fileName) ) { //if this failed try to load it as old bookmark file + loadBookmarksFromXML( Bookmarks::OldBookmarkImport::oldBookmarksXML( fileName ) ); + }; + }; +} + +bool CBookmarkFolder::acceptDrop(const QMimeSource * src) const { + // qWarning("bool CBookmarkFolder::acceptDrop(const QMimeSource * src): return%ii", (CDragDropMgr::canDecode(src) && (CDragDropMgr::dndType(src) == CDragDropMgr::Item::Bookmark))); + + return CDragDropMgr::canDecode(src) + && (CDragDropMgr::dndType(src) == CDragDropMgr::Item::Bookmark); +} + +void CBookmarkFolder::dropped(QDropEvent *e, QListViewItem* after) { + if (acceptDrop(e)) { + CDragDropMgr::ItemList dndItems = CDragDropMgr::decode(e); + CDragDropMgr::ItemList::Iterator it; + CItemBase* previousItem = dynamic_cast(after); + + for( it = dndItems.begin(); it != dndItems.end(); ++it) { + CSwordModuleInfo* module = CPointers::backend()->findModuleByName( + (*it).bookmarkModule() + ); + + CBookmarkItem* i = new CBookmarkItem( + this, + module, + (*it).bookmarkKey(), + (*it).bookmarkDescription() + ); + + if (previousItem) { + i->moveAfter( previousItem ); + } + + i->init(); + previousItem = i; + }; + }; +} + +/** Saves the bookmarks in a file. */ +const bool CBookmarkFolder::saveBookmarks( const QString& filename, const bool& forceOverwrite ) { + QDomDocument doc("DOC"); + doc.appendChild( doc.createProcessingInstruction( "xml", "version=\"1.0\" encoding=\"UTF-8\"" ) ); + + QDomElement content = doc.createElement("SwordBookmarks"); + content.setAttribute("syntaxVersion", CURRENT_SYNTAX_VERSION); + doc.appendChild(content); + + //append the XML nodes of all child items + CItemBase* i = dynamic_cast( firstChild() ); + while( i ) { + if (i->parent() == this) { //only one level under this folder + QDomElement newElem = i->saveToXML( doc ); // the cild creates it's own XML code + if (!newElem.isNull()) { + content.appendChild( newElem ); //append to this folder + } + } + i = dynamic_cast( i->nextSibling() ); + } + + return CToolClass::savePlainFile(filename, doc.toString(), forceOverwrite, QTextStream::UnicodeUTF8); +} + +const bool CBookmarkFolder::loadBookmarksFromXML( const QString& xml ) { + QDomDocument doc; + doc.setContent(xml); + QDomElement document = doc.documentElement(); + if( document.tagName() != "SwordBookmarks" ) { + qWarning("Not a BibleTime Bookmark XML file"); + return false; + } + + CItemBase* oldItem = 0; + //restore all child items + QDomElement child = document.firstChild().toElement(); + while ( !child.isNull() && child.parentNode() == document) { + CItemBase* i = 0; + if (child.tagName() == "Folder") { + i = new Bookmarks::SubFolder(this, child); + } + else if (child.tagName() == "Bookmark") { + i = new CBookmarkItem(this, child); + } + if (!i) { + break; + } + + i->init(); + if (oldItem) { + i->moveAfter(oldItem); + } + oldItem = i; + + if (!child.nextSibling().isNull()) { + child = child.nextSibling().toElement(); + } + else { + break; + } + } + return true; +} + +/** Loads bookmarks from a file. */ +const bool CBookmarkFolder::loadBookmarks( const QString& filename ) { + QFile file(filename); + if (!file.exists()) + return false; + + QString xml; + if (file.open(IO_ReadOnly)) { + QTextStream t; + t.setEncoding(QTextStream::UnicodeUTF8); //set encoding before file is used for input! + t.setDevice(&file); + xml = t.read(); + file.close(); + } + + return loadBookmarksFromXML( xml ); +} + +/* NEW CLASS */ + +CGlossaryFolder::CGlossaryFolder(CMainIndex* mainIndex, const Type type, const QString& fromLanguage, const QString& toLanguage) +: CTreeFolder(mainIndex, type, fromLanguage) { + m_fromLanguage = fromLanguage; + m_toLanguage = toLanguage; +} + +CGlossaryFolder::CGlossaryFolder(CFolderBase* item, const Type type, const QString& fromLanguage, const QString& toLanguage) +: CTreeFolder(item, type, fromLanguage) { + m_fromLanguage = fromLanguage; + m_toLanguage = toLanguage; +} + +CGlossaryFolder::~CGlossaryFolder() {} + +void CGlossaryFolder::initTree() { + if (type() == Unknown) + return; + + //get all modules by using the lexicon type + ListCSwordModuleInfo allModules =CPointers::backend()->moduleList(); + ListCSwordModuleInfo usedModules; + // for (CSwordModuleInfo* m = allModules.first(); m; m = allModules.next()) { + + ListCSwordModuleInfo::iterator end_it = allModules.end(); + for (ListCSwordModuleInfo::iterator it(allModules.begin()); it != end_it; ++it) { + if ((*it)->type() == CSwordModuleInfo::Lexicon) { //found a module, check if the type is correct (devotional etc.) + if ((type() == GlossaryModuleFolder) && ((*it)->category() != CSwordModuleInfo::Glossary)) { //not a glossary + continue; + } + //found a glossary + //ToDo: this is ugly code + if (language() == QString::fromLatin1("*") + || (language() != QString::fromLatin1("*") + && (*it)->config(CSwordModuleInfo::GlossaryFrom) == fromLanguage() + && (*it)->config(CSwordModuleInfo::GlossaryTo) == toLanguage() + ) + ) { //right type and language! + usedModules.append(*it); + } + } + } + + //we have now all modules we want to have + if (language() == QString::fromLatin1("*")) { //create subfolders for each language + typedef std::pair LanguagePair; + typedef QValueList LanguagePairList; + + LanguagePairList usedLangs; + // for (CSwordModuleInfo* m = usedModules.first(); m; m = usedModules.next()) { + ListCSwordModuleInfo::iterator end_it = usedModules.end(); + for (ListCSwordModuleInfo::iterator it(usedModules.begin()); it != end_it; ++it) { + LanguagePair langPair( + (*it)->config(CSwordModuleInfo::GlossaryFrom), + (*it)->config(CSwordModuleInfo::GlossaryTo) + ); + + if (!usedLangs.contains(langPair)) { + usedLangs.append(langPair); + } + } + + LanguagePairList::iterator lang_it; + for (lang_it = usedLangs.begin(); lang_it != usedLangs.end(); ++lang_it) { + addGroup(type(), (*lang_it).first, (*lang_it).second); + } + } + else if (usedModules.count() > 0) { //create subitems with the given type and languages + // for (CSwordModuleInfo* m = usedModules.first(); m; m = usedModules.next()) { + ListCSwordModuleInfo::iterator end_it = usedModules.end(); + for (ListCSwordModuleInfo::iterator it(usedModules.begin()); it != end_it; ++it) { + addModule(*it); + } + } + + sortChildItems(0,true); +} + +void CGlossaryFolder::init() { + if (language() == "*") { + setText(0,i18n("Glossaries")); + } + else { + const CLanguageMgr::Language* const fromLang = CPointers::languageMgr()->languageForAbbrev( m_fromLanguage ); + const CLanguageMgr::Language* const toLang = CPointers::languageMgr()->languageForAbbrev( m_toLanguage ); + + QString fromLangString = fromLang->translatedName(); + QString toLangString = toLang->translatedName(); + + if (fromLangString.isEmpty()) { //use abbrev! + fromLangString = m_fromLanguage; + }; + if (toLangString.isEmpty()) { //use abbrev! + toLangString = m_toLanguage; + }; + + setText(0, fromLangString + " - " + toLangString ); + } + initTree(); + update(); +} + +/** Returns the language this glossary folder maps from. */ +const QString& CGlossaryFolder::fromLanguage() const { + return m_fromLanguage; +} + +/** Returns the language this glossary folder maps to. */ +const QString& CGlossaryFolder::toLanguage() const { + return m_toLanguage; +} + +void CGlossaryFolder::addGroup(const Type type, const QString& fromLanguage, const QString& toLanguage) { + CTreeFolder* i = new CGlossaryFolder(this, type, fromLanguage, toLanguage); + i->init(); + if (!i->childCount()) { + delete i; + } +} + diff --git a/bibletime/frontend/mainindex/cindexitem.h b/bibletime/frontend/mainindex/cindexitem.h new file mode 100644 index 0000000..ab7de5e --- /dev/null +++ b/bibletime/frontend/mainindex/cindexitem.h @@ -0,0 +1,390 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CINDEXITEM_H +#define CINDEXITEM_H + +//BibleTime includes +#include "util/cpointers.h" + +#include "backend/cswordmoduleinfo.h" + +//Qt includes +#include + +//KDE includes +#include + +class KConfig; +class CFolderBase; +class CTreeFolder; +class CMainIndex; + +class CItemBase : public KListViewItem/*, public CPointers */ { +public: + enum Type { + Unknown = 0, + BookmarkFolder, + Bookmark, + OldBookmarkFolder, /* Bookmarks in the old format from BibleTime 1.1.x and 1.2.x */ + BibleModuleFolder, + CommentaryModuleFolder, + LexiconModuleFolder, + BookModuleFolder, + DevotionalModuleFolder, + GlossaryModuleFolder, + ModuleLanguageFolder, + Module + }; + enum MenuAction { + NewFolder = 0, + ChangeFolder, + + ChangeBookmark, + ImportBookmarks, + ExportBookmarks, + PrintBookmarks, + + DeleteEntries, + + EditModule, + SearchInModules, + UnlockModule, + AboutModule, + + ActionBegin = NewFolder, + ActionEnd = AboutModule + }; + + CItemBase(CMainIndex* mainIndex, const Type type = Unknown); + CItemBase(CItemBase* item, const Type type = Unknown); + virtual ~CItemBase(); + + virtual const QString toolTip(); + virtual CMainIndex* listView() const; + /** + * Returns if the implementation of this class is a folder item or not. + * Reimplement this function to return the correct value. + */ + virtual const bool isFolder() { + return false; + }; + const Type& type() const; + + virtual void init(); + virtual void update(); + void moveAfter( CItemBase* const item ); + /** + * Returns true if the given action should be enabled in the popup menu. + */ + virtual const bool enableAction( const MenuAction action ); + virtual const bool isMovable(); + + /** + * Returns the XML code which represents the content of this folder. + */ + virtual QDomElement saveToXML( QDomDocument& /*document*/ ) { + return QDomElement(); + }; + /** + * Loads the content of this folder from the XML code passed as argument to this function. + */ + virtual void loadFromXML( QDomElement& /*element*/ ) {} + ; + /** + * Returns true whether the sorting is enabled or not. + */ + const bool isSortingEnabled(); + /** + * This function engables or disables sorting depending on the parameter. + */ + void setSortingEnabled( const bool& enableSorting ); + /** + * Reimplementation which takes care of the our isSortingEnabled() setting. + */ + virtual void sortChildItems( int col, bool asc ); + /** + * Reimplementation which takes care of the our isSortingEnabled() setting. + */ + virtual void sort(); + +protected: + friend class CMainIndex; + + /** Reimplementation which uses our extended version of dropped (see below). + */ + virtual void dropped( QDropEvent* e) { + dropped(e,0); + }; + /** Our extended version of the dropped method to include a item above the point we dropped the stuff. + */ + virtual void dropped( QDropEvent* /*e*/, QListViewItem* /*after*/) {} + ; + /** + * Reimplementation. Returns true if the auto opening of this folder is allowd + * The default return value is "false" + */ + virtual const bool allowAutoOpen( const QMimeSource* src ) const; + +private: + Type m_type; + bool m_sortingEnabled; +}; + +class CModuleItem : public CItemBase { +public: + CModuleItem(CTreeFolder* item, CSwordModuleInfo* module); + virtual ~CModuleItem(); + virtual CSwordModuleInfo* const module() const; + virtual const QString toolTip(); + + /** + * Reimplementation from CItemBase. + */ + virtual const bool enableAction( const MenuAction action ); + virtual void update(); + virtual void init(); + +protected: // Protected methods + /** + * Reimplementation to handle text drops on a module. + * In this case open the searchdialog. In the case of a referebnce open the module at the given position. + */ + virtual bool acceptDrop( const QMimeSource* src ) const; + virtual void dropped( QDropEvent* e, QListViewItem* after ); + +private: + CSwordModuleInfo* m_module; +}; + +class CBookmarkItem : public CItemBase { +public: + CBookmarkItem(CFolderBase* parentItem, CSwordModuleInfo* module, const QString& key, const QString& description); + CBookmarkItem(CFolderBase* parentItem, QDomElement& xml); + virtual ~CBookmarkItem(); + CSwordModuleInfo* const module(); + const QString key(); + const QString& description(); + virtual const QString toolTip(); + + //virtual int compare( QListViewItem * i, int col, bool ascending ) const; + + virtual void update(); + virtual void init(); + virtual const bool isMovable(); + /** + * Reimplementation to handle the menu entries of the main index. + */ + virtual const bool enableAction(const MenuAction action); + /** + * Prints this bookmark. + */ + // void print(); + /** + * Changes this bookmark. + */ + void rename(); + /** + * Reimplementation of CItemBase::saveToXML. + */ + virtual QDomElement saveToXML( QDomDocument& document ); + /** + * Loads the content of this folder from the XML code passed as argument to this function. + */ + virtual void loadFromXML( QDomElement& element ); + +private: + QString m_key; + QString m_description; + QString m_moduleName; + + QDomElement m_startupXML; + +protected: // Protected methods + /** + * Reimplementation. Returns false everytime + * because a bookmarks + * has not possible drops. + */ + virtual bool acceptDrop(const QMimeSource * src) const; + +private: // Private methods + /** + * Returns the english key. + * Only used internal of this class implementation. + */ + const QString& englishKey() const; +}; + + +class CFolderBase : public CItemBase { +public: + CFolderBase(CMainIndex* mainIndex, const Type type); + CFolderBase(CFolderBase* parentFolder, const Type type); + CFolderBase(CFolderBase* parentFolder, const QString& caption); + virtual ~CFolderBase(); + + virtual const bool isFolder(); + + virtual void update(); + virtual void init(); + virtual void setOpen( bool open ); + /** + * The function which renames this folder. + */ + void rename(); + virtual void newSubFolder(); + + QPtrList getChildList(); + +protected: + /** + * Reimplementation. Returns true if the auto opening of this folder is allowd + */ + virtual const bool allowAutoOpen( const QMimeSource* src ) const; + /** + * Reimplementation. Returns false because folders have no use for drops + * (except for the bookmark folders) + */ + bool acceptDrop(const QMimeSource * src) const; +}; + +/** The base class for all items in the tree. Subclasses for module folders, modules and bookmarks exist. + * @author The BibleTime team + */ +class CTreeFolder : public CFolderBase { +public: + CTreeFolder(CMainIndex* mainIndex, const Type type, const QString& language ); + CTreeFolder(CFolderBase* parentFolder, const Type type, const QString& language ); + virtual ~CTreeFolder(); + + virtual void addGroup(const Type type, const QString language); + virtual void addModule(CSwordModuleInfo* const); + virtual void addBookmark(CSwordModuleInfo* module, const QString& key, const QString& description); + + virtual void initTree(); + + virtual void update(); + virtual void init(); + + virtual const QString& language() const; + +private: + QString m_language; +}; + +class CGlossaryFolder : public CTreeFolder { +public: + CGlossaryFolder(CMainIndex* mainIndex, const Type type, const QString& fromLanguage, const QString& toLanguage ); + CGlossaryFolder(CFolderBase* parentFolder, const Type type, const QString& fromLanguage, const QString& toLanguage ); + virtual ~CGlossaryFolder(); + + virtual void initTree(); + virtual void init(); + virtual void addGroup(const Type /*type*/, const QString& /*fromLanguage*/) {} + ; //standard reimpl to overload the old one right + virtual void addGroup(const Type type, const QString& fromLanguage, const QString& toLanguage); + /** + * Returns the language this glossary folder maps from. + */ + const QString& fromLanguage() const; + /** + * Returns the language this glossary folder maps from. + */ + const QString& toLanguage() const; + +private: + QString m_fromLanguage; + QString m_toLanguage; +}; + +class CBookmarkFolder : public CTreeFolder { +public: + CBookmarkFolder(CMainIndex* mainIndex, const Type type = BookmarkFolder); + CBookmarkFolder(CFolderBase* parentItem, const Type type = BookmarkFolder); + virtual ~CBookmarkFolder(); + virtual const bool enableAction(const MenuAction action); + virtual void exportBookmarks(); + virtual void importBookmarks(); + virtual bool acceptDrop(const QMimeSource * src) const; + virtual void dropped(QDropEvent *e, QListViewItem* after); + + /** + * Loads bookmarks from XML content + */ + const bool loadBookmarksFromXML( const QString& xml ); + /** + * Loads bookmarks from a file. + */ + const bool loadBookmarks( const QString& ); + /** + * Saves the bookmarks in a file. + */ + const bool saveBookmarks( const QString& filename, const bool& forceOverwrite = true ); + +protected: // Protected methods + virtual void initTree(); +}; + + +namespace Bookmarks { +class OldBookmarksFolder : public CBookmarkFolder { +public: + OldBookmarksFolder(CTreeFolder* item); + virtual ~OldBookmarksFolder(); + virtual void initTree(); + /** + * Returns the XML code which represents the content of this folder. + */ + virtual QDomElement saveToXML( QDomDocument& document ); + /** + * Loads the content of this folder from the XML code passed as argument to this function. + */ + virtual void loadFromXML( QDomElement& element ); + }; + + class OldBookmarkImport { +public: + /** + * This function converts the old config based bookmarks into a valid 1.3 XML file, so importing is easy + */ + static const QString oldBookmarksXML( const QString& configFileName = QString::null ); +private: + // made provate because we offer one static functions which doesn't need constructor and destructor + OldBookmarkImport(); + virtual ~OldBookmarkImport(); + }; + +class SubFolder : public CBookmarkFolder { +public: + SubFolder(CFolderBase* parentItem, const QString& caption); + SubFolder(CFolderBase* parentItem, QDomElement& xml); + virtual ~SubFolder(); + virtual void init(); + /** + * Reimplementation from CItemBase. + */ + const bool enableAction(const MenuAction action); + /** + * Returns the XML code which represents the content of this folder. + */ + virtual QDomElement saveToXML( QDomDocument& document ); + /** + * Loads the content of this folder from the XML code passed as argument to this function. + */ + virtual void loadFromXML( QDomElement& element ); + +private: + QDomElement m_startupXML; + }; +} //end of namespace Bookmarks + +#endif diff --git a/bibletime/frontend/mainindex/cmainindex.cpp b/bibletime/frontend/mainindex/cmainindex.cpp new file mode 100644 index 0000000..b6c2e41 --- /dev/null +++ b/bibletime/frontend/mainindex/cmainindex.cpp @@ -0,0 +1,869 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//BibleTime includes +#include "cmainindex.h" +#include "cindexitem.h" + +#include "backend/creferencemanager.h" +#include "backend/cswordmoduleinfo.h" + +#include "frontend/searchdialog/csearchdialog.h" +#include "frontend/cbtconfig.h" +#include "frontend/cdragdropmgr.h" +#include "frontend/cinfodisplay.h" + +#include "frontend/cprinter.h" + +#include "util/cresmgr.h" +#include "util/scoped_resource.h" + +//Qt includes +#include +#include +#include +#include +#include + +//KDE includes +#include +#include +#include +#include +#include + +using namespace Printing; + +CMainIndex::ToolTip::ToolTip(CMainIndex* parent) : QToolTip(parent->viewport()), m_mainIndex(parent) {} + +void CMainIndex::ToolTip::maybeTip(const QPoint& p) { + CItemBase* i = dynamic_cast(m_mainIndex->itemAt(p)); + Q_ASSERT(i); + if ( !i ) { + return; + } + + QRect r = m_mainIndex->itemRect(i); + if (!r.isValid()) { + return; + } + + //get type of item and display correct text + const QString text = i->toolTip(); + if (!text.isEmpty()) { + CBookmarkItem* bookmark = dynamic_cast(i); + if (bookmark) { + (CPointers::infoDisplay())->setInfo( + InfoDisplay::CInfoDisplay::CrossReference, + bookmark->module()->name() + ":" + bookmark->key() + ); + } + else { + CPointers::infoDisplay()->clearInfo(); + } + + tip(r, text); + } + else { + CPointers::infoDisplay()->clearInfo(); + } +} + +CMainIndex::CMainIndex(QWidget *parent) : KListView(parent), +m_searchDialog(0), m_toolTip(0), m_itemsMovable(false), m_autoOpenFolder(0), m_autoOpenTimer(this) { + initView(); + initConnections(); + //initTree() is called in polish() +} + +CMainIndex::~CMainIndex() { + saveSettings(); + saveBookmarks(); + + m_toolTip->remove(this); + delete m_toolTip; +} + +/** Reimplementation. Adds the given group to the tree. */ +void CMainIndex::addGroup(const CItemBase::Type type, const QString language) { + CTreeFolder *i = 0; + switch (type) { + case CItemBase::BookmarkFolder: + i = new CBookmarkFolder(this); + break; + case CItemBase::GlossaryModuleFolder: + //we have no second language + i = new CGlossaryFolder(this, type, language, QString::null); + break; + default: + i = new CTreeFolder(this, type, language); + break; + } + + if (i) { + i->init(); + if (i->childCount() == 0 && type != CItemBase::BookmarkFolder) { + delete i; + } + } +} + + +/** Initializes the view. */ +void CMainIndex::initView() { + addColumn(QString::null); + header()->hide(); + + m_toolTip = new ToolTip(this); + setTooltipColumn(-1); + //to disable Qt's tooltips + setShowToolTips(false); + + setBackgroundMode(PaletteBase); + setFullWidth(true); + setFocusPolicy(WheelFocus); + + setAcceptDrops( true ); + setDragEnabled( true ); + setDropVisualizer( true ); + setDropHighlighter( true ); + setAutoOpen(true); + viewport()->setAcceptDrops(true); + setRootIsDecorated(false); + setAllColumnsShowFocus(true); + setItemsMovable(false); + setSelectionModeExt(Extended); + + //setup the popup menu + m_popup = new KPopupMenu(viewport()); + m_popup->insertTitle(i18n("Bookshelf")); + + m_actions.newFolder = new KAction(i18n("Create a new folder"), CResMgr::mainIndex::newFolder::icon, 0, this, SLOT(createNewFolder()), this); + m_actions.changeFolder = new KAction(i18n("Change this folder"),CResMgr::mainIndex::changeFolder::icon, 0, this, SLOT(changeFolder()), this); + + m_actions.changeBookmark = new KAction(i18n("Change bookmark description"),CResMgr::mainIndex::changeBookmark::icon, 0, this, SLOT(changeBookmark()), this); + m_actions.importBookmarks = new KAction(i18n("Import bookmarks"),CResMgr::mainIndex::importBookmarks::icon, 0, this, SLOT(importBookmarks()), this); + m_actions.exportBookmarks = new KAction(i18n("Export bookmarks"),CResMgr::mainIndex::exportBookmarks::icon, 0, this, SLOT(exportBookmarks()), this); + m_actions.printBookmarks = new KAction(i18n("Print bookmarks"),CResMgr::mainIndex::printBookmarks::icon, 0, this, SLOT(printBookmarks()), this); + + m_actions.deleteEntries = new KAction(i18n("Remove selected item(s)"),CResMgr::mainIndex::deleteItems::icon, 0, this, SLOT(deleteEntries()), this); + + m_actions.editModuleMenu = new KActionMenu(i18n("Edit this work"),CResMgr::mainIndex::editModuleMenu::icon, this); + m_actions.editModuleMenu->setDelayed(false); + m_actions.editModulePlain = new KAction(i18n("Plain text"),CResMgr::mainIndex::editModulePlain::icon, 0, this, SLOT(editModulePlain()), this); + m_actions.editModuleHTML = new KAction(i18n("HTML"),CResMgr::mainIndex::editModuleHTML::icon, 0, this, SLOT(editModuleHTML()), this); + + m_actions.searchInModules = new KAction(i18n("Search in selected work(s)"),CResMgr::mainIndex::search::icon, 0, this, SLOT(searchInModules()), this); + m_actions.unlockModule = new KAction(i18n("Unlock this work"),CResMgr::mainIndex::unlockModule::icon, 0, this, SLOT(unlockModule()), this); + m_actions.aboutModule = new KAction(i18n("About this work"),CResMgr::mainIndex::aboutModule::icon, 0, this, SLOT(aboutModule()), this); + + + //fill the popup menu itself + m_actions.newFolder->plug(m_popup); + m_actions.changeFolder->plug(m_popup); + (new KActionSeparator(this))->plug(m_popup); + m_actions.changeBookmark->plug(m_popup); + m_actions.importBookmarks->plug(m_popup); + m_actions.exportBookmarks->plug(m_popup); + m_actions.printBookmarks->plug(m_popup); + (new KActionSeparator(this))->plug(m_popup); + m_actions.deleteEntries->plug(m_popup); + (new KActionSeparator(this))->plug(m_popup); + m_actions.editModuleMenu->plug(m_popup); + //sub item of edit module menu + m_actions.editModuleMenu->insert(m_actions.editModulePlain); + //sub item of edit module menu + m_actions.editModuleMenu->insert(m_actions.editModuleHTML); + + m_actions.searchInModules->plug(m_popup); + m_actions.unlockModule->plug(m_popup); + m_actions.aboutModule->plug(m_popup); +} + +/** Initialize the SIGNAL<->SLOT connections */ +void CMainIndex::initConnections() { + connect(this, SIGNAL(executed(QListViewItem*)), + SLOT(slotExecuted(QListViewItem*))); + connect(this, SIGNAL(dropped(QDropEvent*, QListViewItem*, QListViewItem*)), + SLOT(dropped(QDropEvent*, QListViewItem*, QListViewItem*))); + connect(this, SIGNAL(contextMenu(KListView*, QListViewItem*, const QPoint&)), + SLOT(contextMenu(KListView*, QListViewItem*, const QPoint&))); + connect(&m_autoOpenTimer, SIGNAL(timeout()), + this, SLOT(autoOpenTimeout())); +} + +/** Is called when an item was clicked/double clicked. */ +void CMainIndex::slotExecuted( QListViewItem* i ) { + CItemBase* ci = dynamic_cast(i); + if (!ci) { + return; + } + + if (ci->isFolder()) { + i->setOpen(!i->isOpen()); + } + else if (CModuleItem* m = dynamic_cast(i)) { //clicked on a module + CSwordModuleInfo* mod = m->module(); + ListCSwordModuleInfo modules; + modules.append(mod); + emit createReadDisplayWindow(modules, QString::null); + } + else if (CBookmarkItem* b = dynamic_cast(i) ) { //clicked on a bookmark + if (CSwordModuleInfo* mod = b->module()) { + ListCSwordModuleInfo modules; + modules.append(mod); + emit createReadDisplayWindow(modules, b->key()); + } + } +} + +/** Reimplementation. Returns the drag object for the current selection. */ +QDragObject* CMainIndex::dragObject() { + if (!m_itemsMovable) { + return false; + } + + CDragDropMgr::ItemList dndItems; + + QPtrList items = selectedItems(); + for (items.first(); items.current(); items.next()) { + if (CItemBase* i = dynamic_cast(items.current())) { + //we can move this item! + if (!i->isMovable()) { //we can only drag items which allow us to do it, e.g. which are movable + continue; + } + + if (CBookmarkItem* bookmark = dynamic_cast( items.current() )) { + //take care of bookmarks which have no valid module any more, e.g. if it was uninstalled + const QString moduleName = bookmark->module() ? bookmark->module()->name() : QString::null; + dndItems.append( CDragDropMgr::Item(moduleName, bookmark->key(), bookmark->description()) ); + } + } + } + + return CDragDropMgr::dragObject( dndItems, viewport() ); +} + +/** Reimplementation from KListView. Returns true if the drag is acceptable for the listview. */ +bool CMainIndex::acceptDrag( QDropEvent* event ) const { + const QPoint pos = contentsToViewport(event->pos()); + + CItemBase* i = dynamic_cast(itemAt(pos)); + return i ? (i->acceptDrop(event) || i->isMovable()) : false; +} + +/** No descriptions */ +void CMainIndex::initTree() { + addGroup(CItemBase::BookmarkFolder, QString("*")); + addGroup(CItemBase::BibleModuleFolder, QString("*")); + addGroup(CItemBase::BookModuleFolder, QString("*")); + addGroup(CItemBase::CommentaryModuleFolder, QString("*")); + addGroup(CItemBase::DevotionalModuleFolder, QString("*")); + addGroup(CItemBase::GlossaryModuleFolder, QString("*")); + addGroup(CItemBase::LexiconModuleFolder, QString("*")); +} + +/** No descriptions */ +void CMainIndex::dropped( QDropEvent* e, QListViewItem* parent, QListViewItem* after) { + Q_ASSERT(after); + Q_ASSERT(parent); + + //the drop was started in this main index widget + if (m_itemsMovable && ((e->source()) == (viewport()))) { + /* + * If the drag was started from the main index and should move items and if the destination is the bookmark + * folder or one of its subfolders + * we remove the current items because the new ones will be inserted soon. + */ + if (dynamic_cast(parent) || dynamic_cast(parent)) { + // we drop onto the bookmark folder or one of it's subfolders + // QPtrList items = selectedItems(); + // items.setAutoDelete(true); + // items.clear(); //delete the selected items we dragged + } + } + + //finally do the drop, either with external drop data or with the moved items' data + CItemBase* const parentItem = dynamic_cast(parent); + CItemBase* const afterItem = dynamic_cast(after); + + bool removeSelectedItems = true; + bool moveSelectedItems = false; + + if (afterItem && afterItem->isFolder()) { + moveSelectedItems = false; + removeSelectedItems = false; //why TRUE? + + afterItem->setOpen(true); + afterItem->dropped(e); //inserts new items, moving only works on the same level + } + else if (afterItem && !afterItem->isFolder() && parentItem) { + const bool justMoveSelected = + (e->source() == viewport()) + && m_itemsMovable + && parentItem->acceptDrop(e) + && !afterItem->acceptDrop(e); + + if (justMoveSelected) { + moveSelectedItems = true; + removeSelectedItems = false; + } + else { + moveSelectedItems = false; + removeSelectedItems = false; + + if (afterItem->acceptDrop(e)) { + afterItem->dropped(e, after); + } + else { //insert in the parent folder and then move the inserted items + parentItem->dropped(e, after); + } + } + + parentItem->setOpen(true); + } + else if (parentItem) { //no after item present, but a parent is there + moveSelectedItems = false; + removeSelectedItems = false; + + parentItem->setOpen(true); + parentItem->dropped(e); + } + + if (moveSelectedItems) { + //move all selected items after the afterItem + if (m_itemsMovable) { + QPtrList items = selectedItems(); + QListViewItem* i = items.first(); + QListViewItem* after = afterItem; + while (i && afterItem) { + i->moveItem(after); + after = i; + + i = items.next(); + } + } + } + + if (removeSelectedItems) { + QPtrList items = selectedItems(); + items.setAutoDelete(true); + items.clear(); //delete the selected items we dragged + } +} + +/** No descriptions */ +void CMainIndex::emitModulesChosen( ListCSwordModuleInfo modules, QString key ) { + emit createReadDisplayWindow(modules, key); +} + +/** Returns the correct KAction object for the given type of action. */ +KAction* const CMainIndex::action( const CItemBase::MenuAction type ) const { + switch (type) { + case CItemBase::NewFolder: + return m_actions.newFolder; + case CItemBase::ChangeFolder: + return m_actions.changeFolder; + + case CItemBase::ChangeBookmark: + return m_actions.changeBookmark; + case CItemBase::ImportBookmarks: + return m_actions.importBookmarks; + case CItemBase::ExportBookmarks: + return m_actions.exportBookmarks; + case CItemBase::PrintBookmarks: + return m_actions.printBookmarks; + + case CItemBase::DeleteEntries: + return m_actions.deleteEntries; + + case CItemBase::EditModule: + return m_actions.editModuleMenu; + case CItemBase::SearchInModules: + return m_actions.searchInModules; + case CItemBase::UnlockModule: + return m_actions.unlockModule; + case CItemBase::AboutModule: + return m_actions.aboutModule; + default: + return 0; + } +} + +/** Shows the context menu at the given position. */ +void CMainIndex::contextMenu(KListView* /*list*/, QListViewItem* i, const QPoint& p) { + //setup menu entries depending on current selection + QPtrList items = selectedItems(); + + if (items.count() == 0) { + //special handling for no selection + } + else if (items.count() == 1) { + //special handling for one selected item + + CItemBase* item = dynamic_cast(i); + CItemBase::MenuAction actionType; + for (int index = CItemBase::ActionBegin; index <= CItemBase::ActionEnd; ++index) { + actionType = static_cast(index); + if (KAction* a = action(actionType)) + a->setEnabled( item->enableAction(actionType) ); + } + } + else { + //first disable all actions + CItemBase::MenuAction actionType; + for (int index = CItemBase::ActionBegin; index <= CItemBase::ActionEnd; ++index) { + actionType = static_cast(index); + if (KAction* a = action(actionType)) + a->setEnabled(false); + } + + //enable the menu items depending on the types of the selected items. + for (int index = CItemBase::ActionBegin; index <= CItemBase::ActionEnd; ++index) { + actionType = static_cast(index); + bool enableAction = isMultiAction(actionType); + for (items.first(); items.current(); items.next()) { + CItemBase* i = dynamic_cast(items.current()); + enableAction = enableAction && i->enableAction(actionType); + } + if (enableAction) { + KAction* a = action(actionType) ; + if (i && a) + a->setEnabled(enableAction); + } + } + } + + //finally, open the popup + m_popup->exec(p); +} + +/** Adds a new subfolder to the current item. */ +void CMainIndex::createNewFolder() { + CFolderBase* i = dynamic_cast(currentItem()); + Q_ASSERT(i); + + if (i) { + i->newSubFolder(); + } +} + +/** Opens a dialog to change the current folder. */ +void CMainIndex::changeFolder() { + CFolderBase* i = dynamic_cast(currentItem()); + Q_ASSERT(i); + if (i) { + i->rename(); + } +} + +/** Changes the current bookmark. */ +void CMainIndex::changeBookmark() { + CBookmarkItem* i = dynamic_cast(currentItem()); + Q_ASSERT(i); + + if (i) { + i->rename(); + } +} + +/** Exports the bookmarks being in the selected folder. */ +void CMainIndex::exportBookmarks() { + CBookmarkFolder* i = dynamic_cast(currentItem()); + Q_ASSERT(i); + + if (i) { + i->exportBookmarks(); + } +} + +/** Import bookmarks from a file and add them to the selected folder. */ +void CMainIndex::importBookmarks() { + CBookmarkFolder* i = dynamic_cast(currentItem()); + Q_ASSERT(i); + + if (i) { + i->importBookmarks(); + } +} + +/** Prints the selected bookmarks. */ +void CMainIndex::printBookmarks() { + CPrinter::KeyTree tree; + CPrinter::KeyTreeItem::Settings settings; + settings.keyRenderingFace = CPrinter::KeyTreeItem::Settings::CompleteShort; + + QPtrList items; + CBookmarkFolder* bf = dynamic_cast(currentItem()); + + if (bf) { + items = bf->getChildList(); + } + else { + items = selectedItems(); + } + + //create a tree of keytreeitems using the bookmark hierarchy. + for (items.first(); items.current(); items.next()) { + CBookmarkItem* i = dynamic_cast(items.current()); + if (i) { + tree.append( new CPrinter::KeyTreeItem( i->key(), i->module(), settings ) ); + } + } + + util::scoped_ptr printer( + new CPrinter( this, CBTConfig::getDisplayOptionDefaults(), CBTConfig::getFilterOptionDefaults() ) + ); + printer->printKeyTree(tree); +} + +/** Deletes the selected entries. */ +void CMainIndex::deleteEntries() { + QPtrList items = selectedItems(); + if (!items.count()) + return; + + if (KMessageBox::warningYesNo(this, i18n("Do you really want to delete the selected items and child-items?"), i18n("Delete Items")) != KMessageBox::Yes) { + return; + } + + // We have to go backwards because otherwise deleting folders would delete their childs => crash before we delete those + for (items.last(); items.current(); items.prev()) { + if (CItemBase* i = dynamic_cast(items.current())) { + if (i->enableAction(CItemBase::DeleteEntries)) { + delete i; + } + } + } +} + +/** Opens the searchdialog for the selected modules. */ +void CMainIndex::searchInModules() { + QPtrList items = selectedItems(); + ListCSwordModuleInfo modules; + for (items.first(); items.current(); items.next()) { + if (CModuleItem* i = dynamic_cast(items.current())) { + if (i->module()) { + modules.append(i->module()); + } + } + } + + if (modules.isEmpty()) { //get a list of useful default modules for the search if no modules were selected + CSwordModuleInfo* m = CBTConfig::get(CBTConfig::standardBible); + if (m) { + modules.append(m); + } + } + + Search::CSearchDialog::openDialog(modules, QString::null); +} + +/** Unlocks the current module. */ +void CMainIndex::unlockModule() { + if (CModuleItem* i = dynamic_cast(currentItem())) { + bool ok = false; + const QString unlockKey = QInputDialog::getText(i18n("BibleTime - Unlock work"), + i18n("Enter the unlock key for this work."), + QLineEdit::Normal, i->module()->config(CSwordModuleInfo::CipherKey), &ok); + + if (ok) { + i->module()->unlock( unlockKey ); + emit signalSwordSetupChanged(); + } + } +} + +/** Shows information about the current module. */ +void CMainIndex::aboutModule() { + if (CModuleItem* i = dynamic_cast(currentItem())) { + KMessageBox::about(this, i->module()->aboutText(), i->module()->config(CSwordModuleInfo::Description), false); + } +} + +/** Reimplementation. Takes care of movable items. */ +void CMainIndex::startDrag() { + QPtrList items = selectedItems(); + m_itemsMovable = true; + + for (items.first(); items.current() && m_itemsMovable; items.next()) { + if (CItemBase* i = dynamic_cast(items.current())) { + m_itemsMovable = (m_itemsMovable && i->isMovable()); + } + else { + m_itemsMovable = false; + } + } + + KListView::startDrag(); +} + +/** Reimplementation to support the items dragEnter and dragLeave functions. */ +void CMainIndex::contentsDragMoveEvent( QDragMoveEvent* event ) { + // qWarning("void CMainIndex:: drag move event ( QDragLeaveEvent* e )"); + CItemBase* i = dynamic_cast( itemAt( contentsToViewport(event->pos())) ); + if (i) { + if (i->allowAutoOpen(event) || (i->acceptDrop(event) && i->isFolder() && i->allowAutoOpen(event) && !i->isOpen() && autoOpen()) ) { + if (m_autoOpenFolder != i) { + m_autoOpenTimer.stop(); + } + + m_autoOpenFolder = i; + m_autoOpenTimer.start( 400, true ); + } + else { + m_autoOpenFolder = 0; + } + } + else { + m_autoOpenFolder = 0; + } + + KListView::contentsDragMoveEvent(event); +} + +QRect CMainIndex::drawItemHighlighter(QPainter* painter, QListViewItem* item) { + CBookmarkItem* bookmark = dynamic_cast(item); + if (bookmark) { + //no drops on bookmarks allowed, just moving items after it + return QRect(); + } + + return KListView::drawItemHighlighter(painter, item); +} + + +void CMainIndex::autoOpenTimeout() { + m_autoOpenTimer.stop(); + if (m_autoOpenFolder && !m_autoOpenFolder->isOpen() && m_autoOpenFolder->childCount()) { + m_autoOpenFolder->setOpen(true); + } +} + +/** No descriptions */ +void CMainIndex::contentsDragLeaveEvent( QDragLeaveEvent* e ) { + m_autoOpenTimer.stop(); + KListView::contentsDragLeaveEvent(e); +} + +/** Returns true if more than one netry is supported by this action type. Returns false for actions which support only one entry, e.g. about module etc. */ +const bool CMainIndex::isMultiAction( const CItemBase::MenuAction type ) const { + switch (type) { + case CItemBase::NewFolder: + return false; + case CItemBase::ChangeFolder: + return false; + + case CItemBase::ChangeBookmark: + return false; + case CItemBase::ImportBookmarks: + return false; + case CItemBase::ExportBookmarks: + return false; + case CItemBase::PrintBookmarks: + return true; + + case CItemBase::DeleteEntries: + return true; + + case CItemBase::EditModule: + return false; + case CItemBase::SearchInModules: + return true; + case CItemBase::UnlockModule: + return false; + case CItemBase::AboutModule: + return false; + } + + return false; +} + +/** Is called when items should be moved. */ +void CMainIndex::moved( QPtrList& /*items*/, QPtrList& /*afterFirst*/, QPtrList& /*afterNow*/) { + qDebug("move items"); +} + +/** Opens an editor window to edit the modules content. */ +void CMainIndex::editModulePlain() { + QPtrList items = selectedItems(); + ListCSwordModuleInfo modules; + for (items.first(); items.current(); items.next()) { + if (CModuleItem* i = dynamic_cast(items.current())) { + modules.append(i->module()); + } + } + if (modules.count() == 1) { + emit createWriteDisplayWindow(modules.first(), QString::null, CDisplayWindow::PlainTextWindow); + }; +} + +/** Opens an editor window to edit the modules content. */ +void CMainIndex::editModuleHTML() { + QPtrList items = selectedItems(); + ListCSwordModuleInfo modules; + for (items.first(); items.current(); items.next()) { + if (CModuleItem* i = dynamic_cast(items.current())) { + modules.append(i->module()); + } + } + + if (modules.count() == 1) { + emit createWriteDisplayWindow(modules.first(), QString::null, CDisplayWindow::HTMLWindow); + } +} + +/** Reloads the main index's Sword dependend things like modules */ +void CMainIndex::reloadSword() { + //reload the modules, save the open groups before removing the items + saveSettings(); + clear(); + initTree(); + readSettings(); +} + +/** Saves the bookmarks to disk */ +void CMainIndex::saveBookmarks() { + //find the bookmark folder + CItemBase* i = 0; + + QListViewItemIterator it( this ); + while ( it.current() ) { + i = dynamic_cast( it.current() ); + + if (i && (i->type() == CItemBase::BookmarkFolder)) { + //found the bookmark folder + KStandardDirs stdDirs; + + const QString path = stdDirs.saveLocation("data", "bibletime/"); + if (!path.isEmpty()) { + //save the bookmarks to the right file + if (CBookmarkFolder* f = dynamic_cast(i)) { + f->saveBookmarks( path + "bookmarks.xml" ); + } + } + break; + } + + ++it; + } +} + +void CMainIndex::readSettings() { + qDebug("CMainIndex::readSettings"); + + QStringList openGroups = CBTConfig::get(CBTConfig::bookshelfOpenGroups); + for (QStringList::Iterator it( openGroups.begin() ); it != openGroups.end(); ++it) { + QStringList path = QStringList::split("/", (*it)); //e.g. with items parent, child + QListViewItem* item = firstChild(); //begin on the top for each item + Q_ASSERT(item); + unsigned int index = 1; + + for (QStringList::Iterator p_it( path.begin() ); p_it != path.end(); ++p_it) { + QString itemName = (*p_it).replace("\\/", "/"); + + while (item && (item->text(0) != itemName)) { + item = item->nextSibling(); + } + + if (item && (item->text(0) == itemName)) { + if (index < path.count()) { //don't call firstChild on the right, i.e. last item of the list + item = item->firstChild(); + } + + ++index; + } + } + + if (item) { + item->setOpen(true); + } + } + + //restore the content position +// setContentsPos( +// CBTConfig::get(CBTConfig::bookshelfContentsX), +// CBTConfig::get(CBTConfig::bookshelfContentsY) +// ); +// horizontalScrollBar()->setValue(CBTConfig::get(CBTConfig::bookshelfContentsX)); +// verticalScrollBar()->setValue(CBTConfig::get(CBTConfig::bookshelfContentsY)); + + + //restore the selected item + QStringList path = QStringList::split("/", CBTConfig::get(CBTConfig::bookshelfCurrentItem)); + QListViewItem* item = firstChild(); + Q_ASSERT(item); + unsigned int index = 1; + for (QStringList::iterator it( path.begin() ); it != path.end(); ++it) { + //search for the current caption and go down to it's childs + while (item && (item->text(0) != (*it)) ) { + item = item->nextSibling(); + } + + if (item && ((*it) == item->text(0))) { + if (index == path.count()) { //last item reached + setCurrentItem( item ); + setSelected( item, true ); + break;//for loop + } + else { + item = item->firstChild(); + } + + index++; + } + } +} + +void CMainIndex::saveSettings() { + //save the complete names of all open groups to the settings file (e.g. Bibles/German/,Bookmarks/Jeuss Christ + QStringList openGroups; + + QListViewItemIterator it( this ); + while ( it.current() ) { + if ( it.current()->isOpen() ) { //is a group and open + //it.current()'s full name needs to be added to the list + QListViewItem* i = it.current(); + QString fullName = i->text(0); + while (i->parent()) { + i = i->parent(); + fullName.prepend("/").prepend( i->text(0).replace("/", "\\/")); // parent / child + } + openGroups << fullName; + } + + ++it; + } + + CBTConfig::set(CBTConfig::bookshelfOpenGroups, openGroups); + + //now save the position of the scrollbars +// CBTConfig::set(CBTConfig::bookshelfContentsX, +// horizontalScrollBar() ? horizontalScrollBar()->value() : 0); +// CBTConfig::set(CBTConfig::bookshelfContentsY, +// verticalScrollBar() ? verticalScrollBar()->value() : 0); + + //save the currently selected item + QListViewItem* item = currentItem(); + QString path; + while (item) { + path.prepend( item->text(0) + "/" ); + item = item->parent(); + } + CBTConfig::set(CBTConfig::bookshelfCurrentItem, path); +} + +void CMainIndex::polish() +{ + KListView::polish(); + initTree(); + readSettings(); +} diff --git a/bibletime/frontend/mainindex/cmainindex.h b/bibletime/frontend/mainindex/cmainindex.h new file mode 100644 index 0000000..be9f9f4 --- /dev/null +++ b/bibletime/frontend/mainindex/cmainindex.h @@ -0,0 +1,232 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CMAININDEX_H +#define CMAININDEX_H + +//BibleTime includes +#include "cindexitem.h" + +#include "backend/cswordmoduleinfo.h" +#include "frontend/displaywindow/cdisplaywindow.h" + +#include "util/cpointers.h" + +//Qt includes +#include +#include +#include + +//KDE includes +#include +#include + +class CSearchDialog; + +/** The class which manages all bookmarks and modules. The modules are put into own, fixed subfolders sorted by language. + * @author The BibleTime team + */ +class CMainIndex : public KListView { + Q_OBJECT + + class ToolTip : public QToolTip { + public: + ToolTip(CMainIndex* parent); + virtual ~ToolTip() {} + /** + * Displays a tooltip for position p using the getToolTip() function of CGroupManagerItem + */ + virtual void maybeTip( const QPoint &pos); + + private: + CMainIndex* m_mainIndex; + }; + +public: + CMainIndex(QWidget *parent); + virtual ~CMainIndex(); + + void initTree(); + /** + * Opens the searchdialog using the given modules using the given search text. + */ + void emitModulesChosen( ListCSwordModuleInfo modules, QString key ); + /** + * Saves the bookmarks to disk + */ + void saveBookmarks(); + /** + * Reloads the main index's Sword dependend things like modules + */ + void reloadSword(); + +public slots: + /** + * Opens the searchdialog for the selected modules. + */ + void searchInModules(); + +protected: // Protected methods + /** + * Reimplementation. Adds the given group to the tree. + */ + virtual void addGroup( const CItemBase::Type type, const QString language); + /** + * Initialize the SIGNAL<->SLOT connections + */ + void initConnections(); + /** + * Reimplementation. Returns the drag object for the current selection. + */ + virtual QDragObject* dragObject(); + /** + * Reimplementation from KListView. Returns true if the drag is acceptable for the listview. + */ + virtual bool acceptDrag( QDropEvent* event ) const; + /** + * Returns the correct KAction object for the given type of action. + */ + KAction* const action( const CItemBase::MenuAction type ) const; + /** + * Reimplementation. Takes care of movable items. + */ + virtual void startDrag(); + /** + * Reimplementation to support the items dragEnter and dragLeave functions. + */ + virtual void contentsDragMoveEvent( QDragMoveEvent* event ); + /** + * Reimplementation. + */ + virtual void contentsDragLeaveEvent( QDragLeaveEvent* e ); + QRect drawItemHighlighter(QPainter* painter, QListViewItem * item ); + /** Read settings like open groups or scrollbar position and restore them + */ + void readSettings(); + /** Save settings like roups close/open status to the settings file. + */ + void saveSettings(); + /** Reimplementation. + */ + virtual void polish(); + +protected slots: // Protected slots + /** + * Is called when an item was clicked/double clicked. + */ + void slotExecuted( QListViewItem* ); + void dropped( QDropEvent*, QListViewItem*, QListViewItem*); + /** + * Shows the context menu at the given position. + */ + void contextMenu(KListView*, QListViewItem*, const QPoint&); + /** + * Adds a new subfolder to the current item. + */ + void createNewFolder(); + /** + * Opens a dialog to change the current folder. + */ + void changeFolder(); + /** + * Exports the bookmarks being in the selected folder. + */ + void exportBookmarks(); + /** + * Changes the current bookmark. + */ + void changeBookmark(); + /** + * Import bookmarks from a file and add them to the selected folder. + */ + void importBookmarks(); + /** + * Deletes the selected entries. + */ + void deleteEntries(); + /** + * Prints the selected bookmarks. + */ + void printBookmarks(); + /** + * Shows information about the current module. + */ + void aboutModule(); + /** + * Unlocks the current module. + */ + void unlockModule(); + void autoOpenTimeout(); + /** + * Is called when items should be moved. + */ + void moved( QPtrList& items, QPtrList& afterFirst, QPtrList& afterNow); + /** + * Opens a plain text editor window to edit the modules content. + */ + void editModulePlain(); + /** + * Opens an HTML editor window to edit the modules content. + */ + void editModuleHTML(); + +private: + CSearchDialog* m_searchDialog; + ToolTip* m_toolTip; + bool m_itemsMovable; + QListViewItem* m_autoOpenFolder; + QTimer m_autoOpenTimer; + + /** + * Initializes the view. + */ + void initView(); + /** + * Returns true if more than one netry is supported by this action type. + * Returns false for actions which support only one entry, e.g. about module etc. + */ + const bool isMultiAction( const CItemBase::MenuAction type ) const; + + struct Actions { + KAction* newFolder; + KAction* changeFolder; + + KAction* changeBookmark; + KAction* importBookmarks; + KAction* exportBookmarks; + KAction* printBookmarks; + + KAction* deleteEntries; + + KActionMenu* editModuleMenu; + KAction* editModulePlain; + KAction* editModuleHTML; + + KAction* searchInModules; + KAction* unlockModule; + KAction* aboutModule; + } + m_actions; + KPopupMenu* m_popup; + +signals: + /** + * Is emitted when a module should be opened, + */ + void createReadDisplayWindow( ListCSwordModuleInfo, const QString& ); + /** + * Is emitted when a write window should be created. + */ + void createWriteDisplayWindow( CSwordModuleInfo*, const QString&, const CDisplayWindow::WriteWindowType& ); + void signalSwordSetupChanged(); +}; + +#endif diff --git a/bibletime/frontend/manageindicesform.cpp b/bibletime/frontend/manageindicesform.cpp new file mode 100644 index 0000000..c74ecd5 --- /dev/null +++ b/bibletime/frontend/manageindicesform.cpp @@ -0,0 +1,82 @@ +#include +#include +/**************************************************************************** +** Form implementation generated from reading ui file './manageindicesform.ui' +** +** Created: Sa Mai 10 13:52:34 2008 +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ + +#include "manageindicesform.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Constructs a ManageIndicesForm as a child of 'parent', with the + * name 'name' and widget flags set to 'f'. + */ +ManageIndicesForm::ManageIndicesForm( QWidget* parent, const char* name, WFlags fl ) + : QWidget( parent, name, fl ) +{ + if ( !name ) + setName( "ManageIndicesForm" ); + ManageIndicesFormLayout = new QVBoxLayout( this, 0, 8, "ManageIndicesFormLayout"); + + m_labelFrame = new QFrame( this, "m_labelFrame" ); + m_labelFrame->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)5, 0, 0, m_labelFrame->sizePolicy().hasHeightForWidth() ) ); + m_labelFrame->setFrameShape( QFrame::NoFrame ); + m_labelFrame->setFrameShadow( QFrame::Plain ); + ManageIndicesFormLayout->addWidget( m_labelFrame ); + + m_autoDeleteOrphanedIndicesBox = new QCheckBox( this, "m_autoDeleteOrphanedIndicesBox" ); + ManageIndicesFormLayout->addWidget( m_autoDeleteOrphanedIndicesBox ); + + m_moduleList = new KListView( this, "m_moduleList" ); + ManageIndicesFormLayout->addWidget( m_moduleList ); + + layout1 = new QHBoxLayout( 0, 0, 6, "layout1"); + spacer1 = new QSpacerItem( 40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); + layout1->addItem( spacer1 ); + + m_createIndicesButton = new QPushButton( this, "m_createIndicesButton" ); + layout1->addWidget( m_createIndicesButton ); + + m_deleteIndicesButton = new QPushButton( this, "m_deleteIndicesButton" ); + layout1->addWidget( m_deleteIndicesButton ); + ManageIndicesFormLayout->addLayout( layout1 ); + languageChange(); + resize( QSize(415, 404).expandedTo(minimumSizeHint()) ); + clearWState( WState_Polished ); +} + +/* + * Destroys the object and frees any allocated resources + */ +ManageIndicesForm::~ManageIndicesForm() +{ + // no need to delete child widgets, Qt does it all for us +} + +/* + * Sets the strings of the subwidgets using the current + * language. + */ +void ManageIndicesForm::languageChange() +{ + setCaption( tr2i18n( "Manage Indicies" ) ); + m_autoDeleteOrphanedIndicesBox->setText( tr2i18n( "Automaticall&y delete orphaned indices when BibleTime starts" ) ); + m_autoDeleteOrphanedIndicesBox->setAccel( QKeySequence( tr2i18n( "Alt+Y" ) ) ); + m_createIndicesButton->setText( tr2i18n( "&Create selected indices" ) ); + m_deleteIndicesButton->setText( tr2i18n( "De&lete selected indices" ) ); +} + +#include "manageindicesform.moc" diff --git a/bibletime/frontend/manageindicesform.ui b/bibletime/frontend/manageindicesform.ui new file mode 100644 index 0000000..bfd51c9 --- /dev/null +++ b/bibletime/frontend/manageindicesform.ui @@ -0,0 +1,114 @@ + +ManageIndicesForm + + + ManageIndicesForm + + + + 0 + 0 + 415 + 404 + + + + Manage Indicies + + + + unnamed + + + 0 + + + 8 + + + + m_labelFrame + + + + 7 + 5 + 0 + 0 + + + + NoFrame + + + Plain + + + + + m_autoDeleteOrphanedIndicesBox + + + Automaticall&y delete orphaned indices when BibleTime starts + + + Alt+Y + + + + + m_moduleList + + + + + layout1 + + + + unnamed + + + + spacer1 + + + Horizontal + + + Expanding + + + + 40 + 20 + + + + + + m_createIndicesButton + + + &Create selected indices + + + + + m_deleteIndicesButton + + + De&lete selected indices + + + + + + + + + + + klistview.h + + diff --git a/bibletime/frontend/searchdialog/Makefile.am b/bibletime/frontend/searchdialog/Makefile.am new file mode 100644 index 0000000..e78f647 --- /dev/null +++ b/bibletime/frontend/searchdialog/Makefile.am @@ -0,0 +1,28 @@ +INCLUDES = $(all_includes) + +libsearchdialog_a_METASOURCES = AUTO + +noinst_LIBRARIES = libsearchdialog.a + +libsearchdialog_a_SOURCES = \ +searchoptionsform.ui \ +searchresultsform.ui \ +csearchdialog.cpp \ +csearchdialogpages.cpp \ +csearchanalysis.cpp \ +cmodulechooser.cpp \ +crangechooser.cpp \ +cmoduleresultview.cpp \ +csearchresultview.cpp + +all_headers = \ +csearchdialog.h \ +csearchdialogpages.h \ +csearchanalysis.h \ +cmodulechooser.h \ +crangechooser.h + + +EXTRA_DIST = $(libsearchdialog_a_SOURCES) $(all_headers) + + diff --git a/bibletime/frontend/searchdialog/Makefile.in b/bibletime/frontend/searchdialog/Makefile.in new file mode 100644 index 0000000..eb0a029 --- /dev/null +++ b/bibletime/frontend/searchdialog/Makefile.in @@ -0,0 +1,842 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/frontend/searchdialog +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) +ARFLAGS = cru +libsearchdialog_a_AR = $(AR) $(ARFLAGS) +libsearchdialog_a_LIBADD = +am_libsearchdialog_a_OBJECTS = csearchdialog.$(OBJEXT) \ + csearchdialogpages.$(OBJEXT) csearchanalysis.$(OBJEXT) \ + cmodulechooser.$(OBJEXT) crangechooser.$(OBJEXT) \ + cmoduleresultview.$(OBJEXT) csearchresultview.$(OBJEXT) +#>- libsearchdialog_a_OBJECTS = $(am_libsearchdialog_a_OBJECTS) +#>+ 8 +libsearchdialog_a_final_OBJECTS = libsearchdialog_a.all_cpp.o +libsearchdialog_a_nofinal_OBJECTS = csearchdialog.$(OBJEXT) \ + csearchdialogpages.$(OBJEXT) csearchanalysis.$(OBJEXT) \ + cmodulechooser.$(OBJEXT) crangechooser.$(OBJEXT) \ + cmoduleresultview.$(OBJEXT) csearchresultview.$(OBJEXT) searchoptionsform.$(OBJEXT) searchresultsform.$(OBJEXT)\ +csearchanalysis.moc.o csearchdialog.moc.o cmoduleresultview.moc.o csearchdialogpages.moc.o crangechooser.moc.o cmodulechooser.moc.o csearchresultview.moc.o +@KDE_USE_FINAL_FALSE@libsearchdialog_a_OBJECTS = $(libsearchdialog_a_nofinal_OBJECTS) +@KDE_USE_FINAL_TRUE@libsearchdialog_a_OBJECTS = $(libsearchdialog_a_final_OBJECTS) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/admin/depcomp +am__depfiles_maybe = depfiles +#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 2 +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 3 +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +CXXLD = $(CXX) +#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ +#>- $(LDFLAGS) -o $@ +#>+ 3 +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libsearchdialog_a_SOURCES) +DIST_SOURCES = $(libsearchdialog_a_SOURCES) +ETAGS = etags +CTAGS = ctags +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +INCLUDES = $(all_includes) +#>- libsearchdialog_a_METASOURCES = AUTO +noinst_LIBRARIES = libsearchdialog.a +#>- libsearchdialog_a_SOURCES = \ +#>- searchoptionsform.ui \ +#>- searchresultsform.ui \ +#>- csearchdialog.cpp \ +#>- csearchdialogpages.cpp \ +#>- csearchanalysis.cpp \ +#>- cmodulechooser.cpp \ +#>- crangechooser.cpp \ +#>- cmoduleresultview.cpp \ +#>- csearchresultview.cpp +#>+ 10 +libsearchdialog_a_SOURCES=\ + \ + \ +csearchdialog.cpp \ +csearchdialogpages.cpp \ +csearchanalysis.cpp \ +cmodulechooser.cpp \ +crangechooser.cpp \ +cmoduleresultview.cpp \ +csearchresultview.cpp searchoptionsform.cpp searchresultsform.cpp + +all_headers = \ +csearchdialog.h \ +csearchdialogpages.h \ +csearchanalysis.h \ +cmodulechooser.h \ +crangechooser.h + +EXTRA_DIST = $(libsearchdialog_a_SOURCES) $(all_headers) +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/searchdialog/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/frontend/searchdialog/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/searchdialog/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/frontend/searchdialog/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/frontend/searchdialog/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +libsearchdialog.a: $(libsearchdialog_a_OBJECTS) $(libsearchdialog_a_DEPENDENCIES) + -rm -f libsearchdialog.a + $(libsearchdialog_a_AR) libsearchdialog.a $(libsearchdialog_a_OBJECTS) $(libsearchdialog_a_LIBADD) + $(RANLIB) libsearchdialog.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmodulechooser.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmoduleresultview.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crangechooser.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/csearchanalysis.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/csearchdialog.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/csearchdialogpages.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/csearchresultview.Po@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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 $(LIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ +#>- mostlyclean-am +#>+ 2 +clean-am: clean-metasources clean-ui clean-bcheck clean-final clean-generic clean-libtool clean-noinstLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am + +# 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: + +#>+ 3 +csearchanalysis.moc.cpp: $(srcdir)/csearchanalysis.h + $(MOC) $(srcdir)/csearchanalysis.h -o csearchanalysis.moc.cpp + +#>+ 2 +mocs: csearchanalysis.moc.cpp + +#>+ 3 +csearchdialog.moc.cpp: $(srcdir)/csearchdialog.h + $(MOC) $(srcdir)/csearchdialog.h -o csearchdialog.moc.cpp + +#>+ 2 +mocs: csearchdialog.moc.cpp + +#>+ 3 +cmoduleresultview.moc.cpp: $(srcdir)/cmoduleresultview.h + $(MOC) $(srcdir)/cmoduleresultview.h -o cmoduleresultview.moc.cpp + +#>+ 2 +mocs: cmoduleresultview.moc.cpp + +#>+ 3 +csearchdialogpages.moc.cpp: $(srcdir)/csearchdialogpages.h + $(MOC) $(srcdir)/csearchdialogpages.h -o csearchdialogpages.moc.cpp + +#>+ 2 +mocs: csearchdialogpages.moc.cpp + +#>+ 3 +crangechooser.moc.cpp: $(srcdir)/crangechooser.h + $(MOC) $(srcdir)/crangechooser.h -o crangechooser.moc.cpp + +#>+ 2 +mocs: crangechooser.moc.cpp + +#>+ 3 +cmodulechooser.moc.cpp: $(srcdir)/cmodulechooser.h + $(MOC) $(srcdir)/cmodulechooser.h -o cmodulechooser.moc.cpp + +#>+ 2 +mocs: cmodulechooser.moc.cpp + +#>+ 3 +csearchresultview.moc.cpp: $(srcdir)/csearchresultview.h + $(MOC) $(srcdir)/csearchresultview.h -o csearchresultview.moc.cpp + +#>+ 2 +mocs: csearchresultview.moc.cpp + +#>+ 3 +clean-metasources: + -rm -f csearchanalysis.moc.cpp csearchdialog.moc.cpp cmoduleresultview.moc.cpp csearchdialogpages.moc.cpp crangechooser.moc.cpp cmodulechooser.moc.cpp csearchresultview.moc.cpp + +#>+ 2 +KDE_DIST=csearchresultview.h searchresultsform.ui csearchdialog.h cmodulechooser.h Makefile.in csearchanalysis.h cmoduleresultview.h csearchdialogpages.h searchoptionsform.ui crangechooser.h Makefile.am + +#>+ 5 +clean-ui: + -rm -f \ + searchoptionsform.cpp searchoptionsform.h searchoptionsform.moc \ + searchresultsform.cpp searchresultsform.h searchresultsform.moc + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/searchdialog/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/frontend/searchdialog/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/frontend/searchdialog/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 11 +libsearchdialog_a.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/csearchdialog.cpp $(srcdir)/csearchdialogpages.cpp $(srcdir)/csearchanalysis.cpp $(srcdir)/cmodulechooser.cpp $(srcdir)/crangechooser.cpp $(srcdir)/cmoduleresultview.cpp $(srcdir)/csearchresultview.cpp searchoptionsform.cpp searchresultsform.cpp cmoduleresultview.moc.cpp csearchdialogpages.moc.cpp csearchanalysis.moc.cpp csearchdialog.moc.cpp crangechooser.moc.cpp cmodulechooser.moc.cpp csearchresultview.moc.cpp searchresultsform.moc searchoptionsform.moc + @echo 'creating libsearchdialog_a.all_cpp.cpp ...'; \ + rm -f libsearchdialog_a.all_cpp.files libsearchdialog_a.all_cpp.final; \ + echo "#define KDE_USE_FINAL 1" >> libsearchdialog_a.all_cpp.final; \ + for file in csearchdialog.cpp csearchdialogpages.cpp csearchanalysis.cpp cmodulechooser.cpp crangechooser.cpp cmoduleresultview.cpp csearchresultview.cpp searchoptionsform.cpp searchresultsform.cpp cmoduleresultview.moc.cpp csearchdialogpages.moc.cpp csearchanalysis.moc.cpp csearchdialog.moc.cpp crangechooser.moc.cpp cmodulechooser.moc.cpp csearchresultview.moc.cpp ; do \ + echo "#include \"$$file\"" >> libsearchdialog_a.all_cpp.files; \ + test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libsearchdialog_a.all_cpp.final; \ + done; \ + cat libsearchdialog_a.all_cpp.final libsearchdialog_a.all_cpp.files > libsearchdialog_a.all_cpp.cpp; \ + rm -f libsearchdialog_a.all_cpp.final libsearchdialog_a.all_cpp.files + +#>+ 3 +clean-final: + -rm -f libsearchdialog_a.all_cpp.cpp + +#>+ 3 +final: + $(MAKE) libsearchdialog_a_OBJECTS="$(libsearchdialog_a_final_OBJECTS)" all-am + +#>+ 3 +final-install: + $(MAKE) libsearchdialog_a_OBJECTS="$(libsearchdialog_a_final_OBJECTS)" install-am + +#>+ 3 +no-final: + $(MAKE) libsearchdialog_a_OBJECTS="$(libsearchdialog_a_nofinal_OBJECTS)" all-am + +#>+ 3 +no-final-install: + $(MAKE) libsearchdialog_a_OBJECTS="$(libsearchdialog_a_nofinal_OBJECTS)" install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 10 +nmcheck: +$(srcdir)/csearchresultview.cpp: searchoptionsform.h searchresultsform.h +$(srcdir)/cmodulechooser.cpp: searchoptionsform.h searchresultsform.h +$(srcdir)/csearchdialogpages.cpp: searchoptionsform.h searchresultsform.h +nmcheck-am: nmcheck +$(srcdir)/crangechooser.cpp: searchoptionsform.h searchresultsform.h +$(srcdir)/cmoduleresultview.cpp: searchoptionsform.h searchresultsform.h +$(srcdir)/csearchdialog.cpp: searchoptionsform.h searchresultsform.h +$(srcdir)/csearchanalysis.cpp: searchoptionsform.h searchresultsform.h + +#>+ 30 +searchoptionsform.cpp: $(srcdir)/searchoptionsform.ui searchoptionsform.h searchoptionsform.moc + rm -f searchoptionsform.cpp + echo '#include ' > searchoptionsform.cpp + echo '#include ' >> searchoptionsform.cpp + $(UIC) -tr ${UIC_TR} -i searchoptionsform.h $(srcdir)/searchoptionsform.ui > searchoptionsform.cpp.temp ; ret=$$?; \ + $(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" searchoptionsform.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_searchoptionsform,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> searchoptionsform.cpp ;\ + rm -f searchoptionsform.cpp.temp ;\ + if test "$$ret" = 0; then echo '#include "searchoptionsform.moc"' >> searchoptionsform.cpp; else rm -f searchoptionsform.cpp ; exit $$ret ; fi + +searchoptionsform.h: $(srcdir)/searchoptionsform.ui + rm -rf searchoptionsform.h; + $(UIC) $(srcdir)/searchoptionsform.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include ,#include ,g" >> searchoptionsform.h ; +searchoptionsform.moc: searchoptionsform.h + $(MOC) searchoptionsform.h -o searchoptionsform.moc + +searchresultsform.cpp: $(srcdir)/searchresultsform.ui searchresultsform.h searchresultsform.moc + rm -f searchresultsform.cpp + echo '#include ' > searchresultsform.cpp + echo '#include ' >> searchresultsform.cpp + $(UIC) -tr ${UIC_TR} -i searchresultsform.h $(srcdir)/searchresultsform.ui > searchresultsform.cpp.temp ; ret=$$?; \ + $(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" searchresultsform.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_searchresultsform,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> searchresultsform.cpp ;\ + rm -f searchresultsform.cpp.temp ;\ + if test "$$ret" = 0; then echo '#include "searchresultsform.moc"' >> searchresultsform.cpp; else rm -f searchresultsform.cpp ; exit $$ret ; fi + +searchresultsform.h: $(srcdir)/searchresultsform.ui + rm -rf searchresultsform.h; + $(UIC) $(srcdir)/searchresultsform.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include ,#include ,g" >> searchresultsform.h ; +searchresultsform.moc: searchresultsform.h + $(MOC) searchresultsform.h -o searchresultsform.moc diff --git a/bibletime/frontend/searchdialog/cmodulechooser.cpp b/bibletime/frontend/searchdialog/cmodulechooser.cpp new file mode 100644 index 0000000..5670d91 --- /dev/null +++ b/bibletime/frontend/searchdialog/cmodulechooser.cpp @@ -0,0 +1,303 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cmodulechooser.h" + +#include "backend/cswordkey.h" +#include "backend/cswordversekey.h" + +#include "frontend/cbtconfig.h" + +#include "util/cresmgr.h" +#include "util/ctoolclass.h" + +//Qt includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//KDE includes +#include +#include +#include +#include + +namespace Search { + namespace Options { + +/****************************/ +/****************************/ +/****************************/ + +CModuleChooser::ModuleCheckBoxItem::ModuleCheckBoxItem(QListViewItem* item, CSwordModuleInfo* module) : QCheckListItem(item, QString::null, QCheckListItem::CheckBox) { + m_module = module; + setText(0,m_module->name()); +}; + +CModuleChooser::ModuleCheckBoxItem::~ModuleCheckBoxItem() {} +; + +/** Returns the used module. */ +CSwordModuleInfo* const CModuleChooser::ModuleCheckBoxItem::module() const { + return m_module; +} + + +/****************************/ +/****************************/ +/****************************/ + +CModuleChooser::CModuleChooser(QWidget* parent) : KListView(parent) { + initView(); + initTree(); +} + +CModuleChooser::~CModuleChooser() {} + +void CModuleChooser::show() { + KListView::show(); + + //open module items + QListViewItemIterator it( this ); + for ( ; it.current(); ++it ) { + if ( ModuleCheckBoxItem* i = dynamic_cast(it.current()) ) { + if (i->isOn()) { + ensureItemVisible(i); + }; + } + } +} + +/** Initializes this widget and the childs of it. */ +void CModuleChooser::initView() { + addColumn( i18n("Work") ); + setRootIsDecorated(true); + // header()->hide(); + setFullWidth(true); +} + +/** Initializes the tree of this widget. */ +void CModuleChooser::initTree() { + ListCSwordModuleInfo mods = backend()->moduleList(); + /** + * The next steps: + * 1. Sort by type + * 2. Sort the modules of this type by their language + * 3. Create the subfolders for this + */ + + QMap typenameMap; + typenameMap.insert(CSwordModuleInfo::Bible, i18n("Bibles")); + typenameMap.insert(CSwordModuleInfo::Commentary, i18n("Commentaries")); + typenameMap.insert(CSwordModuleInfo::Lexicon, i18n("Lexicons")); + typenameMap.insert(CSwordModuleInfo::GenericBook, i18n("Books")); + + int type = CSwordModuleInfo::Bible; + bool ok = true; + bool addedDevotionals = false; + bool addedGlossaries = false; + bool addedLexs = false; + bool incType = false; + + while (ok) { + ListCSwordModuleInfo modsForType; + QString typeFolderCaption = QString::null; + incType = false; + if (static_cast(type) == CSwordModuleInfo::Lexicon) { + if (!addedLexs) { + // for (mods.first(); mods.current(); mods.next()) { + ListCSwordModuleInfo::iterator end_it = mods.end(); + for (ListCSwordModuleInfo::iterator it(mods.begin()); it != end_it; ++it) { + if (((*it)->type() == CSwordModuleInfo::Lexicon) + && ((*it)->category() != CSwordModuleInfo::DailyDevotional) + && ((*it)->category() != CSwordModuleInfo::Glossary) + ) { + modsForType.append( *it ); + }; + }; + + addedLexs = true; + typeFolderCaption = QString::null; + } + else if (!addedDevotionals) { + // for (mods.first(); mods.current(); mods.next()) { + ListCSwordModuleInfo::iterator end_it = mods.end(); + for (ListCSwordModuleInfo::iterator it(mods.begin()); it != end_it; ++it) { + if ((*it)->category() == CSwordModuleInfo::DailyDevotional) { + modsForType.append(*it); + }; + }; + addedDevotionals = true; + typeFolderCaption = i18n("Daily Devotionals"); + } + else if (!addedGlossaries) { + // for (mods.first(); mods.current(); mods.next()) { + ListCSwordModuleInfo::iterator end_it = mods.end(); + for (ListCSwordModuleInfo::iterator it(mods.begin()); it != end_it; ++it) { + if ((*it)->category() == CSwordModuleInfo::Glossary) { + modsForType.append(*it); + }; + }; + addedGlossaries = true; + typeFolderCaption = i18n("Glossaries"); + }; + + if (addedLexs && addedDevotionals && addedGlossaries) + incType = true; + } + else if (type == CSwordModuleInfo::Bible || type == CSwordModuleInfo::Commentary || type == CSwordModuleInfo::GenericBook) { + // for (mods.first(); mods.current(); mods.next()) { + ListCSwordModuleInfo::iterator end_it = mods.end(); + for (ListCSwordModuleInfo::iterator it(mods.begin()); it != end_it; ++it) { + if ((*it)->type() == type) { + modsForType.append(*it); + }; + }; + incType = true; + } + else + ok = false; + + if (typeFolderCaption.isEmpty()) { + typeFolderCaption = typenameMap[static_cast(type)]; + } + + //get the available languages of the selected modules + QStringList langs; + // for (modsForType.first(); modsForType.current(); modsForType.next()) { + ListCSwordModuleInfo::iterator end_it = modsForType.end(); + for (ListCSwordModuleInfo::iterator it(modsForType.begin()); it != end_it; ++it) { + if ( !langs.contains(QString( (*it)->module()->Lang() ))) { + langs.append( (*it)->module()->Lang() ); + } + }; + langs.sort(); + + //go through the list of languages and create subfolders for each language and the modules of the language + QListViewItem* typeFolder = 0; + if (modsForType.count()) { + typeFolder = new QListViewItem(this, typeFolder, typeFolderCaption); + } + else { + if (incType) { + type++; + } + continue; + }; + + + QString language = QString::null; + CLanguageMgr* langMgr = languageMgr(); + for ( QStringList::Iterator it = langs.begin(); it != langs.end(); ++it ) { + language = langMgr->languageForAbbrev(*it)->translatedName(); + if (language.isEmpty()) { + language = (*it); + } + + QListViewItem* langFolder = new QListViewItem(typeFolder,language); + langFolder->setPixmap(0, SmallIcon(CResMgr::mainIndex::closedFolder::icon, 16)); + + //create the module items of this lang folder + // for (modsForType.first(); modsForType.current(); modsForType.next()) { + ListCSwordModuleInfo::iterator end_modItr = modsForType.end(); + for (ListCSwordModuleInfo::iterator mod_Itr(modsForType.begin()); mod_Itr != end_modItr; ++mod_Itr) { + if (QString( (*mod_Itr)->module()->Lang() ) == (*it) ) { //found correct language + ModuleCheckBoxItem* i = new ModuleCheckBoxItem(langFolder, *mod_Itr); + i->setPixmap(0, CToolClass::getIconForModule(*mod_Itr)); + }; + }; + }; + typeFolder->setPixmap(0,SmallIcon(CResMgr::mainIndex::closedFolder::icon, 16)); + + if (incType) { + ++type; + } + }; +} + +/** Returns a list of selected modules. */ +ListCSwordModuleInfo CModuleChooser::modules() { + ListCSwordModuleInfo mods; + QListViewItemIterator it( this ); + for ( ; it.current(); ++it ) { + if ( ModuleCheckBoxItem* i = dynamic_cast(it.current()) ) { + //add the module if the box is checked + if (i->isOn()) { + mods.append(i->module()); + }; + }; + }; + + return mods; +} + +/** Sets the list of modules and updates the state of the checkbox items. */ +void CModuleChooser::setModules( ListCSwordModuleInfo modules ) { + // qWarning("CModuleChooser::setModules( ListCSwordModuleInfo modules )"); + QListViewItemIterator it( this ); + for ( ; it.current(); ++it ) { + if ( ModuleCheckBoxItem* i = dynamic_cast(it.current()) ) { + i->setOn(modules.contains(i->module())); //set the status for the module checkbox item + // if (i->isOn()) { //if it's checked, show the item + // qWarning("show item!"); + // ensureItemVisible(i); + // } + } + }; +} + +/****************************/ + +CModuleChooserDialog::CModuleChooserDialog( QWidget* parentDialog, ListCSwordModuleInfo modules ) : +KDialogBase(Plain, i18n("Choose work(s)"), Ok, Ok, parentDialog, "CModuleChooser", false, true) { + initView(); + initConnections(); + + m_moduleChooser->setModules(modules); +}; + +CModuleChooserDialog::~CModuleChooserDialog() {} +; + +/** Initializes the view of this dialog */ +void CModuleChooserDialog::initView() { + setButtonOKText(i18n("Use chosen work(s)")); + + QFrame* page = plainPage(); + QHBoxLayout* layout = new QHBoxLayout(page); + m_moduleChooser = new CModuleChooser(page); + m_moduleChooser->setMinimumSize(320,400); + layout->addWidget(m_moduleChooser); +} + +/** Initializes the connections of this dialog. */ +void CModuleChooserDialog::initConnections() {} + +/** Reimplementation to handle the modules. */ +void CModuleChooserDialog::slotOk() { + emit modulesChanged( m_moduleChooser->modules() ); + + KDialogBase::slotOk(); +} + + } //end of namespace Search::Options +} //end of namespace Search diff --git a/bibletime/frontend/searchdialog/cmodulechooser.h b/bibletime/frontend/searchdialog/cmodulechooser.h new file mode 100644 index 0000000..b40010e --- /dev/null +++ b/bibletime/frontend/searchdialog/cmodulechooser.h @@ -0,0 +1,117 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CMODULECHOOSER_H +#define CMODULECHOOSER_H + +//BibleTime includes + +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordbackend.h" +#include "backend/cswordmodulesearch.h" + +#include "util/cpointers.h" + +//Sword includes + + +//Qt includes +#include +#include +#include +#include +#include + +//KDE includes +#include +#include +#include + +namespace Search { + namespace Options { + +class CModuleChooser : public KListView, public CPointers { + Q_OBJECT +public: + class ModuleCheckBoxItem : virtual public QCheckListItem { + public: + ModuleCheckBoxItem(QListViewItem* item, CSwordModuleInfo* module); + ~ModuleCheckBoxItem(); + /** + * Returns the used module. + */ + CSwordModuleInfo* const module() const; + private: + CSwordModuleInfo* m_module; + }; + + CModuleChooser(QWidget* parent); + ~CModuleChooser(); + /** + * Sets the list of modules and updates the state of the checkbox items. + */ + void setModules( ListCSwordModuleInfo modules ); + /** + * Returns a list of selected modules. + */ + ListCSwordModuleInfo modules(); + +public slots: + /** + * Reimplemented to open the folders which contain checked module items + */ + virtual void show(); + + +protected: // Protected methods + /** + * Initializes this widget and the childs of it. + */ + void initView(); + /** + * Initializes the tree of this widget. + */ + void initTree(); +}; + +class CModuleChooserDialog : public KDialogBase { + Q_OBJECT +public: + CModuleChooserDialog(QWidget* parentDialog, ListCSwordModuleInfo modules); + ~CModuleChooserDialog(); + +signals: + void modulesChanged(ListCSwordModuleInfo modules); + +protected: // Protected methods + /** + * Initializes the view of this dialog + */ + void initView(); + /** + * Initializes the connections of this dialog. + */ + void initConnections(); + +protected slots: // Protected slots + /** + * Reimplementation to handle the modules. + */ + virtual void slotOk(); + +private: + CModuleChooser* m_moduleChooser; +}; + + } //end of namespace Search.Options +} //end of namespace Search + +#endif diff --git a/bibletime/frontend/searchdialog/cmoduleresultview.cpp b/bibletime/frontend/searchdialog/cmoduleresultview.cpp new file mode 100644 index 0000000..a3e1463 --- /dev/null +++ b/bibletime/frontend/searchdialog/cmoduleresultview.cpp @@ -0,0 +1,269 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cmoduleresultview.h" + +#include "backend/cswordmoduleinfo.h" + +#include "frontend/util/csortlistviewitem.h" +#include "frontend/cexportmanager.h" + +#include "util/cresmgr.h" +#include "util/ctoolclass.h" + +//Qt includes + +//KDE includes +#include +#include +#include + + +namespace Search { + namespace Result { + +/******************************************** +************ ModuleResultList ************** +********************************************/ + +CModuleResultView::CModuleResultView(QWidget* parent, const char* name) : + KListView(parent, name) { + initView(); + initConnections(); + strongsResults = 0; +}; + +CModuleResultView::~CModuleResultView() {} +; + +/** Initializes this widget. */ +void CModuleResultView::initView() { + addColumn(i18n("Work")); + addColumn(i18n("Hits")); + setFullWidth(true); + + // setFullWidth(true); + setSorting(0, true); + setSorting(1, true); + setAllColumnsShowFocus(true); + + + //setup the popup menu + m_popup = new KPopupMenu(this); + // m_popup->insertTitle(i18n("Bible window")); + + m_actions.copyMenu = new KActionMenu(i18n("Copy..."), CResMgr::searchdialog::result::moduleList::copyMenu::icon, m_popup); + m_actions.copyMenu->setDelayed(false); + m_actions.copy.result = new KAction(i18n("Reference only"), KShortcut(0), this, SLOT(copyResult()), this); + m_actions.copyMenu->insert(m_actions.copy.result); + m_actions.copy.resultWithText = new KAction(i18n("Reference with text"), KShortcut(0), this, SLOT(copyResultWithText()), this); + m_actions.copyMenu->insert(m_actions.copy.resultWithText); + m_actions.copyMenu->plug(m_popup); + + m_actions.saveMenu = new KActionMenu(i18n("Save..."), CResMgr::searchdialog::result::moduleList::saveMenu::icon, m_popup); + m_actions.saveMenu->setDelayed( false ); + m_actions.save.result = new KAction(i18n("Reference only"), KShortcut(0), this, SLOT(saveResult()), this); + m_actions.saveMenu->insert(m_actions.save.result); + m_actions.save.resultWithText = new KAction(i18n("Reference with text"), KShortcut(0), this, SLOT(saveResultWithText()), this); + m_actions.saveMenu->insert(m_actions.save.resultWithText); + m_actions.saveMenu->plug(m_popup); + + m_actions.printMenu = new KActionMenu(i18n("Print..."), CResMgr::searchdialog::result::moduleList::printMenu::icon, m_popup); + m_actions.printMenu->setDelayed(false); + m_actions.print.result = new KAction(i18n("Reference with text"), KShortcut(0), this, SLOT(printResult()), this); + m_actions.printMenu->insert(m_actions.print.result); + + + m_actions.printMenu->plug(m_popup); +} + +/** Initializes the connections of this widget, */ +void CModuleResultView::initConnections() { + connect(this, SIGNAL(currentChanged(QListViewItem*)), + this, SLOT(executed(QListViewItem*))); + connect(this, SIGNAL(contextMenu(KListView*, QListViewItem*, const QPoint&)), + this, SLOT(showPopup(KListView*, QListViewItem*, const QPoint&))); +} + +/** Setups the tree using the given list of modules. */ +void CModuleResultView::setupTree( ListCSwordModuleInfo modules, const QString& searchedText ) { + clear(); + + util::CSortListViewItem* item = 0; + util::CSortListViewItem* oldItem = 0; + sword::ListKey result; + + if (strongsResults) { + delete strongsResults; + strongsResults = 0; + } + + bool strongsAvailable = false; + + ListCSwordModuleInfo::iterator end_it = modules.end(); + for (ListCSwordModuleInfo::iterator it(modules.begin()); it != end_it; ++it) { + // for (modules.first(); modules.current(); modules.next()) { + result = (*it)->searchResult(); + + item = new util::CSortListViewItem(this, (*it)->name(), QString::number(result.Count()) ); + item->setColumnSorting(1, util::CSortListViewItem::Number); + + item->setPixmap(0,CToolClass::getIconForModule(*it) ); + oldItem = item; + //---------------------------------------------------------------------- + // we need to make a decision here. Either don't show any Strong's + // number translations, or show the first one in the search text, or + // figure out how to show them all. + // I choose option number 2 at this time. + //---------------------------------------------------------------------- + int sstIndex, sTokenIndex; // strong search text index for finding "strong:" + if ((sstIndex = searchedText.find("strong:", 0)) != -1) { + QString sNumber; + //-------------------------------------------------- + // get the strongs number from the search text + //-------------------------------------------------- + // first find the first space after "strong:" + // this should indicate a change in search token + sstIndex = sstIndex + 7; + sTokenIndex = searchedText.find(" ", sstIndex); + sNumber = searchedText.mid(sstIndex, sTokenIndex - sstIndex); + + setupStrongsResults((*it), item, sNumber); + + item->setOpen(true); + strongsAvailable = true; + } + }; + + //Allow to hide the module strongs if there are any available + setRootIsDecorated( strongsAvailable ); + + setSelected(currentItem(), true); + executed(currentItem()); +} + +void CModuleResultView::setupStrongsResults(CSwordModuleInfo* module, QListViewItem* parent, + const QString& sNumber) { + QString lText; + util::CSortListViewItem* item = 0; + + strongsResults = new StrongsResultClass(module, sNumber); + + for (int cnt = 0; cnt < strongsResults->Count(); ++cnt) { + lText = strongsResults->keyText(cnt); + + item = new util::CSortListViewItem(parent, lText, QString::number(strongsResults->keyCount(cnt))); + item->setColumnSorting(1, util::CSortListViewItem::Number); + } +} + + +/** Is executed when an item was selected in the list. */ +void CModuleResultView::executed( QListViewItem* i ) { + QString itemText, lText; + + if (CSwordModuleInfo* m = CPointers::backend()->findModuleByName(i->text(0))) { + emit moduleChanged(); + emit moduleSelected(m); + return; + } + + if (!strongsResults) { + return; + } + + itemText = i->text(0); + for (int cnt = 0; cnt < strongsResults->Count(); cnt++) { + lText = strongsResults->keyText(cnt); + if (lText == itemText) { + //clear the verses list + emit moduleChanged(); + emit strongsSelected(activeModule(), strongsResults->getKeyList(cnt)); + return; + } + } +} + +/** Returns the currently active module. */ +CSwordModuleInfo* const CModuleResultView::activeModule() { + Q_ASSERT(currentItem()); + + QListViewItem* item = currentItem(); + if (!item) { + return 0; + } + + // we need to find the parent most node because that is the node + // that is the module name. + while (item->parent()) { + item = item->parent(); + } + + if (item) { + return CPointers::backend()->findModuleByName(item->text(0)); + } + + return 0; +} + +/** No descriptions */ +void CModuleResultView::showPopup(KListView*, QListViewItem*, const QPoint& point) { + //make sure that all entries have the correct status + m_popup->exec(point); +} + +/** Copies the whole search result into the clipboard. */ +void CModuleResultView::copyResult() { + if (CSwordModuleInfo* m = activeModule()) { + sword::ListKey result = m->searchResult(); + CExportManager mgr(i18n("Copy search result..."), true, i18n("Copying search result")); + mgr.copyKeyList(&result,m,CExportManager::Text,false); + }; +} + +/** Copies the whole search result with the text into the clipboard. */ +void CModuleResultView::copyResultWithText() { + if (CSwordModuleInfo* m = activeModule()) { + sword::ListKey result = m->searchResult(); + CExportManager mgr(i18n("Copy search result..."), true, i18n("Copying search result")); + mgr.copyKeyList(&result,m,CExportManager::Text,true); + }; +} + +/** Saves the search result keys. */ +void CModuleResultView::saveResult() { + if (CSwordModuleInfo* m = activeModule()) { + sword::ListKey result = m->searchResult(); + CExportManager mgr(i18n("Save search result..."), true, i18n("Saving search result")); + mgr.saveKeyList(&result,m,CExportManager::Text,false); + }; +} + +/** Saves the search result with it's text. */ +void CModuleResultView::saveResultWithText() { + if (CSwordModuleInfo* m = activeModule()) { + sword::ListKey result = m->searchResult(); + CExportManager mgr(i18n("Save search result..."), true, i18n("Saving search result")); + mgr.saveKeyList(&result,m,CExportManager::Text,true); + }; +} + +/** Appends the whole search result to the printer queue. */ +void CModuleResultView::printResult() { + if (CSwordModuleInfo* m = activeModule()) { + sword::ListKey result = m->searchResult(); + CExportManager mgr(i18n("Print search result..."), true, i18n("Printing search result")); + mgr.printKeyList(&result,m,CBTConfig::getDisplayOptionDefaults(), CBTConfig::getFilterOptionDefaults()); + }; +} + + } //end of namespace Search.Result +} //end of namespace Search diff --git a/bibletime/frontend/searchdialog/cmoduleresultview.h b/bibletime/frontend/searchdialog/cmoduleresultview.h new file mode 100644 index 0000000..7153f6f --- /dev/null +++ b/bibletime/frontend/searchdialog/cmoduleresultview.h @@ -0,0 +1,135 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CMODULERESULTSVIEW_H +#define CMODULERESULTSVIEW_H + +//BibleTime includes +#include "backend/cswordmoduleinfo.h" +#include "csearchdialogpages.h" + +//Qt includes + +//KDE includes +#include + +//forward declarations +class QLabel; +class QCheckBox; +class QPushButton; +class QRadioButton; + +class KComboBox; +class KActionMenu; +class KAction; +class KHistoryCombo; +class KProgress; +class KPopupMenu; + +class CReadDisplay; + +namespace Search { + namespace Result { + +class CModuleResultView : public KListView { + Q_OBJECT +public: + CModuleResultView(QWidget* parent, const char* name = 0); + ~CModuleResultView(); + + /** + * Setups the tree using the given list of modules. + */ + void setupTree( ListCSwordModuleInfo modules, const QString& searchedText ); + /** + * Returns the currently active module. + */ + CSwordModuleInfo* const activeModule(); + +protected: // Protected methods + /** + * Initializes this widget. + */ + void initView(); + /** + * Initializes the connections of this widget + */ + void initConnections(); + + void setupStrongsResults(CSwordModuleInfo* module, QListViewItem* parent, const QString& searchedText); + +protected slots: // Protected slots + /** + * Is executed when an item was selected in the list. + */ + void executed( QListViewItem* ); + /** + * Copies the whole search result with the text into the clipboard. + */ + void copyResultWithText(); + /** + * Copies the whole search result into the clipboard. + */ + void copyResult(); + /** + * This slot opens the popup menu at the given position + */ + void showPopup(KListView*, QListViewItem*, const QPoint&); + /** + * Appends the whole search result to the printer queue. + */ + void printResult(); + /** + * Saves the search result with it's text. + */ + void saveResultWithText(); + /** + * Saves the search result keys. + */ + void saveResult(); + +signals: + void moduleSelected(CSwordModuleInfo*); + void moduleChanged(); + void strongsSelected(CSwordModuleInfo*, QStringList*); + +private: + struct { + KActionMenu* saveMenu; + struct { + KAction* result; + KAction* resultWithText; + } + save; + + KActionMenu* printMenu; + struct { + KAction* result; + } + print; + + KActionMenu* copyMenu; + struct { + KAction* result; + KAction* resultWithText; + } + copy; + + } m_actions; + + KPopupMenu* m_popup; + StrongsResultClass* strongsResults; +}; + + } //end of namespace Search::Result +} //end of namespace Search + +#endif diff --git a/bibletime/frontend/searchdialog/crangechooser.cpp b/bibletime/frontend/searchdialog/crangechooser.cpp new file mode 100644 index 0000000..ca9aac9 --- /dev/null +++ b/bibletime/frontend/searchdialog/crangechooser.cpp @@ -0,0 +1,287 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "crangechooser.h" + +#include "backend/cswordkey.h" +#include "backend/cswordversekey.h" + +#include "frontend/cbtconfig.h" + +#include "util/cresmgr.h" +#include "util/ctoolclass.h" + +//Qt includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//KDE includes +#include +#include +#include +#include + +namespace Search { + namespace Options { + +/****************************/ +CRangeChooserDialog::RangeItem::RangeItem(QListView* view, QListViewItem* afterThis, const QString caption, const QString range) : KListViewItem(view, afterThis) { + setCaption(caption); + setRange(range); +} + +CRangeChooserDialog::RangeItem::~RangeItem() {} + +const QString& CRangeChooserDialog::RangeItem::range() { + // qWarning("ange is %s", (const char*)m_range.utf8()); + return m_range; +} + +void CRangeChooserDialog::RangeItem::setRange(QString newRange) { + m_range = newRange; +} + +const QString CRangeChooserDialog::RangeItem::caption() { + return text(0); +} + +void CRangeChooserDialog::RangeItem::setCaption(const QString newCaption) { + setText(0, newCaption); +} + + +/**************************/ +CRangeChooserDialog::CRangeChooserDialog( QWidget* parentDialog ) : KDialogBase(Plain, i18n("Search range editor"), Default | Ok | Cancel, Ok, parentDialog, "CRangeChooserDialog", false, true) { + initView(); + initConnections(); + + //add the existing scopes + CBTConfig::StringMap map = CBTConfig::get + (CBTConfig::searchScopes); + CBTConfig::StringMap::Iterator it; + for (it = map.begin(); it != map.end(); ++it) { + new RangeItem(m_rangeList, 0, it.key(), it.data()); + }; + + editRange(0); + if (RangeItem* i = dynamic_cast(m_rangeList->currentItem()) + ) { + nameChanged(i->caption()); + } +} + +CRangeChooserDialog::~CRangeChooserDialog() {} + +/** Initializes the view of this object. */ +void CRangeChooserDialog::initView() { + // setButtonOKText(i18n("")); + + QGridLayout* grid = new QGridLayout(plainPage(),6,5,0,3); + + m_rangeList = new KListView(plainPage()); + m_rangeList->addColumn(i18n("Search range")); + m_rangeList->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding)); + m_rangeList->setFullWidth(true); + m_rangeList->setSorting(0, true); + m_rangeList->header()->setClickEnabled(false); + m_rangeList->header()->setMovingEnabled(false); + grid->addMultiCellWidget(m_rangeList,0,4,0,1); + + m_newRangeButton = new QPushButton(i18n("Add new range"),plainPage()); + connect(m_newRangeButton, SIGNAL(clicked()), this, SLOT(addNewRange())); + grid->addWidget(m_newRangeButton,5,0); + + m_deleteRangeButton = new QPushButton(i18n("Delete current range"),plainPage()); + connect(m_deleteRangeButton, SIGNAL(clicked()), this, SLOT(deleteCurrentRange())); + grid->addWidget(m_deleteRangeButton,5,1); + + grid->addColSpacing(2, 5); + + QLabel* label = new QLabel(i18n("Name:"), plainPage()); + m_nameEdit = new QLineEdit(plainPage()); + grid->addWidget(label,0,3); + grid->addWidget(m_nameEdit,0,4); + + label = new QLabel(i18n("Edit current search range:"), plainPage()); + label->setFixedSize(label->sizeHint()); + m_rangeEdit = new QTextEdit(plainPage()); + m_rangeEdit->setTextFormat(Qt::PlainText); + grid->addMultiCellWidget(label,1,1,3,4); + grid->addMultiCellWidget(m_rangeEdit,2,2,3,4); + + grid->addRowSpacing(3, 10); + + m_resultList = new KListView(plainPage()); + m_resultList->addColumn(i18n("Parsed search range:")); + m_resultList->setFullWidth(true); + m_resultList->setSorting(-1); + m_resultList->setShowSortIndicator(false); + m_resultList->header()->setClickEnabled(false); + m_resultList->header()->setMovingEnabled(false); + m_resultList->setSelectionModeExt(KListView::NoSelection); + + grid->addMultiCellWidget(m_resultList, 4,5,3,4); + + grid->setRowStretch(4,5); +} + +/** Initializes the connections of this widget. */ +void CRangeChooserDialog::initConnections() { + connect(m_rangeList, SIGNAL(selectionChanged(QListViewItem*)), + this, SLOT(editRange(QListViewItem*))); + + connect(m_rangeEdit, SIGNAL(textChanged()), + this, SLOT(parseRange())); + connect(m_rangeEdit, SIGNAL(textChanged()), + this, SLOT(rangeChanged())); + + connect(m_nameEdit, SIGNAL(textChanged(const QString&)), + this, SLOT(nameChanged(const QString&))); +} + +/** Adds a new range to the list. */ +void CRangeChooserDialog::addNewRange() { + RangeItem* i = new RangeItem(m_rangeList, m_rangeList->lastItem(), i18n("New range")); + m_rangeList->setSelected(i, true); + m_rangeList->setCurrentItem(i); + editRange(i); + + m_nameEdit->setFocus(); +} + +/** No descriptions */ +void CRangeChooserDialog::editRange(QListViewItem* item) { + RangeItem* const range = dynamic_cast(item); + + m_nameEdit->setEnabled( range ); //only if an item is selected enable the edit part + m_rangeEdit->setEnabled( range ); + m_resultList->setEnabled( range ); + m_deleteRangeButton->setEnabled( range ); + + if (range) { + m_nameEdit->setText(range->caption()); + m_rangeEdit->setText(range->range()); + } +} + +/** Parses the entered text and prints out the result in the list box below the edit area. */ +void CRangeChooserDialog::parseRange() { + m_resultList->clear(); + + //hack: repair range to work with Sword 1.5.6 + QString range( m_rangeEdit->text() ); + range.replace(QRegExp("\\s{0,}-\\s{0,}"), "-" ); + + sword::VerseKey key; + sword::ListKey verses = key.ParseVerseList((const char*)range.utf8(), "Genesis 1:1", true); + for (int i = 0; i < verses.Count(); ++i) { + new KListViewItem(m_resultList, QString::fromUtf8(verses.GetElement(i)->getRangeText())); + // qWarning("range=%s, text=%s",verses.GetElement(i)->getRangeText(), verses.GetElement(i)->getText() ); + } + +} + +/** No descriptions */ +void CRangeChooserDialog::rangeChanged() { + if (RangeItem* i = dynamic_cast(m_rangeList->currentItem()) + ) { + QString range( m_rangeEdit->text() ); + //hack: repair range to work with Sword 1.5.6 + range.replace(QRegExp("\\s{0,}-\\s{0,}"), "-" ); + i->setRange(range); + }; +} + +/** No descriptions */ +void CRangeChooserDialog::nameChanged(const QString& newCaption) { + m_rangeEdit->setEnabled(!newCaption.isEmpty()); + m_resultList->setEnabled(!newCaption.isEmpty()); + m_resultList->header()->setEnabled(!newCaption.isEmpty()); + + if (RangeItem* i = dynamic_cast(m_rangeList->currentItem()) + ) { + if (!newCaption.isEmpty()) { + m_newRangeButton->setEnabled(true); + i->setCaption(newCaption); + m_rangeList->sort(); + } + else { //invalid name + i->setCaption(i18n("")); + m_newRangeButton->setEnabled(false); + }; + }; +} + +/** Deletes the selected range. */ +void CRangeChooserDialog::deleteCurrentRange() { + if (RangeItem* i = dynamic_cast(m_rangeList->currentItem()) + ) { + if (QListViewItem* selection = i->itemBelow() ? i->itemBelow() : i->itemAbove()) { + m_rangeList->setSelected(selection, true); + m_rangeList->setCurrentItem(selection); + } + else { + m_rangeList->setSelected(m_rangeList->firstChild(), true); + m_rangeList->setCurrentItem(m_rangeList->firstChild()); + } + delete i; + } + editRange(m_rangeList->currentItem()); +} + +void CRangeChooserDialog::slotOk() { + //save the new map of search scopes + CBTConfig::StringMap map; + QListViewItemIterator it( m_rangeList ); + for (;it.current(); ++it) { + if ( RangeItem* i = dynamic_cast(it.current()) ) { + map[i->caption()] = i->range(); + }; + }; + CBTConfig::set + (CBTConfig::searchScopes, map); + + KDialogBase::slotOk(); +} + +void CRangeChooserDialog::slotDefault() { + m_rangeList->clear(); + CBTConfig::StringMap map = CBTConfig::getDefault(CBTConfig::searchScopes); + CBTConfig::StringMap::Iterator it; + for (it = map.begin(); it != map.end(); ++it) { + new RangeItem(m_rangeList, 0, it.key(), it.data()); + }; + m_rangeList->setSelected(m_rangeList->selectedItem(), false); + m_rangeList->setCurrentItem(0); + + editRange(0); + if (RangeItem* i = dynamic_cast(m_rangeList->currentItem()) + ) { + nameChanged(i->caption()); + } + + KDialogBase::slotDefault(); +} + + } //end of namespace Search::Options +} //end of namespace Search diff --git a/bibletime/frontend/searchdialog/crangechooser.h b/bibletime/frontend/searchdialog/crangechooser.h new file mode 100644 index 0000000..8acb0c6 --- /dev/null +++ b/bibletime/frontend/searchdialog/crangechooser.h @@ -0,0 +1,106 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CRANGECHOOSER_H +#define CRANGECHOOSER_H + +//BibleTime includes +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordbackend.h" + +#include "util/cpointers.h" + +//Sword includes + + +//Qt includes +#include +#include +#include +#include +#include + +//KDE includes +#include +#include +#include + +//forward declarations +class CSearchAnalysisItem; +class CSearchAnalysisLegendItem; +class CSearchAnalysis; +class CSearchAnalysisView; + +class QTextEdit; + +namespace Search { + namespace Options { + +class CRangeChooserDialog : public KDialogBase { + Q_OBJECT +public: + CRangeChooserDialog(QWidget* parentDialog); + ~CRangeChooserDialog(); + +protected: // Protected methods +class RangeItem : public KListViewItem { +public: + RangeItem(QListView*, QListViewItem* afterThis = 0, const QString caption = QString::null, const QString range = QString::null); + ~RangeItem(); + const QString& range(); + const QString caption(); + void setRange(QString range); + void setCaption(const QString); +private: + QString m_range; + }; + + /** + * Initializes the connections of this widget. + */ + void initConnections(); + /** + * Initializes the view of this object. + */ + void initView(); + +protected slots: // Protected slots + /** + * Adds a new range to the list. + */ + void addNewRange(); + void editRange(QListViewItem*); + /** + * Parses the entered text and prints out the result in the list box below the edit area. + */ + void parseRange(); + void nameChanged(const QString&); + void rangeChanged(); + /** + * Deletes the selected range. + */ + void deleteCurrentRange(); + virtual void slotDefault(); + virtual void slotOk(); + +private: + KListView* m_rangeList; + KListView* m_resultList; + QLineEdit* m_nameEdit; + QTextEdit* m_rangeEdit; + QPushButton* m_newRangeButton; + QPushButton* m_deleteRangeButton; +}; + + } //end of namespace Search.Options +} //end of namespace Search + +#endif diff --git a/bibletime/frontend/searchdialog/csearchanalysis.cpp b/bibletime/frontend/searchdialog/csearchanalysis.cpp new file mode 100644 index 0000000..2c64f21 --- /dev/null +++ b/bibletime/frontend/searchdialog/csearchanalysis.cpp @@ -0,0 +1,587 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "csearchanalysis.h" +#include "csearchdialog.h" + +#include "backend/cswordkey.h" +#include "backend/cswordversekey.h" + +#include "frontend/cbtconfig.h" + +#include "util/cresmgr.h" +#include "util/ctoolclass.h" + +//Qt includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//KDE includes +#include +#include +#include +#include + +namespace Search { + namespace Analysis { + +const int SPACE_BETWEEN_PARTS = 5; +const int RIGHT_BORDER = 15; +const int LEFT_BORDER = 15; +const int LOWER_BORDER = 10; +const int UPPER_BORDER = 10; + +const int ITEM_TEXT_SIZE = 8; +const int LABEL_TEXT_SIZE = 6; + +//used for the shift between the bars +const int BAR_DELTAX = 4; +const int BAR_DELTAY = 2; +const int BAR_WIDTH = 2 + (2*BAR_DELTAX); //should be equal or bigger than the label font size +// Used for the text below the bars +const int BAR_LOWER_BORDER = 100; + +const int LEGEND_INNER_BORDER = 5; +const int LEGEND_DELTAY = 4; +const int LEGEND_WIDTH = 85; + +/****************************/ + +CSearchAnalysisDialog::CSearchAnalysisDialog( ListCSwordModuleInfo modules, QWidget* parentDialog ) : KDialogBase(Plain, i18n("Search analysis"), Close, Close, parentDialog, 0, true) { + initView(); + initConnections(); + m_analysis->reset(); + m_analysis->analyse(modules); + showMaximized(); +}; + +CSearchAnalysisDialog::~CSearchAnalysisDialog() {} +; + +/** Initializes this dialog. */ +void CSearchAnalysisDialog::initView() { + QVBoxLayout* layout = new QVBoxLayout(plainPage(),0); + + QPushButton* button = new QPushButton(plainPage(), "button"); + button->setIconSet(SmallIconSet("filesave")); + button->setText(i18n("Save search analysis as HTML")); + button->setFixedSize(button->sizeHint()); + layout->addWidget(button); + layout->addSpacing(10); + + m_analysis = new CSearchAnalysis(plainPage()); + m_analysisView = new CSearchAnalysisView(m_analysis, plainPage()); + m_analysisView->show(); + layout->addWidget(m_analysisView); + + connect(button, SIGNAL(clicked()), m_analysis, SLOT(saveAsHTML())); +} + +/** Initializes the widgets SIGNAL and SLOT connections,. */ +void CSearchAnalysisDialog::initConnections() {} + +/****************************/ +/* CSearchAnalysis */ +/****************************/ + +CSearchAnalysis::CSearchAnalysis(QObject *parent, const char *name ) +: QCanvas(parent,name) { + + m_scaleFactor = 0.0; + m_legend = 0; + setBackgroundColor(Qt::white); + m_canvasItemList.resize(67); + m_canvasItemList.setAutoDelete(true); + resize(1,1); + connect(this, SIGNAL(resized()), SLOT(slotResized())); +} + +CSearchAnalysis::~CSearchAnalysis() {} + +QDict* CSearchAnalysis::getSearchAnalysisItemList() { + // Returns pointer to the search analysis items + return &m_canvasItemList; +} + +/** Starts the analysis of the search result. This should be called only once because QCanvas handles the updates automatically. */ +void CSearchAnalysis::analyse(ListCSwordModuleInfo modules) { + /** + * Steps of analysing our search result; + * -Create the items for all available books ("Genesis" - "Revelation") + * -Iterate through all modules we analyse + * -Go through all books of this module + * -Find out how many times we found the book + * -Set the count to the items which belongs to the book + */ + setModules(modules); + + m_lastPosList.clear(); + const int numberOfModules = m_moduleList.count(); + if (!numberOfModules) + return; + m_legend = new CSearchAnalysisLegendItem(this, &m_moduleList); + m_legend->setX(LEFT_BORDER); + m_legend->setY(UPPER_BORDER); + m_legend->setSize(LEGEND_WIDTH, + LEGEND_INNER_BORDER*2 + ITEM_TEXT_SIZE*numberOfModules + LEGEND_DELTAY*(numberOfModules-1)); + m_legend->show(); + + int xPos = LEFT_BORDER + m_legend->width() + SPACE_BETWEEN_PARTS; + int moduleIndex = 0; + m_maxCount = 0; + int count = 0; + CSwordVerseKey key(0); + key.key("Genesis 1:1"); + + CSearchAnalysisItem* analysisItem = m_canvasItemList[key.book()]; + bool ok = true; + while (ok && analysisItem) { + // for (moduleIndex = 0,m_moduleList.first(); m_moduleList.current(); m_moduleList.next(),++moduleIndex) { + moduleIndex = 0; + ListCSwordModuleInfo::iterator end_it = m_moduleList.end(); + for (ListCSwordModuleInfo::iterator it(m_moduleList.begin()); it != end_it; ++it) { + KApplication::kApplication()->processEvents( 10 ); //10 ms only + if (!m_lastPosList.contains(*it)) { + m_lastPosList.insert(*it,0); + } + + analysisItem->setCountForModule(moduleIndex, (count = getCount(key.book(), *it))); + m_maxCount = (count > m_maxCount) ? count : m_maxCount; + + ++moduleIndex; + } + analysisItem->setX(xPos); + analysisItem->setY(UPPER_BORDER); + analysisItem->show(); + + xPos += (int)analysisItem->width() + SPACE_BETWEEN_PARTS; + ok = key.next(CSwordVerseKey::UseBook); + analysisItem = m_canvasItemList[key.book()]; + } + resize(xPos+BAR_WIDTH+(m_moduleList.count()-1)*BAR_DELTAX+RIGHT_BORDER, height() ); + slotResized(); +} + +/** Sets te module list used for the analysis. */ +void CSearchAnalysis::setModules(ListCSwordModuleInfo modules) { + m_moduleList.clear(); + // for (modules.first(); modules.current(); modules.next()) { + ListCSwordModuleInfo::iterator end_it = modules.end(); + for (ListCSwordModuleInfo::iterator it(modules.begin()); it != end_it; ++it) { + if ( ((*it)->type() == CSwordModuleInfo::Bible) || ((*it)->type() == CSwordModuleInfo::Commentary) ) { //a Bible or an commentary + m_moduleList.append(*it); + } + } + + m_canvasItemList.clear(); + CSearchAnalysisItem* analysisItem = 0; + CSwordVerseKey key(0); + key.key("Genesis 1:1"); + do { + analysisItem = new CSearchAnalysisItem(this, m_moduleList.count(), key.book(), &m_scaleFactor, &m_moduleList); + analysisItem->hide(); + m_canvasItemList.insert(key.book(), analysisItem); + } + while (key.next(CSwordVerseKey::UseBook)); + update(); +} + +/** Sets back the items and deletes things to cleanup */ +void CSearchAnalysis::reset() { + m_scaleFactor = 0.0; + + QDictIterator it( m_canvasItemList ); // iterator for items + while ( it.current() ) { + it.current()->hide(); + ++it; + } + m_lastPosList.clear(); + + if (m_legend) { + m_legend->hide(); + } + + delete m_legend; + m_legend = 0; + + update(); +} + +/** No descriptions */ +void CSearchAnalysis::slotResized() { + m_scaleFactor = (double)( (double)(height()-UPPER_BORDER-LOWER_BORDER-BAR_LOWER_BORDER-(m_moduleList.count()-1)*BAR_DELTAY) + /(double)m_maxCount); + QDictIterator it( m_canvasItemList ); + while ( it.current() ) { + it.current()->setSize(BAR_WIDTH + (m_moduleList.count()-1)*BAR_DELTAX, height()-UPPER_BORDER-LOWER_BORDER); + it.current()->setY(UPPER_BORDER); + ++it; + } + update(); +} + +/** This function returns a color for each module */ +QColor CSearchAnalysis::getColor(int index) { + switch (index) { + case 0: + return Qt::red; + case 1: + return Qt::darkGreen; + case 2: + return Qt::blue; + case 3: + return Qt::cyan; + case 4: + return Qt::magenta; + case 5: + return Qt::darkRed; + case 6: + return Qt::darkGray; + case 7: + return Qt::black; + case 8: + return Qt::darkCyan; + case 9: + return Qt::darkMagenta; + default: + return Qt::red; + } +} + +/** Returns the count of the book in the module */ +const unsigned int CSearchAnalysis::getCount( const QString book, CSwordModuleInfo* module ) { + sword::ListKey& result = module->searchResult(); + const int length = book.length(); + unsigned int i = m_lastPosList[module]; + unsigned int count = 0; + const unsigned int resultCount = result.Count(); + while (i < resultCount) { + if ( strncmp(book.utf8(), (const char*)*result.GetElement(i), length) ) + break; + i++; + ++count; + } + m_lastPosList.contains(module) ? m_lastPosList.replace(module,i) : m_lastPosList.insert(module,i); + + return count; +} + + +//------------------------------------------------------------------ +//------------------------------------------------------------------ + +CSearchAnalysisItem::CSearchAnalysisItem(QCanvas *parent, const int moduleCount, const QString &bookname, double *scaleFactor, ListCSwordModuleInfo* modules) +: QCanvasRectangle(parent), +m_moduleList( modules ), +m_scaleFactor(scaleFactor), +m_bookName(bookname), +m_moduleCount(moduleCount), +m_bufferPixmap(0) { + m_resultCountArray.resize(m_moduleCount); + int index = 0; + for (index = 0; index < m_moduleCount; ++index) + m_resultCountArray[index] = 0; +} + +CSearchAnalysisItem::~CSearchAnalysisItem() { + delete m_bufferPixmap; +} + +/** Sets the resultcount of this item for the given module */ +void CSearchAnalysisItem::setCountForModule( const int moduleIndex, const int count) { + m_resultCountArray[moduleIndex] = count; +} + +/** Returns the resultcount of this item for the given module */ +int CSearchAnalysisItem::getCountForModule( const int moduleIndex) { + return m_resultCountArray[moduleIndex]; +} + +/** Reimplementation. Draws the content of this item. */ +void CSearchAnalysisItem::draw(QPainter& painter) { + QFont f = painter.font(); + f.setPointSize(ITEM_TEXT_SIZE); + painter.setFont(f); + + setPen(QPen(black,1)); + setBrush(Qt::red); + /** + * We have to paint so many bars as we have modules available (we use m_moduleCount) + * We paint inside the area which is given by height and width of this rectangle item + */ + int index = 0; + int drawn = 0; + int Value = 0; + + //find out the biggest value + for (index=0;index < m_moduleCount; index++) { + if (m_resultCountArray[index] > Value) { + Value = m_resultCountArray[index]; + } + }; + + while (drawn < m_moduleCount) { + for (index = 0; index < m_moduleCount; index++) { + if (m_resultCountArray[index] == Value) { + QPoint p1((int)x() + (m_moduleCount-drawn-1)*BAR_DELTAX, + (int)height() + (int)y() - BAR_LOWER_BORDER - (m_moduleCount-drawn)*BAR_DELTAY); + QPoint p2(p1.x() + BAR_WIDTH, + p1.y() - (int)( !m_resultCountArray[index] ? 0 : ((m_resultCountArray[index])*(*m_scaleFactor))) ); + QRect r(p1, p2); + painter.fillRect(r, QBrush(CSearchAnalysis::getColor(index)) ); + painter.drawRect(r); + drawn++; + } + } + //finds the next smaller value + int newValue = 0; + for (index=0;index < m_moduleCount; index++) + if (m_resultCountArray[index] < Value && m_resultCountArray[index] >= newValue) + newValue = m_resultCountArray[index]; + Value = newValue; + } + if (!m_bufferPixmap) { + m_bufferPixmap = new QPixmap(); + m_bufferPixmap->resize(width(),BAR_LOWER_BORDER); + m_bufferPixmap->fill(); + QPainter p(m_bufferPixmap); + f = p.font(); + f.setPointSize(ITEM_TEXT_SIZE); + p.setFont(f); + p.rotate(90); + p.drawText(QPoint(5,0), m_bookName); + } + painter.drawPixmap(QPoint(int(x()),int(height()+y()-BAR_LOWER_BORDER)), *m_bufferPixmap); +} + +/** Returns the width of this item. */ +int CSearchAnalysisItem::width() { + return m_moduleCount*(m_moduleCount>1 ? BAR_DELTAX : 0) + BAR_WIDTH; +} + +/** Returns the tooltip for this item. */ +const QString CSearchAnalysisItem::getToolTip() { + QString ret = QString("
%1

").arg(m_bookName); + ret += ""; + + //ToDo: Fix that loop + int i = 0; + ListCSwordModuleInfo::iterator end_it = m_moduleList->end(); + + for (ListCSwordModuleInfo::iterator it(m_moduleList->begin()); it != end_it; ++it) { + // for (int i = 0; i < m_moduleCount; ++i) { + CSwordModuleInfo* info = (*it); + const QColor c = CSearchAnalysis::getColor(i); + + ret.append( + QString("") + .arg(QString().sprintf("%02X%02X%02X",c.red(),c.green(),c.blue())) + .arg(info ? info->name() : QString::null) + .arg( m_resultCountArray[i] ) + .arg( (info && m_resultCountArray[i])? ((double)m_resultCountArray[i] / (double)info->searchResult().Count())*(double)100 : 0.0, 0, 'g', 2) + ); + ++i; + } + + ret += "
%2%3 (%4%)
"; + + return ret; +} + +//------------------------------------------------------------------ +//------------------------------------------------------------------ + +CSearchAnalysisView::CSearchAnalysisView(QCanvas* canvas, QWidget* parent) +: QCanvasView(canvas, parent) { + setFocusPolicy(QWidget::WheelFocus); + m_toolTip = new ToolTip(this); + resize(sizeHint()); +} + +/** Returns the sizeHint for this view */ +QSize CSearchAnalysisView::sizeHint() { + if ( parentWidget() ) + return parentWidget()->sizeHint(); + return QCanvasView::sizeHint(); +} + +/** No descriptions */ +void CSearchAnalysisView::resizeEvent( QResizeEvent* e) { + QCanvasView::resizeEvent(e); + canvas()->resize( canvas()->width(), viewport()->height() ); +} + +CSearchAnalysisView::ToolTip::ToolTip(QWidget* parent) : QToolTip(parent) {} + +void CSearchAnalysisView::ToolTip::maybeTip(const QPoint& p) { + CSearchAnalysisView* view = dynamic_cast(parentWidget()); + if (!view) + return; + QPoint point(p); + point = view->viewport()->mapFrom(view, point); + CSearchAnalysisItem* i = view->itemAt( view->viewportToContents(point) ); + if (!i) + return; + + //get type of item and display correct text + QString text = i->getToolTip(); + if (text.isEmpty()) + return; + + QPoint p1 = view->viewport()->mapTo(view, view->contentsToViewport(i->rect().topLeft())); + p1.setY(0); + QPoint p2 = view->viewport()->mapTo(view, view->contentsToViewport(i->rect().bottomRight())); + p2.setY(view->height()); + QRect r = QRect( p1, p2 ); + if (r.contains(p)) + tip(r, text); +} + + +/** Returns the item at position p. If there no item at that point return 0. */ +CSearchAnalysisItem* CSearchAnalysisView::itemAt( const QPoint& p ) { + QCanvasItemList l = canvas()->collisions(p); + if (!l.count()) + return 0; + return dynamic_cast(l.first()); +} + +//------------------------------------------------------------------ +//------------------------------------------------------------------ + +CSearchAnalysisLegendItem::CSearchAnalysisLegendItem(QCanvas *parent, ListCSwordModuleInfo *list ) +: QCanvasRectangle(parent) { + m_moduleList = list; +} + +/** Reimplementation. Draws the content of this item. */ +void CSearchAnalysisLegendItem::draw (QPainter& painter) { + painter.save(); + + setPen( QPen(black,2) ); + setBrush( Qt::white ); + //the outer rectangle + QPoint p1( (int)x(), (int)y() ); + QPoint p2( (int)x()+width(), (int)y() + height() ); + QRect r(p1, p2); + r.normalize(); + painter.drawRect(r); + + QFont f = painter.font(); + f.setPointSize(ITEM_TEXT_SIZE); + painter.setFont(f); + + // for (unsigned int index=0; index < m_moduleList->count(); index++){ + int moduleIndex = 0; + ListCSwordModuleInfo::iterator end_it = m_moduleList->end(); + for (ListCSwordModuleInfo::iterator it(m_moduleList->begin()); it != end_it; ++it) { + // the module color indicators + QPoint p1( (int)x() + LEGEND_INNER_BORDER, (int)y() + LEGEND_INNER_BORDER + moduleIndex*(LEGEND_DELTAY + ITEM_TEXT_SIZE) ); + QPoint p2(p1.x() + ITEM_TEXT_SIZE, p1.y() + ITEM_TEXT_SIZE); + QRect r(p1,p2); + painter.fillRect(r, QBrush(CSearchAnalysis::getColor(moduleIndex)) ); + r.normalize(); + painter.drawRect(r); + + QPoint p3( p2.x() + LEGEND_INNER_BORDER, p2.y() ); + painter.drawText(p3, (*it)->name() ); + + ++moduleIndex; + } + painter.restore(); +} + +/** No descriptions */ +void CSearchAnalysis::saveAsHTML() { + const QString file = KFileDialog::getSaveFileName(QString::null, + QString("*.html | %1").arg(i18n("HTML files")), + 0, + i18n("Save Search Analysis")); + if (file.isNull()) { + return; + } + + int moduleIndex = 0; + int count = 0; + QString countStr = ""; + QString m_searchAnalysisHTML = ""; + QString tableTitle = ""; + QString tableTotals = ""; + QString VerseRange = ""; + const QString txtCSS = QString("\n"); + const QString metaEncoding = QString(""); + CSwordVerseKey key(0); + sword::ListKey searchResult; + + key.key("Genesis 1:1"); + + CSearchAnalysisItem* analysisItem = m_canvasItemList.find( key.book() ); + + QString text = "\n\n" + i18n("BibleTime Search Analysis") + "\n" + txtCSS + metaEncoding + "\n\n"; + text += "\n\n"; + + tableTitle = ""; + tableTotals = ""; + // for (moduleIndex = 0,m_moduleList.first(); m_moduleList.current(); m_moduleList.next(),++moduleIndex) { + moduleIndex = 0; + ListCSwordModuleInfo::iterator end_it = m_moduleList.end(); + for (ListCSwordModuleInfo::iterator it(m_moduleList.begin()); it != end_it; ++it) { + tableTitle += QString(""); + searchResult = (*it)->searchResult(); + countStr.setNum(searchResult.Count()); + + tableTotals += QString(""); + ++moduleIndex; + } + tableTitle += QString("\n"); + tableTotals += QString("\n"); + + m_searchAnalysisHTML = ""; + bool ok = true; + while (ok) { + m_searchAnalysisHTML += QString(""); + analysisItem = m_canvasItemList.find( key.book() ); + + // for (moduleIndex = 0, m_moduleList.first(); m_moduleList.current(); m_moduleList.next(), ++moduleIndex) { + moduleIndex = 0; + ListCSwordModuleInfo::iterator end_it = m_moduleList.end(); + for (ListCSwordModuleInfo::iterator it(m_moduleList.begin()); it != end_it; ++it) { + count = analysisItem->getCountForModule(moduleIndex); + countStr.setNum(count); + m_searchAnalysisHTML += QString(""); + + ++moduleIndex; + } + m_searchAnalysisHTML += QString("\n"); + ok = key.next(CSwordVerseKey::UseBook); + } + + text += QString("
" + i18n("Search text :") + "" + CSearchDialog::getSearchDialog()->searchText() + "
" + i18n("Book") + "
" + i18n("Total hits") + "") + (*it)->name() + QString("") + countStr + QString("
") + key.book() + QString("") + countStr + QString("
\n") + tableTitle + tableTotals + m_searchAnalysisHTML + QString("
\n"); + text += QString("
") + i18n("Created by") + QString(" BibleTime
"); + text += QString(""); + + CToolClass::savePlainFile(file, text, false, QTextStream::UnicodeUTF8); +} + + } //end of namespace Search::Analysis +} //end of namespace Search diff --git a/bibletime/frontend/searchdialog/csearchanalysis.h b/bibletime/frontend/searchdialog/csearchanalysis.h new file mode 100644 index 0000000..013efaa --- /dev/null +++ b/bibletime/frontend/searchdialog/csearchanalysis.h @@ -0,0 +1,222 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSEARCHANALYSIS_H +#define CSEARCHANALYSIS_H + +//BibleTime includes + +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordbackend.h" +#include "backend/cswordmodulesearch.h" + +#include "util/cpointers.h" + +//Sword includes + + +//Qt includes +#include +#include +#include +#include +#include + +//KDE includes +#include +#include +#include + + +class QTextEdit; + +namespace Search { + namespace Analysis { + +//forward declarations +class CSearchAnalysisItem; +class CSearchAnalysisLegendItem; +class CSearchAnalysisView; + +/** + * CSearchDialogAnaylsis shows the graphical analysis of the search result. + * @author The BibleTime Team + */ +class CSearchAnalysis : public QCanvas { + Q_OBJECT +public: + CSearchAnalysis(QObject *parent=0, const char *name=0); + virtual ~CSearchAnalysis(); + /** + * Starts the analysis of the search result. + * This should be called only once because + * QCanvas handles the updates automatically. + */ + void analyse(ListCSwordModuleInfo modules); + /** + * This function returns a color for each module + * @return The color at position index in the list + */ + static QColor getColor(int index); + /* + * This function returns a pointer to the list of AnalysisItems + */ + QDict* getSearchAnalysisItemList(); + void reset(); + +protected slots: // Protected slots + /** + * No descriptions + */ + void slotResized(); + +protected: + void setModules(ListCSwordModuleInfo modules); + +private: + /** + * Returns the count of the book in the module + */ + const unsigned int getCount( const QString book, CSwordModuleInfo* module ); + + ListCSwordModuleInfo m_moduleList; + QDict m_canvasItemList; + QMap m_lastPosList; + int m_maxCount; + double m_scaleFactor; + CSearchAnalysisLegendItem* m_legend; + +public slots: // Public slots + void saveAsHTML(); +}; + + +class CSearchAnalysisDialog : public KDialogBase { + Q_OBJECT +public: + CSearchAnalysisDialog(ListCSwordModuleInfo modules, QWidget* parentDialog); + ~CSearchAnalysisDialog(); + +protected: // Protected methods + /** + * Initializes the widgets SIGNAL and SLOT connections,. + */ + void initConnections(); + + /** + * Initializes this dialog. + */ + void initView(); + +private: + CSearchAnalysis* m_analysis; + CSearchAnalysisView* m_analysisView; +}; + + +//---------------------------------------------------------- +//---------------------------------------------------------- + +/** Paints the bars for one book for one or more modules + * + */ +class CSearchAnalysisItem : public QCanvasRectangle { +public: + /** + * Standard constructor. + */ + CSearchAnalysisItem(QCanvas* parent, const int moduleCount, const QString& bookname, double *scaleFactor, ListCSwordModuleInfo* modules); + virtual ~CSearchAnalysisItem(); + /** + * Sets the resultcount of this item + */ + void setCountForModule( const int moduleIndex, const int count); + + /** + * Returns the resultcount of this item + */ + int getCountForModule( const int moduleIndex); + /** + * Returns the width of this item. + */ + virtual int width(); + /** + * Returns the tooltip for this item. + */ + const QString getToolTip(); + +private: + virtual void draw (QPainter & painter); + + ListCSwordModuleInfo* m_moduleList; + double *m_scaleFactor; + QString m_bookName; + int m_moduleCount; + QMemArray m_resultCountArray; + QPixmap* m_bufferPixmap; +}; + +class CSearchAnalysisLegendItem : public QCanvasRectangle { + +public: + CSearchAnalysisLegendItem(QCanvas* parent, ListCSwordModuleInfo* list ); + +private: + virtual void draw (QPainter & painter); + ListCSwordModuleInfo* m_moduleList; +}; + +//---------------------------------------------------------- +//---------------------------------------------------------- +class CSearchAnalysisView : public QCanvasView { + Q_OBJECT +public: + /** + * Standard constructor + */ + CSearchAnalysisView(QCanvas* canvas, QWidget* parent); + /** + * Returns the sizeHint for this view + * We give back the size of the parent widgetas default. + * This is a reimplementation from QCanvasView::sizeHint(). + */ + virtual QSize sizeHint(); + /** + * Returns the item at position p. + * If there no item at that point return 0. + */ + CSearchAnalysisItem* itemAt( const QPoint& p ); + +protected: + /** + * Reimplementation. + */ + virtual void resizeEvent(QResizeEvent* e); + +private: + class ToolTip : public QToolTip { + public: + ToolTip(QWidget* parent); + virtual ~ToolTip() {} + ; + /** + * Displays a tooltip for position p + */ + virtual void maybeTip(const QPoint &pos); + }; + + ToolTip* m_toolTip; +}; + + } //end of namespace Search::Analysis +} //end of namespace Search + +#endif diff --git a/bibletime/frontend/searchdialog/csearchdialog.cpp b/bibletime/frontend/searchdialog/csearchdialog.cpp new file mode 100644 index 0000000..beef7c4 --- /dev/null +++ b/bibletime/frontend/searchdialog/csearchdialog.cpp @@ -0,0 +1,263 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "csearchdialog.h" +#include "csearchanalysis.h" +#include "backend/cswordmodulesearch.h" + + +#include "backend/cswordkey.h" +#include "backend/cswordversekey.h" + +#include "frontend/cbtconfig.h" +#include "frontend/cmoduleindexdialog.h" + +#include "util/cresmgr.h" +#include "util/ctoolclass.h" + +//Qt includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//KDE includes +#include +#include +#include +#include + +namespace Search { + +static CSearchDialog* m_staticDialog = 0; + +void CSearchDialog::openDialog(const ListCSwordModuleInfo modules, const QString& searchText, QWidget* parentDialog) { + if (!m_staticDialog) { + m_staticDialog = new CSearchDialog(parentDialog); + }; + m_staticDialog->reset(); + + if (modules.count()) { + m_staticDialog->setModules(modules); + } + else { + m_staticDialog->showModulesSelector(); + } + + m_staticDialog->setSearchText(searchText); + if (m_staticDialog->isHidden()) { + m_staticDialog->show(); + } + + if (modules.count() && !searchText.isEmpty()) { + m_staticDialog->startSearch(); + } + // moved these to after the startSearch() because + // the progress dialog caused them to loose focus. + m_staticDialog->raise(); + m_staticDialog->setActiveWindow(); +}; + +CSearchDialog* const CSearchDialog::getSearchDialog() { + Q_ASSERT(m_staticDialog); + return m_staticDialog; +}; + +CSearchDialog::CSearchDialog(QWidget *parent) +: KDialogBase(Plain, i18n("Search dialog"), Close | User1, User1, parent, "CSearchDialog", false, true, i18n("Search")) { + + setWFlags( getWFlags() | Qt::WStyle_MinMax ); + setIcon(CResMgr::searchdialog::icon); + + m_searcher.connectFinished( this, SLOT(searchFinished())); + + initView(); + initConnections(); +} + +CSearchDialog::~CSearchDialog(){ + // Added code for saving last size of dialog + saveDialogSize("CSearchDialog"); +} + +/** Starts the search with the set modules and the set search text. */ +void CSearchDialog::startSearch() { + QString searchText(m_searchOptionsPage->searchText()); + + if (searchText.isEmpty()) { + return; + } + + // check that we have the indices we need for searching + if (!m_searcher.modulesHaveIndices( modules() ) ) { + int result = QMessageBox::question(this, i18n("Missing indices"), + i18n("One or more modules need indexing before they can be searched.\n" + "This could take a long time. Proceed with indexing?"), + QMessageBox::Yes | QMessageBox::Default, + QMessageBox::No | QMessageBox::Escape); + // In SuSE 10.0 the result is the logical or of the button type, just like it is + // inputed into the QMessageBox. + if ( (result == (QMessageBox::Yes | QMessageBox::Default)) || + (result == QMessageBox::Yes) || (result == QMessageBox::Default) ) { + CModuleIndexDialog* dlg = CModuleIndexDialog::getInstance(); + dlg->indexUnindexedModules( modules() ); + } + else { + return; + } + } + + m_searchResultPage->reset(); + +// const int searchFlags = m_searchOptionsPage->searchFlags(); + +// const CSwordModuleSearch::scopeType scopeType = m_searchOptionsPage->scopeType(); +// if (scopeType == CSwordModuleSearch::Scope_LastSearch) { +// searchFlags |= CSwordModuleSearch::useLastResult; +// } +// else if ( (scopeType == CSwordModuleSearch::Scope_Bounds) +// && strlen(m_searchOptionsPage->searchScope().getRangeText())) { +// //we need the scope flag and a valid scope! +// searchFlags |= CSwordModuleSearch::useScope; +// m_searcher.setSearchScope( m_searchOptionsPage->searchScope() ); +// } + + if (m_searchOptionsPage->hasSearchScope()) { + m_searcher.setSearchScope( m_searchOptionsPage->searchScope() ); + } + else { + m_searcher.resetSearchScope(); + } + + m_searcher.setModules( modules() ); + m_searcher.setSearchedText(searchText); +// m_searcher.setSearchOptions(searchFlags); + + m_searcher.startSearch(); +} + +/** Starts the search with the given module list and given search text. */ +void CSearchDialog::startSearch( const ListCSwordModuleInfo modules, const QString& searchText) { + m_searchResultPage->reset(); + m_searchOptionsPage->reset(); + setModules(modules); + setSearchText(searchText); + + startSearch(); +} + +/** Returns the list of used modules. */ +const ListCSwordModuleInfo CSearchDialog::modules() { + return m_searchOptionsPage->modules(); +} + +/** Sets the list of modules for the search. */ +void CSearchDialog::setModules( const ListCSwordModuleInfo modules ) { + m_searchOptionsPage->setModules(modules); + resize( sizeHint() ); +} + +/** Returns the search text which is set currently. */ +const QString CSearchDialog::searchText() { + return m_searchOptionsPage->searchText(); +} + +sword::ListKey CSearchDialog::searchScope() { + return m_searchOptionsPage->searchScope(); +}; + +/** Returns true if the search used a scope, otherwise false. */ +// const CSwordModuleSearch::scopeType CSearchDialog::searchScopeType() const { +// return m_searchOptionsPage->scopeType(); +// } + +/** Returns true if the search used a scope, otherwise false. */ +// const int CSearchDialog::searchFlags() const { +// return m_searchOptionsPage->searchFlags(); +// } + +/** Returns the search text which is used for the search. */ +void CSearchDialog::setSearchText( const QString searchText ) { + m_searchOptionsPage->setSearchText(searchText); +} + +/** Initializes this object. */ +void CSearchDialog::initView() { + setButtonTip(User1, CResMgr::searchdialog::searchButton::tooltip); + + QVBoxLayout *box = new QVBoxLayout( plainPage(), 0, spacingHint() ); + + m_searchOptionsPage = new Options::CSearchOptionsPage(plainPage()); + box->addWidget( m_searchOptionsPage ); + + m_searchResultPage = new Result::CSearchResultPage(plainPage()); + box->addWidget( m_searchResultPage ); + + // The dialog doesn't resize properly if the minimum size of the + // plain page is lower than the minimumsize of our two widgets. + // You can resize the dialog, but it just starts covering up the + // button bar and the two widgets instead of stopping at the + // minimum size. The following code sets the minimum with some + // margin. If you know of a better way to do this, do it! + int w = m_searchOptionsPage->minimumWidth(); + int h = m_searchOptionsPage->minimumHeight() + + m_searchResultPage->minimumHeight(); + plainPage()->setMinimumSize(w+10, h+100); + // Added code for loading last size of dialog + setInitialSize(configDialogSize("CSearchDialog")); +} + +void CSearchDialog::searchFinished() { +// qWarning("CSearchDialog::searchFinished()"); + + if ( m_searcher.foundItems() ) { + m_searchResultPage->setSearchResult(modules()); + } + else { + m_searchResultPage->reset(); + } + m_staticDialog->raise(); + m_staticDialog->setActiveWindow(); +} + +void CSearchDialog::showModulesSelector() { + m_searchOptionsPage->chooseModules(); +} + +/** Initializes the signal slot connections */ +void CSearchDialog::initConnections() { + connect(this, SIGNAL(user1Clicked()), SLOT(startSearch())); + connect(this, SIGNAL(closeClicked()), SLOT(slotDelayedDestruct())); +} + +/** Resets the parts to the default. */ +void CSearchDialog::reset() { + m_searchOptionsPage->reset(); + m_searchResultPage->reset(); +} + +/** Reimplementation. */ +void CSearchDialog::slotClose() { + delayedDestruct(); + m_staticDialog = 0; +} + +} //end of namespace Search diff --git a/bibletime/frontend/searchdialog/csearchdialog.h b/bibletime/frontend/searchdialog/csearchdialog.h new file mode 100644 index 0000000..c64ff44 --- /dev/null +++ b/bibletime/frontend/searchdialog/csearchdialog.h @@ -0,0 +1,138 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSEARCHDIALOG_H +#define CSEARCHDIALOG_H + +//BibleTime includes +#include "csearchdialogpages.h" +#include "csearchanalysis.h" + +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordbackend.h" + +#include "util/cpointers.h" + +//Sword includes + + +//Qt includes +#include +#include +#include +#include +#include + +//KDE includes +#include +#include + +//forward declarations + +class QLineEdit; +class QTextEdit; + +namespace Search { +/** + *@author The BibleTime team + */ +class CSearchDialog : public KDialogBase { + Q_OBJECT + +public: + static void openDialog(const ListCSwordModuleInfo modules, const QString& searchText = QString::null, QWidget* parentDialog = 0); + +protected: + friend class Analysis::CSearchAnalysis; + friend class Result::CSearchResultPage; + friend class BibleTime; + + /** + * Only interesting for the class members! Useful to get the searched text etc. + */ + static CSearchDialog* const getSearchDialog(); + + /** + * The cinstructor of the dialog. It's protected because you should use the static public function openDialog. + * The dialog destroys itself if it was closed. + */ + CSearchDialog(QWidget *parent); + ~CSearchDialog(); + + /** + * Initializes this object. + */ + void initView(); + /** + * Starts the search with the given module list and given search text. + * Doesn't wait for the start button press, starts immediatly + */ + void startSearch( const ListCSwordModuleInfo modules, const QString& searchText); + /** + * Sets the list of modules for the search. + */ + void setModules( const ListCSwordModuleInfo modules ); + /** + * Returns the list of used modules. + */ + const ListCSwordModuleInfo modules(); + /** + * Returns the search text which is used for the search. + */ + void setSearchText( const QString searchText ); + /** + * Returns the search text which is set currently. + */ + const QString searchText(); + /** + * Returns the used search scope as a list key + */ + sword::ListKey searchScope(); + /** + * Returns true if the search used a scope, otherwise false. + */ + //const CSwordModuleSearch::scopeType searchScopeType() const; + /** + * Returns they type of search which is set + */ +// const int searchFlags() const; + /** + * Resets the parts to the default. + */ + void reset(); + +protected slots: + /** + * Starts the search with the set modules and the set search text. + */ + void startSearch(); + void searchFinished(); + void showModulesSelector(); + /** + * Initializes the signal slot connections + */ + void initConnections(); + /** + * Reimplementation. + */ + virtual void slotClose(); + +private: + Result::CSearchResultPage* m_searchResultPage; + Options::CSearchOptionsPage* m_searchOptionsPage; + + CSwordModuleSearch m_searcher; +}; + + +} //end of namespace Search + +#endif diff --git a/bibletime/frontend/searchdialog/csearchdialogpages.cpp b/bibletime/frontend/searchdialog/csearchdialogpages.cpp new file mode 100644 index 0000000..473dc91 --- /dev/null +++ b/bibletime/frontend/searchdialog/csearchdialogpages.cpp @@ -0,0 +1,784 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "csearchdialogpages.h" + +#include "csearchdialog.h" +#include "csearchanalysis.h" +#include "crangechooser.h" +#include "cmoduleresultview.h" +#include "csearchresultview.h" +#include "cmodulechooser.h" + +#include "backend/cswordversekey.h" +#include "backend/cdisplayrendering.h" + +#include "frontend/display/cdisplay.h" +#include "frontend/display/creaddisplay.h" + +#include "util/cresmgr.h" +#include "util/ctoolclass.h" + +//Qt includes +#include +#include +#include +#include +#include + +//KDE includes +#include +#include +#include +#include +#include +#include + +//Lucence includes +//#include "CLucene.h" +//#include "CLucene/util/Reader.h" +//#include "CLucene/util/Misc.h" +//#include "CLucene/util/dirent.h" + +namespace Search { + namespace Result { + +/******************************************** +************ StrongsResulClass ************* +********************************************/ +void StrongsResultClass::initStrongsResults(void) { + using namespace Rendering; + + CDisplayRendering render; + ListCSwordModuleInfo modules; + CTextRendering::KeyTreeItem::Settings settings; + QString rText, lText, key; + bool found; + int sIndex; + int count; + int index; + QString text; + + modules.append(srModule); + sword::ListKey& result = srModule->searchResult(); + + count = result.Count(); + if (!count) + return; +KApplication::kApplication()->processEvents( 1 ); //1 ms only + srList.clear(); + // for whatever reason the text "Parsing...translations." does not appear. + // this is not critical but the text is necessary to get the dialog box + // to be wide enough. + KProgressDialog* progress = new KProgressDialog(0, "progressDialog", i18n("Parsing Stong's Numbers"), i18n("Parsing Stong's numbers for translations."), true); + progress->setAllowCancel(false); + progress->setMinimumDuration(0); + progress->show(); + progress->raise(); + for (index = 0; index < count; index++){ + progress->progressBar()->setProgress( int( (index*100) / count ) ); + KApplication::kApplication()->processEvents( 1 ); //1 ms only + + key = QString::fromUtf8(result.GetElement(index)->getText()); + text = render.renderSingleKey(key, modules, settings); + sIndex = 0; + while ((rText = getStrongsNumberText(text, &sIndex)) != "") + { + StrongsResultList::iterator it; + found = FALSE; + for ( it = srList.begin(); it != srList.end(); ++it ) + { + lText = (*it).keyText(); + if (lText == rText) + { + found = TRUE; + (*it).addKeyName(key); + break; + } + } + if (found == FALSE) + srList.append( StrongsResult(rText, key) ); + } + } + delete progress; + progress = 0; + //qHeapSort(srList); + } + +QString StrongsResultClass::getStrongsNumberText(const QString& verseContent, int *startIndex) { + // get the strongs text + int idx1, idx2, index; + QString sNumber, strongsText; + //const bool cs = CSwordModuleSearch::caseSensitive; + const bool cs = false; + + if (*startIndex == 0) { + index = verseContent.find("" is found. Get the text from here to + // the next "<". + index = verseContent.find(">", index, cs) + 1; + idx2 = verseContent.find("<", index, cs); + strongsText = verseContent.mid(index, idx2 - index); + index = idx2; + *startIndex = index; + + return(strongsText); + } + else { + index += 6; // 6 is the length of "lemma=" + } + } + return QString::null; +} + +/******************************************** +********** CSearchDialogResultPage ********* +********************************************/ + +CSearchResultPage::CSearchResultPage(QWidget *parent, const char *name ) : + SearchResultsForm(parent, name) { + initView(); + initConnections(); +} + +CSearchResultPage::~CSearchResultPage() {} + +/** Initializes the view of this widget. */ +void CSearchResultPage::initView() { + QVBoxLayout* frameLayout = new QVBoxLayout(m_displayFrame, 0, 6, "frameLayout"); + m_previewDisplay = CDisplay::createReadInstance(0, m_displayFrame); + frameLayout->addWidget(m_previewDisplay->view()); +} + +/** Sets the modules which contain the result of each. */ +void CSearchResultPage::setSearchResult(ListCSwordModuleInfo modules) { + const QString searchedText = CSearchDialog::getSearchDialog()->searchText(); + reset(); //clear current modules + + m_modules = modules; + m_moduleListBox->setupTree(modules, searchedText); + + //have a Bible or commentary in the modules? + bool enable = false; + // for (modules.first(); !enable && modules.current(); modules.next()) { + ListCSwordModuleInfo::iterator end_it = modules.end(); + for (ListCSwordModuleInfo::iterator it(modules.begin()); it != end_it; ++it) { + if ((*it)->type() == CSwordModuleInfo::Bible ) { + enable = true; + break; + }; + }; + m_analyseButton->setEnabled(enable); +} + + +/** Resets the current list of modules and the displayed list of found entries. */ +void CSearchResultPage::reset() { + m_moduleListBox->clear(); + m_resultListBox->clear(); + m_previewDisplay->setText(QString::null); + m_analyseButton->setEnabled(false); + // m_modules.setAutoDelete(false); //make sure we don't delete modules accidentally + m_modules.clear(); +} + + +/** Update the preview of the selected key. */ +void CSearchResultPage::updatePreview(const QString& key) { + using namespace Rendering; + + CSwordModuleInfo* module = m_moduleListBox->activeModule(); + if ( module ) { + const QString searchedText = CSearchDialog::getSearchDialog()->searchText(); + //const int searchFlags = CSearchDialog::getSearchDialog()->searchFlags(); + + QString text; + CDisplayRendering render; + + ListCSwordModuleInfo modules; + modules.append(module); + + CTextRendering::KeyTreeItem::Settings settings; + + //for bibles render 5 context verses + if (module->type() == CSwordModuleInfo::Bible) { + CSwordVerseKey vk(module); + vk.Headings(1); + vk.key(key); + + ((VerseKey*)(module->module()->getKey()))->Headings(1); //HACK: enable headings for VerseKeys + + //first go back and then go forward the keys to be in context + vk.previous(CSwordVerseKey::UseVerse); + vk.previous(CSwordVerseKey::UseVerse); + + //include Headings in display, they are indexed and searched too + if (vk.Verse() == 1){ + if (vk.Chapter() == 1){ + vk.Chapter(0); + } + vk.Verse(0); + } + + const QString startKey = vk.key(); + + vk.key(key); + + vk.next(CSwordVerseKey::UseVerse); + vk.next(CSwordVerseKey::UseVerse); + const QString endKey = vk.key(); + + settings.keyRenderingFace = CTextRendering::KeyTreeItem::Settings::CompleteShort; + text = render.renderKeyRange(startKey, endKey, modules, key, settings); + } + //for commentaries only one verse, but with heading + else if (module->type() == CSwordModuleInfo::Commentary) { + CSwordVerseKey vk(module); + vk.Headings(1); + vk.key(key); + + ((VerseKey*)(module->module()->getKey()))->Headings(1); //HACK: enable headings for VerseKeys + + //include Headings in display, they are indexed and searched too + if (vk.Verse() == 1){ + if (vk.Chapter() == 1){ + vk.Chapter(0); + } + vk.Verse(0); + } + const QString startKey = vk.key(); + + vk.key(key); + const QString endKey = vk.key(); + + settings.keyRenderingFace = CTextRendering::KeyTreeItem::Settings::NoKey; + text = render.renderKeyRange(startKey, endKey, modules, key, settings); + } + else { + text = render.renderSingleKey(key, modules, settings); + } + + m_previewDisplay->setText( highlightSearchedText(text, searchedText/*, searchFlags*/) ); + m_previewDisplay->moveToAnchor( CDisplayRendering::keyToHTMLAnchor(key) ); + } +} + +QStringList CSearchResultPage::QueryParser(const QString& queryString) { + QString token; + QStringList tokenList; + int cnt, pos; + + token = ""; + cnt = 0; + while(cnt < queryString.length()) { + // add to token + if ((queryString[cnt]).isLetterOrNumber() || (queryString[cnt] == '*')) { + token = token + queryString[cnt]; + cnt++; + } + // token break + else if (queryString[cnt] == ' ') { + token = token.stripWhiteSpace(); + if ((token != "*") && (token != "")) + tokenList.append(token); + token = ""; + cnt++; + } + // clucene appears to ignore quoted strings in the sence + // that it treats all the words within quoted strings as + // regular tokens and not as a single token. + else if (queryString[cnt] == '"') { + cnt++; + } + // wild card - treat as a special token break + //else if (queryString[cnt] == '*') { + // token = token + queryString[cnt]; + // token = token.stripWhiteSpace(); + // if ((token != "*") && (token != "")) + // tokenList.append(token); + // // start next token with wildcard (kin*m -> kin* *m) + // token = "*"; + // cnt++; + //} + // the ! token is also a token break + else if (queryString[cnt] == '!') { + // store away current token + token = token.stripWhiteSpace(); + if ((token != "*") && (token != "")) + tokenList.append(token); + // add the ! token + tokenList.append("!"); + token = ""; + cnt++; + } + // the - token is also a token break + else if (queryString[cnt] == '-') { + // store away current token + token = token.stripWhiteSpace(); + if ((token != "*") && (token != "")) + tokenList.append(token); + // add the ! token + tokenList.append("-"); + token = ""; + cnt++; + } + // the + token is also a token break + else if (queryString[cnt] == '+') { + // store away current token + token = token.stripWhiteSpace(); + if ((token != "*") && (token != "")) + tokenList.append(token); + // add the + token + tokenList.append("+"); + token = ""; + cnt++; + } + // the || token is also a token break + else if ((queryString[cnt] == '|') && (queryString[cnt+1] == '|')) { + // store away current token + token = token.stripWhiteSpace(); + if ((token != "*") && (token != "")) + tokenList.append(token); + // add the || token + tokenList.append("||"); + token = ""; + cnt += 2; + } + // the && token is also a token break + else if ((queryString[cnt] == '&') && (queryString[cnt+1] == '&')) { + // store away current token + token = token.stripWhiteSpace(); + if ((token != "*") && (token != "")) + tokenList.append(token); + // add the || token + tokenList.append("&&"); + token = ""; + cnt += 2; + } + else cnt++; + } + token = token.stripWhiteSpace(); + if ((token != "*") && (token != "")) + tokenList.append(token); + + cnt = 0; + QStringList::iterator it; + for ( it = tokenList.begin(); it != tokenList.end(); it++ ) { + //----------------------------------------------------------- + // remove all the NOT(!) tokens - these do not need to be + // highlighted in the highlighter + //----------------------------------------------------------- + if (((*it) == "!") || ((*it) == "NOT") || ((*it) == "-")) { + it = tokenList.remove(it); + if (it == tokenList.end()) + break; + it = tokenList.remove(it); + if (it == tokenList.end()) + break; + it--; + } + //----------------------------------------------------------- + // remove all the operator tokens - these do not need to be + // highlighted in the highlighter + //----------------------------------------------------------- + else if ( ((*it) == "||") || ((*it) == "OR") || ((*it) == "+") || + ((*it) == "AND") || ((*it) == "&&") ) + { + it = tokenList.remove(it); + if (it == tokenList.end()) + break; + it--; + } + // if the token contains a ^ then trim the remainder of the + // token from the ^ + else if ( (pos = (*it).contains("^")) >= 0 ) { + (*it) = (*it).left(pos - 1); + } + // if the token contains a ~ then trim the remainder of the + // token from the ~ + else if ( (pos = (*it).contains("~")) >= 0 ) { + (*it) = (*it).left(pos - 2) + "*"; + } + } + return(tokenList); +} + +const QString CSearchResultPage::highlightSearchedText(const QString& content, const QString& searchedText/*, const int searchFlags*/) { + QString ret = content; + + //const bool cs = (searchFlags & CSwordModuleSearch::caseSensitive); + const bool cs = false; + + // int index = 0; + int index = ret.find(""); + const QString rep2("
"); + const unsigned int repLength = rep1.length() + rep1.length(); + int sstIndex; // strong search text index for finding "strong:" + bool inQuote; + QString newSearchText; + + newSearchText = searchedText; + //--------------------------------------------------------------------- + // find the strongs search lemma and highlight it + //--------------------------------------------------------------------- + // search the searched text for "strong:" until it is not found anymore + sstIndex = 0; + while ((sstIndex = newSearchText.find("strong:", sstIndex)) != -1) { + int idx1, idx2, sTokenIndex, sTokenIndex2; + QString sNumber, lemmaText; + const QString rep3("style=\"background-color:#FFFF66;\" "); + const unsigned int rep3Length = rep3.length(); + int strongIndex = index; + //-------------------------------------------------- + // get the strongs number from the search text + //-------------------------------------------------- + // first find the first space after "strong:" + // this should indicate a change in search token + sstIndex = sstIndex + 7; + sTokenIndex = newSearchText.find(" ", sstIndex); + sTokenIndex2 = newSearchText.find("|", sstIndex); + if ((sTokenIndex2 != -1) && (sTokenIndex2 < sTokenIndex)) { + sNumber = newSearchText.mid(sstIndex, sTokenIndex2 - sstIndex); + } + else { + sNumber = newSearchText.mid(sstIndex, sTokenIndex - sstIndex); + } + // remove this strong entry + sstIndex -= 7; + newSearchText.replace(sstIndex, sTokenIndex - sstIndex, ""); + // find all the "lemma=" inside the the content + while((strongIndex = ret.find("lemma=", strongIndex, cs)) != -1) { + // get the strongs number after the lemma and compare it with the + // strongs number we are looking for + idx1 = ret.find("\"", strongIndex) + 1; + idx2 = ret.find("\"", idx1 + 1); + lemmaText = ret.mid(idx1, idx2 - idx1); + if (lemmaText == sNumber) { + // strongs number is found now we need to highlight it + // I believe the easiest way is to insert rep3 just before "lemma=" + ret = ret.insert(strongIndex, rep3); + strongIndex += rep3Length; + } + strongIndex += 6; // 6 is the length of "lemma=" + } + } + //--------------------------------------------------------------------- + // now that the strong: stuff is out of the way continue with + // other search options + //--------------------------------------------------------------------- + //----------------------------------------------------------- + // try to figure out how to use the lucene query parser + //----------------------------------------------------------- + //using namespace lucene::queryParser; + //using namespace lucene::search; + //using namespace lucene::analysis; + //using namespace lucene::util; + + //wchar_t *buf; + //char buf8[1000]; + //standard::WhitespaceAnalyzer analyzer; + //lucene_utf8towcs(m_wcharBuffer, searchedText.utf8(), MAX_CONV_SIZE); + //util::scoped_ptr q( QueryParser::parse(m_wcharBuffer, _T("content"), &analyzer) ); + //StringReader reader(m_wcharBuffer); + //TokenStream* tokenStream = analyzer.tokenStream( _T("field"), &reader); + //Token token; + //while(tokenStream->next(&token) != 0) { + // lucene_wcstoutf8(buf8, token.termText(), 1000); + // printf("%s\n", buf8); + //} + + //=========================================================== + // since I could not figure out the lucene query parser, I + // made a simple parser. + //=========================================================== + QStringList words = QueryParser(newSearchText); + for ( int wi = 0; (unsigned int)wi < words.count(); ++wi ) { //search for every word in the list + QRegExp findExp; + QString word = words[ wi ]; + if (word.contains("*")) { + length = word.length() - 1; + word.replace('*', "\\S*"); //match within a word + findExp = QRegExp(word); + findExp.setMinimal(TRUE); + } + else { + length = word.length(); + findExp = QRegExp("\\b" + word + "\\b"); + } + + // index = 0; //for every word start at the beginning + index = ret.find("connectionsProxy(), SLOT(clear())); + connect(m_analyseButton, SIGNAL(clicked()), SLOT(showAnalysis())); + // connect the strongs list + connect(m_moduleListBox, SIGNAL(strongsSelected(CSwordModuleInfo*, QStringList*)), + m_resultListBox, SLOT(setupStrongsTree(CSwordModuleInfo*, QStringList*))); +} + +/** Shows a dialog with the search analysis of the current search. */ +void CSearchResultPage::showAnalysis() { + Analysis::CSearchAnalysisDialog dlg(m_modules, this); + dlg.exec(); +} + + } //end of namespace Search.Result + + /*************************/ + + namespace Options { + +CSearchOptionsPage::CSearchOptionsPage(QWidget *parent, const char *name ) : + SearchOptionsForm(parent,name) { + initView(); + readSettings(); +} + +CSearchOptionsPage::~CSearchOptionsPage() { + saveSettings(); +} + +/** Returns the search text set in this page. */ +const QString CSearchOptionsPage::searchText() { + return m_searchTextCombo->currentText(); +} + +/** Sets the search text used in the page. */ +void CSearchOptionsPage::setSearchText(const QString& text) { + bool found = false; + int i = 0; + for (i = 0; !found && i < m_searchTextCombo->count(); ++i) { + if (m_searchTextCombo->text(i) == text) { + found = true; + } + } + // This is needed because in the for loop i is incremented before the comparison (++i) + // As a result the index i is actually one greater than expected. + i--; + if (!found) { + i = 0; + m_searchTextCombo->insertItem( text,0 ); + } + + m_searchTextCombo->setCurrentItem(i); + m_searchTextCombo->reset(); + m_searchTextCombo->setFocus(); +} + +/** Initializes this page. */ +void CSearchOptionsPage::initView() { + connect( m_searchTextCombo, SIGNAL(activated( const QString& )), + m_searchTextCombo, SLOT( addToHistory( const QString& )) + ); + connect( m_searchTextCombo, SIGNAL(returnPressed ( const QString& )), + m_searchTextCombo, SLOT(addToHistory(const QString&)) + ); + QToolTip::add(m_searchTextCombo, CResMgr::searchdialog::options::searchedText::tooltip); + + m_syntaxButton->setIconSet(SmallIconSet("contexthelp")); + connect( m_syntaxButton, SIGNAL(clicked()), this, SLOT(syntaxHelp())); + + m_chooseModulesButton->setIconSet(SmallIconSet("wizard")); + connect(m_chooseModulesButton, SIGNAL(clicked()), + this, SLOT(chooseModules())); + QToolTip::add + (m_chooseModulesButton, CResMgr::searchdialog::options::moduleChooserButton::tooltip); + + QToolTip::add + (m_rangeChooserCombo, CResMgr::searchdialog::options::chooseScope::tooltip); + refreshRanges(); + + m_chooseRangeButton->setIconSet(SmallIconSet("configure")); + connect(m_chooseRangeButton, SIGNAL(clicked()), + this, SLOT(setupRanges())); + + //set the initial focus + m_searchTextCombo->setFocus(); +} + +/** Sets the modules used by the search. */ +void CSearchOptionsPage::setModules( ListCSwordModuleInfo modules ) { + QString t = i18n("Searching in: "); + + m_modules.clear(); //remove old modules + ListCSwordModuleInfo::iterator end_it = modules.end(); + + for (ListCSwordModuleInfo::iterator it(modules.begin()); it != end_it; ++it) { + //ToDo: Check for containsRef compat + if (*it == 0) { //don't operate on null modules. + continue; + } + + if ( !m_modules.contains(*it) ) { + m_modules.append( *it ); + t.append( (*it)->name() ); + if (*it != modules.last()) { + t += QString::fromLatin1(", "); // so that it will become a readable list (WLC, LXX, GerLut...) + } + } + }; + m_modulesLabel->setText(t); + emit( sigSetSearchButtonStatus( (modules.count() != 0) ) ); +} + +/** Opens the modules chooser dialog. */ +void CSearchOptionsPage::chooseModules() { + CModuleChooserDialog* dlg = new CModuleChooserDialog(this, modules()); + connect(dlg, SIGNAL(modulesChanged(ListCSwordModuleInfo)), + this, SLOT(setModules(ListCSwordModuleInfo))); + dlg->exec(); +} + +/** Returns the list of used modules. */ +const ListCSwordModuleInfo CSearchOptionsPage::modules() { + return m_modules; +} + +/** Sets all options back to the default. */ +void CSearchOptionsPage::reset() { + m_rangeChooserCombo->setCurrentItem(0); //no scope + m_searchTextCombo->clearEdit(); +} + +/** Reads the settings for the searchdialog from disk. */ +void CSearchOptionsPage::saveSettings() { + CBTConfig::set + (CBTConfig::searchCompletionTexts, m_searchTextCombo->completionObject()->items()); + CBTConfig::set + (CBTConfig::searchTexts, m_searchTextCombo->historyItems()); +} + +/** Reads the settings of the last searchdialog session. */ +void CSearchOptionsPage::readSettings() { + m_searchTextCombo->completionObject()->setItems( CBTConfig::get + (CBTConfig::searchCompletionTexts) ); + m_searchTextCombo->setHistoryItems( CBTConfig::get + (CBTConfig::searchTexts) ); +} + +void CSearchOptionsPage::aboutToShow() { + m_searchTextCombo->setFocus(); +} + +/** No descriptions */ +void CSearchOptionsPage::setupRanges() { + CRangeChooserDialog* chooser = new CRangeChooserDialog(this); + chooser->exec(); + + refreshRanges(); +} + +/** No descriptions */ +void CSearchOptionsPage::syntaxHelp() { + QString syntax = i18n ( + "

Enter search terms separated by spaces. By default the search " + "function will return results that match any of the search terms (OR). " + "To search for all the terms separate the terms by AND.

") + i18n( + "

You can use wildcards: '*' matches any sequence of characters, " + "while '?' matches any single character. The use of brackets allows you to " + "group your search terms, e.g. '(Jesus OR spirit) AND God'.

") + i18n( + "

To search text other than the main text, enter the text type followed " + "by \":\", and then the search term. For example, to search for the Strong's " + "number H8077, use 'strong:H8077'.

") + i18n( + "

Available text types:
" + "" + "" + "" + "
heading:searches headings
footnote:searches footnotes
strong:searches Strong's Numbers
morph:searches morphology codes

") + i18n( + "

BibleTime uses the Lucene search engine to perform your searches. " + "It has many advanced features, and you can read more about it here: " + "" + "http://lucene.apache.org/java/docs/queryparsersyntax.html

"); + + KMessageBox::about( this, syntax, i18n("Basic Search Syntax Introduction")); +} + + +/** refreshes the listof ranges and the range combobox. */ +void CSearchOptionsPage::refreshRanges() { + //the first two options are fixed, the others can be edited using the "Setup ranges" button. + m_rangeChooserCombo->clear(); + m_rangeChooserCombo->insertItem(i18n("No search scope")); + //m_rangeChooserCombo->insertItem(i18n("Last search result")); + + //insert the user-defined ranges + CBTConfig::StringMap map = CBTConfig::get + (CBTConfig::searchScopes); + CBTConfig::StringMap::Iterator it; + for (it = map.begin(); it != map.end(); ++it) { + m_rangeChooserCombo->insertItem(it.key()); + }; +} + +/** Returns the selected search scope if a search scope was selected. */ +sword::ListKey CSearchOptionsPage::searchScope() { + if (m_rangeChooserCombo->currentItem() > 0) { //is not "no scope" + CBTConfig::StringMap map = CBTConfig::get(CBTConfig::searchScopes); + + QString scope = map[ m_rangeChooserCombo->currentText() ]; + if (!scope.isEmpty()) { + return sword::VerseKey().ParseVerseList( (const char*)scope.utf8(), "Genesis 1:1", true); + } + } + + return sword::ListKey(); +} + +/*! + \fn CSearchOptionsPage::hasSearchScope() + */ +bool CSearchOptionsPage::hasSearchScope() { + return (searchScope().Count() > 0); +} + + } //end of namespace Options +} //end of namespace Search diff --git a/bibletime/frontend/searchdialog/csearchdialogpages.h b/bibletime/frontend/searchdialog/csearchdialogpages.h new file mode 100644 index 0000000..7949a1b --- /dev/null +++ b/bibletime/frontend/searchdialog/csearchdialogpages.h @@ -0,0 +1,292 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSEARCHDIALOGPAGES_H +#define CSEARCHDIALOGPAGES_H + +//BibleTime includes +#include "backend/cswordmoduleinfo.h" +#include "backend/cswordbackend.h" +#include "backend/cswordmodulesearch.h" + +#include "frontend/searchdialog/searchoptionsform.h" // uic generated +#include "frontend/searchdialog/searchresultsform.h" // uic generated + +//Qt includes +#include +#include + +//KDE includes +#include + +//forward declarations +class QLabel; +class QCheckBox; +class QPushButton; +class QRadioButton; + +class KComboBox; +class KActionMenu; +class KAction; +class KHistoryCombo; +class KProgress; +class KPopupMenu; + +class CReadDisplay; + +namespace Search { + namespace Result { + +/** +* This class is used to keep track of the text strongs results. +* It only keeps track of one instance of a strongs text result. +* +* The functions of the class are: +* - Store an instance of a strongs text result. +* - Each strongs text result will contain a list of verses (keyNames). +* - The number of verses (keyNames) is returned by keyCount(). +* - The text for the strongs text result is returned by keyText(). +* - The list of verses (keyNames) is returned by getKeyList() [as QStringList]. +* +* To add a new verse to a strongs text result use addKeyName. +*/ +class StrongsResult { +public: + StrongsResult() /*: text(QString::null)*/ { + //keyNameList.clear(); + } + + StrongsResult(const QString& text, const QString &keyName) + : text(text) + { + //keyNameList.clear(); + keyNameList.append(keyName); + } + + QString keyText() const { + return text; + } + int keyCount() const { + return keyNameList.count(); + } + void addKeyName(const QString& keyName) { + if (keyNameList.findIndex(keyName) == -1) + keyNameList.append(keyName); + } + QStringList* getKeyList() { + return & keyNameList; + } + + /* ???? + bool operator==(const StrongsResult &l, const StrongsResult &r) + { return (l.keyText() == r.keyText()); } + + bool operator<(const StrongsResult &l, const StrongsResult &r) + { return (l->keyText() < r->keyText()); } + + bool operator>(const StrongsResult &l, const StrongsResult &r) + { return (l->keyText() > r->keyText()); } + */ +private: + QString text; + QStringList keyNameList; +}; + +typedef QValueList StrongsResultList; + +/** +* This class is used to keep track of the text strongs results. +* It keeps track of all instances of all strongs text results. +* This class makes use of the above class StrongsResult. +* +* The functions of the class are: +* - Store an instance of a strongs text result. +* - Each strongs text result will contain a list of verses (keyNames). +* - The number of verses (keyNames) is returned by keyCount(). +* - The text for the strongs text result is returned by keyText(). +* - The list of verses (keyNames) is returned by getKeyList() [as QStringList]. +* +* To add a new verse to a strongs text result use addKeyName. +*/ +class StrongsResultClass { +public: + StrongsResultClass(CSwordModuleInfo* module, const QString& strongsNumber) + : srModule(module), lemmaText(strongsNumber) + { + initStrongsResults(); + } + + QString keyText(int index) const { + return srList[index].keyText(); + } + int keyCount(int index) const { + return srList[index].keyCount(); + } + QStringList* getKeyList(int index) { + return srList[index].getKeyList(); + } + int Count() const { + return srList.count(); + } + +private: + void initStrongsResults(void); + QString getStrongsNumberText(const QString& verseContent, int *startIndex); + + StrongsResultList srList; + CSwordModuleInfo* srModule; + QString lemmaText; +}; + +/** The page of the search dialog which contains the search result part. + * @author The BibleTime team + */ +class CSearchResultPage : public SearchResultsForm { + Q_OBJECT +public: + CSearchResultPage(QWidget *parent=0, const char *name=0); + ~CSearchResultPage(); + /** + * Sets the modules which contain the result of each. + */ + void setSearchResult(ListCSwordModuleInfo modules); + + QSize sizeHint() const { return baseSize(); } + QSize minimumSizeHint() const { return minimumSize(); } + +public slots: // Public slots + /** + * Resets the current l�st of modules and the displayed list of found entries. + */ + void reset(); + +protected: // Protected methods + /** + * Initializes the view of this widget. + */ + void initView(); + /** + * Initializes the signal slot conections of the child widgets + */ + void initConnections(); + /** + * This function breakes the queryString into clucene tokens + */ + QStringList QueryParser(const QString& queryString); + /** + * This function highlights the searched text in the content using the search type given by search flags + */ + const QString highlightSearchedText(const QString& content, const QString& searchedText/*, const int searchFlags*/); + +private: + CReadDisplay* m_previewDisplay; + ListCSwordModuleInfo m_modules; + +protected slots: // Protected slots + /** + * Update the preview of the selected key. + */ + void updatePreview(const QString& key); + /** + * Shows a dialog with the search analysis of the current search. + */ + void showAnalysis(); + +}; + } //end of namespace Search::Result + + namespace Options { + +class CSearchOptionsPage : public SearchOptionsForm { + Q_OBJECT +public: + CSearchOptionsPage(QWidget *parent=0, const char *name=0); + ~CSearchOptionsPage(); + /** + * Sets the search text used in the page. + */ + void setSearchText(const QString& text); + /** + * Returns the search text set in this page. + */ + const QString searchText(); + /** + * Returns the list of used modules. + */ + const ListCSwordModuleInfo modules(); + /** + * Return the selected search type,. + */ +// const int searchFlags(); + /** + * Sets all options back to the default. + */ + void reset(); + /** + * Returns the selected search scope if a search scope was selected. + */ + sword::ListKey searchScope(); + /** + * Returns the selected scope type. + */ + //const CSwordModuleSearch::scopeType scopeType(); + + QSize sizeHint() const { return baseSize(); } + QSize minimumSizeHint() const { return minimumSize(); } + bool hasSearchScope(); + +private: + ListCSwordModuleInfo m_modules; + +protected: // Protected methods + /** + * Initializes this page. + */ + void initView(); + /** + * Reads the settings of the last searchdialog session. + */ + void readSettings(); + /** + * Reads the settings for the searchdialog from disk. + */ + void saveSettings(); + +public slots: // Public slots + /** + * Sets the modules used by the search. + */ + void setModules( ListCSwordModuleInfo modules ); + /** + * Reimplementation. + */ + void aboutToShow(); + /** + * Refreshes the list of ranges and the range combobox. + */ + void refreshRanges(); + /** + * Opens the modules chooser dialog. + */ + void chooseModules(); + +protected slots: // Protected slots + void setupRanges(); + void syntaxHelp(); + +signals: + void sigSetSearchButtonStatus(bool); +}; + + } //end of namespace Search::Options +} //end of namespace Search + +#endif diff --git a/bibletime/frontend/searchdialog/csearchresultview.cpp b/bibletime/frontend/searchdialog/csearchresultview.cpp new file mode 100644 index 0000000..cbb2ee1 --- /dev/null +++ b/bibletime/frontend/searchdialog/csearchresultview.cpp @@ -0,0 +1,271 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "csearchresultview.h" + +#include "backend/cswordversekey.h" + +#include "frontend/cdragdropmgr.h" +#include "frontend/cexportmanager.h" + +#include "util/cresmgr.h" + +//Qt includes + +//KDE includes +#include +#include +#include + +namespace Search { + namespace Result { + +CSearchResultView::CSearchResultView(QWidget* parent, const char* name) : + KListView(parent, name), m_module(0) { + initView(); + initConnections(); +} + +CSearchResultView::~CSearchResultView() {} + +/** Initializes the view of this widget. */ +void CSearchResultView::initView() { + addColumn(i18n("Results")); + setFullWidth(true); + + setSorting(-1); + setDragEnabled(true); + setSelectionModeExt(KListView::Extended); + + //setup the popup menu + m_popup = new KPopupMenu(this); + + m_actions.copyMenu = new KActionMenu(i18n("Copy..."), CResMgr::searchdialog::result::foundItems::copyMenu::icon, m_popup); + m_actions.copyMenu->setDelayed(false); + m_actions.copy.result = new KAction(i18n("Reference only"), KShortcut(0), this, SLOT(copyItems()), this); + m_actions.copyMenu->insert(m_actions.copy.result); + m_actions.copy.resultWithText = new KAction(i18n("Reference with text"), KShortcut(0), this, SLOT(copyItemsWithText()), this); + m_actions.copyMenu->insert(m_actions.copy.resultWithText); + m_actions.copyMenu->plug(m_popup); + + m_actions.saveMenu = new KActionMenu(i18n("Save..."),CResMgr::searchdialog::result::foundItems::saveMenu::icon, m_popup); + m_actions.saveMenu->setDelayed( false ); + m_actions.save.result = new KAction(i18n("Reference only"), KShortcut(0), this, SLOT(saveItems()), this); + m_actions.saveMenu->insert(m_actions.save.result); + m_actions.save.resultWithText = new KAction(i18n("Reference with text"), KShortcut(0), this, SLOT(saveItemsWithText()), this); + m_actions.saveMenu->insert(m_actions.save.resultWithText); + m_actions.saveMenu->plug(m_popup); + + m_actions.printMenu = new KActionMenu(i18n("Print..."),CResMgr::searchdialog::result::foundItems::printMenu::icon, m_popup); + m_actions.printMenu->setDelayed(false); + m_actions.print.result = new KAction(i18n("Reference with text"), KShortcut(0), this, SLOT(printItems()), this); + m_actions.printMenu->insert(m_actions.print.result); + m_actions.printMenu->plug(m_popup); +} + +/** No descriptions */ +void CSearchResultView::initConnections() { + // connect(this, SIGNAL(executed(QListViewItem*)), + // this, SLOT(executed(QListViewItem*))); + connect(this, SIGNAL(currentChanged(QListViewItem*)), + this, SLOT(executed(QListViewItem*))); + + connect(this, SIGNAL(contextMenu(KListView*, QListViewItem*, const QPoint&)), + this, SLOT(showPopup(KListView*, QListViewItem*, const QPoint&))); +} + +/** Setups the list with the given module. */ +void CSearchResultView::setupTree(CSwordModuleInfo* m) { + clear(); + + if (!m) { + return; + } + + m_module = m; + + sword::ListKey& result = m->searchResult(); + const int count = result.Count(); + if (!count) { + return; + } + + setUpdatesEnabled(false); + + QListViewItem* oldItem = 0; + KListViewItem* item = 0; + for (int index = 0; index < count; index++) { + item = new KListViewItem(this, oldItem); + item->setText(0, QString::fromUtf8(result.GetElement(index)->getText())); + + oldItem = item; + } + + setUpdatesEnabled(true); + + setSelected(firstChild(), true); + executed(currentItem()); +} + +void CSearchResultView::setupStrongsTree(CSwordModuleInfo* m, QStringList* vList) { + clear(); + if (!m) { + return; + } + + m_module = m; + + if (vList->count() <= 0) { + return; + } + + setUpdatesEnabled(false); + + KListViewItem* oldItem = 0; + KListViewItem* item = 0; + + for ( QStringList::Iterator it = vList->begin(); it != vList->end(); ++it ) { + item = new KListViewItem(this, oldItem); + item->setText(0, (*it)); + + oldItem = item; + } + + setUpdatesEnabled(true); + + setSelected(firstChild(), true); + executed(currentItem()); +} + +/** Is connected to the signal executed, which is emitted when a mew item was chosen. */ +void CSearchResultView::executed(QListViewItem* item) { + // Q_ASSERT(item); + // qWarning("executed"); + emit keySelected(item->text(0)); +} + +/** Reimplementation to show the popup menu. */ +void CSearchResultView::showPopup(KListView*, QListViewItem*, const QPoint& point) { + m_popup->exec(point); +} + +/** No descriptions */ +void CSearchResultView::printItems() { + QPtrList items = selectedItems(); + CExportManager mgr(i18n("Print search result..."), true, i18n("Printing search result")); + + QStringList list; + for (QListViewItem* k = items.first(); k; k = items.next()) { + list.append( k->text(0) ); + }; + mgr.printKeyList( list, module(), CBTConfig::getDisplayOptionDefaults(), CBTConfig::getFilterOptionDefaults() ); +} + +/** No descriptions */ +void CSearchResultView::saveItems() { + CExportManager mgr(i18n("Save search result..."), true, i18n("Saving search result")); + + CSwordModuleInfo* m = module(); + CSwordKey* k = 0; + QPtrList items = selectedItems(); + QPtrList keys; + for (QListViewItem* i = items.first(); i; i = items.next()) { + k = CSwordKey::createInstance( m ); + k->key(i->text(0)); + keys.append( k ); + }; + mgr.saveKeyList( keys, CExportManager::Text, false); + + keys.setAutoDelete(true); + keys.clear(); //delete all the keys we created +} + +/** No descriptions */ +void CSearchResultView::saveItemsWithText() { + CExportManager mgr(i18n("Save search result..."), true, i18n("Saving search result")); + + CSwordModuleInfo* m = module(); + CSwordKey* k = 0; + QPtrList items = selectedItems(); + QPtrList keys; + for (QListViewItem* i = items.first(); i; i = items.next()) { + k = CSwordKey::createInstance( m ); + k->key(i->text(0)); + keys.append( k ); + }; + mgr.saveKeyList( keys, CExportManager::Text, true); + + keys.setAutoDelete(true); + keys.clear(); //delete all the keys we created +} + +/** No descriptions */ +void CSearchResultView::copyItems() { + CExportManager mgr(i18n("Copy search result..."), true, i18n("Copying search result")); + + CSwordModuleInfo* m = module(); + CSwordKey* k = 0; + QPtrList items = selectedItems(); + QPtrList keys; + for (QListViewItem* i = items.first(); i; i = items.next()) { + k = CSwordKey::createInstance( m ); + k->key(i->text(0)); + keys.append( k ); + }; + mgr.copyKeyList( keys, CExportManager::Text, false); + + keys.setAutoDelete(true); + keys.clear(); //delete all the keys we created +} + +/** No descriptions */ +void CSearchResultView::copyItemsWithText() { + CExportManager mgr(i18n("Copy search result..."), true, i18n("Copying search result")); + + CSwordModuleInfo* m = module(); + CSwordKey* k = 0; + QPtrList items = selectedItems(); + QPtrList keys; + for (QListViewItem* i = items.first(); i; i = items.next()) { + k = CSwordKey::createInstance( m ); + k->key(i->text(0)); + keys.append( k ); + }; + mgr.copyKeyList( keys, CExportManager::Text, true); + + keys.setAutoDelete(true); + keys.clear(); //delete all the keys we created +} + +/** Returns the module which is currently used. */ +CSwordModuleInfo* const CSearchResultView::module() { + return m_module; +} + +QDragObject* CSearchResultView::dragObject() { + //return a valid DragObject to make DnD possible! + + /* + * First get all selected items and fill with them the dndItems list. The return the QDragObject we got from CDRagDropMgr + */ + CDragDropMgr::ItemList dndItems; + + QPtrList items = selectedItems(); + for (items.first(); items.current(); items.next()) { + dndItems.append( CDragDropMgr::Item(m_module->name(), items.current()->text(0), QString::null) ); //no description + }; + + return CDragDropMgr::dragObject(dndItems, viewport()); +} + + } //end of namespace Search::Result +} //end of namespace + diff --git a/bibletime/frontend/searchdialog/csearchresultview.h b/bibletime/frontend/searchdialog/csearchresultview.h new file mode 100644 index 0000000..b3f4dc4 --- /dev/null +++ b/bibletime/frontend/searchdialog/csearchresultview.h @@ -0,0 +1,112 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CSEARCHRESULTSVIEW_H +#define CSEARCHRESULTSVIEW_H + +//BibleTime includes +#include "backend/cswordmoduleinfo.h" + +//KDE includes +#include + +//forward declarations +class QLabel; +class QCheckBox; +class QPushButton; +class QRadioButton; + +class KComboBox; +class KActionMenu; +class KAction; +class KHistoryCombo; +class KProgress; +class KPopupMenu; + +class CReadDisplay; + +namespace Search { + namespace Result { + +class CSearchResultView : public KListView { + Q_OBJECT +public: + CSearchResultView(QWidget* parent, const char* name = 0); + virtual ~CSearchResultView(); + /** Returns the module which is currently used. */ + CSwordModuleInfo* const module(); + +protected: // Protected methods + /** + * Initializes the view of this widget. + */ + void initView(); + void initConnections(); + virtual QDragObject* dragObject(); + +public slots: // Public slots + void saveItems(); + /** + * Setups the list with the given module. + */ + void setupTree(CSwordModuleInfo*); + void setupStrongsTree(CSwordModuleInfo*, QStringList*); + void copyItemsWithText(); + void copyItems(); + void saveItemsWithText(); + /** + * Reimplementation to show the popup menu. + */ + virtual void showPopup(KListView*, QListViewItem* i, const QPoint& point); + +protected slots: // Protected slots + void printItems(); + /** + * Is connected to the signal executed, which is emitted when a mew item was chosen. + */ + void executed(QListViewItem*); + +private: + struct { + KActionMenu* saveMenu; + struct { + KAction* result; + KAction* resultWithText; + } + save; + + KActionMenu* printMenu; + struct { + KAction* result; + } + print; + + KActionMenu* copyMenu; + struct { + KAction* result; + KAction* resultWithText; + } + copy; + } + m_actions; + + KPopupMenu* m_popup; + CSwordModuleInfo* m_module; + +signals: // Signals + void keySelected(const QString&); +}; + + } //end of namespace Result +} //end of namespace Search + +#endif + diff --git a/bibletime/frontend/searchdialog/searchoptionsform.cpp b/bibletime/frontend/searchdialog/searchoptionsform.cpp new file mode 100644 index 0000000..18035c8 --- /dev/null +++ b/bibletime/frontend/searchdialog/searchoptionsform.cpp @@ -0,0 +1,119 @@ +#include +#include +/**************************************************************************** +** Form implementation generated from reading ui file './searchoptionsform.ui' +** +** Created: Sa Mai 10 13:52:35 2008 +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ + +#include "searchoptionsform.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Constructs a SearchOptionsForm as a child of 'parent', with the + * name 'name' and widget flags set to 'f'. + */ +SearchOptionsForm::SearchOptionsForm( QWidget* parent, const char* name, WFlags fl ) + : QWidget( parent, name, fl ) +{ + if ( !name ) + setName( "SearchOptionsForm" ); + setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)0, 0, 0, sizePolicy().hasHeightForWidth() ) ); + setMinimumSize( QSize( 260, 130 ) ); + setBaseSize( QSize( 420, 150 ) ); + SearchOptionsFormLayout = new QHBoxLayout( this, 0, 3, "SearchOptionsFormLayout"); + + searchGroupBox = new QGroupBox( this, "searchGroupBox" ); + searchGroupBox->setMargin( 0 ); + searchGroupBox->setColumnLayout(0, Qt::Vertical ); + searchGroupBox->layout()->setSpacing( 3 ); + searchGroupBox->layout()->setMargin( 6 ); + searchGroupBoxLayout = new QGridLayout( searchGroupBox->layout() ); + searchGroupBoxLayout->setAlignment( Qt::AlignTop ); + + m_searchTextLabel = new QLabel( searchGroupBox, "m_searchTextLabel" ); + m_searchTextLabel->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)1, 0, 0, m_searchTextLabel->sizePolicy().hasHeightForWidth() ) ); + + searchGroupBoxLayout->addWidget( m_searchTextLabel, 0, 0 ); + + m_syntaxButton = new QPushButton( searchGroupBox, "m_syntaxButton" ); + + searchGroupBoxLayout->addWidget( m_syntaxButton, 0, 2 ); + + m_chooseModulesButton = new QPushButton( searchGroupBox, "m_chooseModulesButton" ); + + searchGroupBoxLayout->addWidget( m_chooseModulesButton, 1, 2 ); + + m_chooseRangeButton = new QPushButton( searchGroupBox, "m_chooseRangeButton" ); + + searchGroupBoxLayout->addWidget( m_chooseRangeButton, 2, 2 ); + + m_searchScopeLabel = new QLabel( searchGroupBox, "m_searchScopeLabel" ); + m_searchScopeLabel->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)1, 0, 0, m_searchScopeLabel->sizePolicy().hasHeightForWidth() ) ); + + searchGroupBoxLayout->addWidget( m_searchScopeLabel, 2, 0 ); + + m_rangeChooserCombo = new KComboBox( FALSE, searchGroupBox, "m_rangeChooserCombo" ); + m_rangeChooserCombo->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, m_rangeChooserCombo->sizePolicy().hasHeightForWidth() ) ); + + searchGroupBoxLayout->addWidget( m_rangeChooserCombo, 2, 1 ); + + m_searchTextCombo = new KHistoryCombo( searchGroupBox, "m_searchTextCombo" ); + m_searchTextCombo->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, m_searchTextCombo->sizePolicy().hasHeightForWidth() ) ); + m_searchTextCombo->setFocusPolicy( KHistoryCombo::WheelFocus ); + m_searchTextCombo->setSizeLimit( 25 ); + m_searchTextCombo->setInsertionPolicy( KHistoryCombo::AtBottom ); + m_searchTextCombo->setDuplicatesEnabled( FALSE ); + + searchGroupBoxLayout->addWidget( m_searchTextCombo, 0, 1 ); + + m_modulesLabel = new QLabel( searchGroupBox, "m_modulesLabel" ); + m_modulesLabel->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)1, 0, 0, m_modulesLabel->sizePolicy().hasHeightForWidth() ) ); + m_modulesLabel->setTextFormat( QLabel::RichText ); + m_modulesLabel->setAlignment( int( QLabel::WordBreak | QLabel::AlignVCenter | QLabel::AlignLeft ) ); + + searchGroupBoxLayout->addMultiCellWidget( m_modulesLabel, 1, 1, 0, 1 ); + SearchOptionsFormLayout->addWidget( searchGroupBox ); + languageChange(); + resize( QSize(648, 130).expandedTo(minimumSizeHint()) ); + clearWState( WState_Polished ); +} + +/* + * Destroys the object and frees any allocated resources + */ +SearchOptionsForm::~SearchOptionsForm() +{ + // no need to delete child widgets, Qt does it all for us +} + +/* + * Sets the strings of the subwidgets using the current + * language. + */ +void SearchOptionsForm::languageChange() +{ + setCaption( tr2i18n( "Search Options" ) ); + searchGroupBox->setTitle( tr2i18n( "Search parameters" ) ); + m_searchTextLabel->setText( tr2i18n( "Search for:" ) ); + m_syntaxButton->setText( tr2i18n( "&Help" ) ); + m_syntaxButton->setAccel( QKeySequence( tr2i18n( "Alt+H" ) ) ); + m_chooseModulesButton->setText( tr2i18n( "&Choose" ) ); + m_chooseModulesButton->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) ); + m_chooseRangeButton->setText( tr2i18n( "&Setup" ) ); + m_chooseRangeButton->setAccel( QKeySequence( tr2i18n( "Alt+S" ) ) ); + m_searchScopeLabel->setText( tr2i18n( "Search scope:" ) ); + m_modulesLabel->setText( tr2i18n( "Search in:" ) ); +} + +#include "searchoptionsform.moc" diff --git a/bibletime/frontend/searchdialog/searchoptionsform.ui b/bibletime/frontend/searchdialog/searchoptionsform.ui new file mode 100644 index 0000000..1e31b9c --- /dev/null +++ b/bibletime/frontend/searchdialog/searchoptionsform.ui @@ -0,0 +1,199 @@ + +SearchOptionsForm + + + SearchOptionsForm + + + + 0 + 0 + 648 + 130 + + + + + 5 + 0 + 0 + 0 + + + + + 260 + 130 + + + + + 420 + 150 + + + + Search Options + + + + unnamed + + + + searchGroupBox + + + 0 + + + Search parameters + + + + unnamed + + + 6 + + + 3 + + + + m_searchTextLabel + + + + 1 + 1 + 0 + 0 + + + + Search for: + + + + + m_syntaxButton + + + &Help + + + Alt+H + + + + + m_chooseModulesButton + + + &Choose + + + Alt+C + + + + + m_chooseRangeButton + + + &Setup + + + Alt+S + + + + + m_searchScopeLabel + + + + 1 + 1 + 0 + 0 + + + + Search scope: + + + + + m_rangeChooserCombo + + + + 7 + 0 + 0 + 0 + + + + + + m_searchTextCombo + + + + 7 + 0 + 0 + 0 + + + + WheelFocus + + + 25 + + + AtBottom + + + false + + + + + m_modulesLabel + + + + 1 + 1 + 0 + 0 + + + + Search in: + + + RichText + + + WordBreak|AlignVCenter|AlignLeft + + + + + + + + + + + kcombobox.h + kcombobox.h + klineedit.h + + diff --git a/bibletime/frontend/searchdialog/searchresultsform.cpp b/bibletime/frontend/searchdialog/searchresultsform.cpp new file mode 100644 index 0000000..cf1f77b --- /dev/null +++ b/bibletime/frontend/searchdialog/searchresultsform.cpp @@ -0,0 +1,88 @@ +#include +#include +/**************************************************************************** +** Form implementation generated from reading ui file './searchresultsform.ui' +** +** Created: Sa Mai 10 13:52:35 2008 +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ + +#include "searchresultsform.h" + +#include +#include +#include +#include +#include +#include +#include +#include "cmoduleresultview.h" +#include "csearchresultview.h" + +/* + * Constructs a SearchResultsForm as a child of 'parent', with the + * name 'name' and widget flags set to 'f'. + */ +SearchResultsForm::SearchResultsForm( QWidget* parent, const char* name, WFlags fl ) + : QWidget( parent, name, fl ) +{ + if ( !name ) + setName( "SearchResultsForm" ); + setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, sizePolicy().hasHeightForWidth() ) ); + setMinimumSize( QSize( 300, 220 ) ); + setBaseSize( QSize( 440, 290 ) ); + SearchResultsFormLayout = new QVBoxLayout( this, 0, 3, "SearchResultsFormLayout"); + + displaySplitter = new QSplitter( this, "displaySplitter" ); + displaySplitter->setMinimumSize( QSize( 134, 44 ) ); + displaySplitter->setOrientation( QSplitter::Horizontal ); + + QWidget* privateLayoutWidget = new QWidget( displaySplitter, "rightSideBox" ); + rightSideBox = new QVBoxLayout( privateLayoutWidget, 0, 6, "rightSideBox"); + + resultSplitter = new QSplitter( privateLayoutWidget, "resultSplitter" ); + resultSplitter->setOrientation( QSplitter::Vertical ); + + m_moduleListBox = new Search::Result::CModuleResultView( resultSplitter, "m_moduleListBox" ); + + m_resultListBox = new Search::Result::CSearchResultView( resultSplitter, "m_resultListBox" ); + rightSideBox->addWidget( resultSplitter ); + + buttonLayout = new QHBoxLayout( 0, 0, 6, "buttonLayout"); + + m_analyseButton = new QPushButton( privateLayoutWidget, "m_analyseButton" ); + buttonLayout->addWidget( m_analyseButton ); + buttonSpacer = new QSpacerItem( 10, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); + buttonLayout->addItem( buttonSpacer ); + rightSideBox->addLayout( buttonLayout ); + + m_displayFrame = new QFrame( displaySplitter, "m_displayFrame" ); + m_displayFrame->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, m_displayFrame->sizePolicy().hasHeightForWidth() ) ); + m_displayFrame->setFrameShape( QFrame::NoFrame ); + m_displayFrame->setFrameShadow( QFrame::Plain ); + SearchResultsFormLayout->addWidget( displaySplitter ); + languageChange(); + resize( QSize(300, 220).expandedTo(minimumSizeHint()) ); + clearWState( WState_Polished ); +} + +/* + * Destroys the object and frees any allocated resources + */ +SearchResultsForm::~SearchResultsForm() +{ + // no need to delete child widgets, Qt does it all for us +} + +/* + * Sets the strings of the subwidgets using the current + * language. + */ +void SearchResultsForm::languageChange() +{ + setCaption( tr2i18n( "SearchResults" ) ); + m_analyseButton->setText( tr2i18n( "Analyze search" ) ); +} + +#include "searchresultsform.moc" diff --git a/bibletime/frontend/searchdialog/searchresultsform.ui b/bibletime/frontend/searchdialog/searchresultsform.ui new file mode 100644 index 0000000..5001d0a --- /dev/null +++ b/bibletime/frontend/searchdialog/searchresultsform.ui @@ -0,0 +1,196 @@ + +SearchResultsForm + + + SearchResultsForm + + + + 0 + 0 + 300 + 220 + + + + + 7 + 7 + 0 + 0 + + + + + 300 + 220 + + + + + 440 + 290 + + + + SearchResults + + + + unnamed + + + 0 + + + 3 + + + + displaySplitter + + + + 134 + 44 + + + + Horizontal + + + + rightSideBox + + + + unnamed + + + 0 + + + + resultSplitter + + + Vertical + + + + m_moduleListBox + + + + + m_resultListBox + + + + + + buttonLayout + + + + unnamed + + + 0 + + + + m_analyseButton + + + Analyze search + + + + + buttonSpacer + + + Horizontal + + + Expanding + + + + 10 + 20 + + + + + + + + + + m_displayFrame + + + + 7 + 7 + 0 + 0 + + + + NoFrame + + + Plain + + + + + + + + Search::Result::CModuleResultView +
cmoduleresultview.h
+ + 50 + 50 + + 0 + + 5 + 7 + 0 + 0 + + image0 +
+ + Search::Result::CSearchResultView +
csearchresultview.h
+ + 50 + 50 + + 0 + + 5 + 7 + 0 + 0 + + image0 +
+
+ + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003b149444154388dad945f4c5b551cc73fe7dc4b7b4bcba0762d45c43114323599ee6192609c51d883892ce083f1718b3ebb185f8dc91e972cf39d2d2a2f1af664b6f1e0fe3863a0718969700eb0c52142da0242a1bd6d696f7bcff101585203ceb8fd9ece39f99dcff9fe7edf939f88c562ec465f5f9fe609442c161362173c3e3eae7b7a7ac8e7f36432196cdbfe4f907c3e4f2291201e8fe338cec3737357e9e8e828aded1e229d650e1f2d51754b082110124c13a4dc5ea341eb9dc284c0558a853f3ce8cb0677ef500fde7d39d2596679e326597b8e9abb85d7a770ab16ab6983ec5a05b487a70e36f0f4e10afe408d6a558310980108478dba4a1e8233990c5d474b64ed39aa3a8fe5f3317fbf81dbd70bccfeb205947632fd74f6589c1c6ea2f70d03a58ba0c1f2c9bdc1b66de3b8256a6e11cbe7e3ee1d181b590124fe2693aeee08d223c82c3a2c24b7b874bec8f26288774f7bd054504aef0dde6e99c0eb83f9fb266323cb80a27fb0958141836044605a2ee5523393371cc646fee2da37195aa35d0c0c5b4859ac03d7e91712dcaac5adab3650a3ff9d08ef7dd8404bb48869e5d958b5b87dadc4c9a1464e9f0d0326df7ebd86bd2e310cb1bf62d384d59441f2d70a070e1c60e09489929b988681bdd9cc97170bcc4c65595f71f8e0e3301337fc24a7732467831875a47f289652b0be5e4151e6d07316c1b0c0340d8ab92023e76d66a6b2840e36d2fb7a13fee632475e6edc367ea98a90fb98b7dd6310ca0328a44761582e1bab41befabcc0ec940d28bc5e93b68e064cab84e1d9beaeb48934eac1f53b01c1b000fca496aa54b61a99fcde61662a4b4b4b23d1680be9d426173e4df3602a48ea411989a4fd590f52a8fd156b05ed9d350e3defe3cfdf4b4c7ce770ea7d3fb9f520afbe1620daeee5c26735d20b9b9cfb6811a754a439e4e5c5639a4caa1e5caf586bfc0197b78702005cb9b4cae4cd3267ce8638fe964bd72b393e39d74928d242617303a756a37f284447770dcdbffc6384a05a85de1306e9a52057c7527c7131c3c42d3f475eb2303c82d4fc3276d6811db37efeb148723082d9b08f79f97c1e5729109a9a28307cc622d2d6cdf52b2b24efe548dedb00142009862cfa879ee1a71f6cec928353511472fbf4389148b0b0e0c108081412458dfe21c9f11351e67e7358595468246d1d1e5e38a6e9e851bc39d84ab502a669331dafec0d8ec7e3e8cb06e1a881d727d1ae40180a434a8c9db129a54126ad48a7358c2b4c5352c8c374bcccdab2bb37d8719cba79fab8211f9df218e0582c261e95f8bfc04f1a1e8bc5c4dfe0a190172af6a9690000000049454e44ae426082 + + + + + cmoduleresultview.h + csearchresultview.h + +
diff --git a/bibletime/frontend/util/Makefile.am b/bibletime/frontend/util/Makefile.am new file mode 100644 index 0000000..3ad0794 --- /dev/null +++ b/bibletime/frontend/util/Makefile.am @@ -0,0 +1,16 @@ +INCLUDES = $(all_includes) + +libfrontendutil_a_METASOURCES = AUTO + +noinst_LIBRARIES = libfrontendutil.a + +libfrontendutil_a_SOURCES = \ +csortlistviewitem.cpp + +all_headers = \ +csortlistviewitem.h + +EXTRA_DIST = $(libfrontendutil_a_SOURCES) $(all_headers) + + +noinst_HEADERS = csortlistviewitem.h diff --git a/bibletime/frontend/util/Makefile.in b/bibletime/frontend/util/Makefile.in new file mode 100644 index 0000000..e524245 --- /dev/null +++ b/bibletime/frontend/util/Makefile.in @@ -0,0 +1,694 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/frontend/util +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) +ARFLAGS = cru +libfrontendutil_a_AR = $(AR) $(ARFLAGS) +libfrontendutil_a_LIBADD = +am_libfrontendutil_a_OBJECTS = csortlistviewitem.$(OBJEXT) +#>- libfrontendutil_a_OBJECTS = $(am_libfrontendutil_a_OBJECTS) +#>+ 1 +libfrontendutil_a_OBJECTS = csortlistviewitem.$(OBJEXT) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/admin/depcomp +am__depfiles_maybe = depfiles +#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 2 +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 3 +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +CXXLD = $(CXX) +#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ +#>- $(LDFLAGS) -o $@ +#>+ 3 +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libfrontendutil_a_SOURCES) +DIST_SOURCES = $(libfrontendutil_a_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +INCLUDES = $(all_includes) +#>- libfrontendutil_a_METASOURCES = AUTO +noinst_LIBRARIES = libfrontendutil.a +libfrontendutil_a_SOURCES = \ +csortlistviewitem.cpp + +all_headers = \ +csortlistviewitem.h + +EXTRA_DIST = $(libfrontendutil_a_SOURCES) $(all_headers) +noinst_HEADERS = csortlistviewitem.h +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/util/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/frontend/util/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/util/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/frontend/util/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/frontend/util/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +libfrontendutil.a: $(libfrontendutil_a_OBJECTS) $(libfrontendutil_a_DEPENDENCIES) + -rm -f libfrontendutil.a + $(libfrontendutil_a_AR) libfrontendutil.a $(libfrontendutil_a_OBJECTS) $(libfrontendutil_a_LIBADD) + $(RANLIB) libfrontendutil.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/csortlistviewitem.Po@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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 $(LIBRARIES) $(HEADERS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ +#>- mostlyclean-am +#>+ 2 +clean-am: clean-bcheck clean-generic clean-libtool clean-noinstLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am + +# 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: + +#>+ 2 +KDE_DIST=Makefile.in Makefile.am + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/frontend/util/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/frontend/util/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/frontend/util/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/frontend/util/csortlistviewitem.cpp b/bibletime/frontend/util/csortlistviewitem.cpp new file mode 100644 index 0000000..1bc089f --- /dev/null +++ b/bibletime/frontend/util/csortlistviewitem.cpp @@ -0,0 +1,84 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "csortlistviewitem.h" + +//#include + +namespace util { + +CSortListViewItem::CSortListViewItem(QListViewItem* parent) : KListViewItem(parent) +{ +} + +CSortListViewItem::CSortListViewItem( QListView * parent, QListViewItem * after ) + : KListViewItem ( parent, after ) +{ +} + +CSortListViewItem::CSortListViewItem( QListViewItem * parent, QListViewItem * after ) + : KListViewItem ( parent, after ) +{ +} + +CSortListViewItem::CSortListViewItem( QListView * parent, QString label1, QString label2, QString label3, QString label4, QString label5, QString label6, QString label7, QString label8 ) + : KListViewItem( parent, label1, label2, label3, label4, label5, label6, label7, label8 ) +{ +} + +CSortListViewItem::CSortListViewItem( QListViewItem * parent, QString label1, QString label2, QString label3, QString label4, QString label5, QString label6, QString label7, QString label8 ) + : KListViewItem ( parent, label1, label2, label3, label4, label5, label6, label7, label8 ) +{ +} + +CSortListViewItem::CSortListViewItem( QListView * parent, QListViewItem * after, QString label1, QString label2, QString label3, QString label4, QString label5, QString label6, QString label7, QString label8 ) + : KListViewItem ( parent, after, label1, label2, label3, label4, label5, label6, label7, label8 ) +{ +} + +CSortListViewItem::CSortListViewItem( QListViewItem * parent, QListViewItem * after, QString label1, QString label2, QString label3, QString label4, QString label5, QString label6, QString label7, QString label8 ) + : KListViewItem ( parent, after, label1, label2, label3, label4, label5, label6, label7, label8 ) +{ + +} + + +CSortListViewItem::~CSortListViewItem() { +} + +int CSortListViewItem::compare( QListViewItem* i, int col, bool ascending ) const { + int ret = 0; + + if ( !columnSorting.contains(col) ) { + return KListViewItem::compare(i, col, ascending); + } + + Type t = columnSorting[col]; + if (t == String) { + ret = KListViewItem::compare(i, col, ascending); + } + else if (t == Number) { + ret = (int) (text(col).toLong() - (i->text(col).toLong())); + } +// else if (t == BibleKey) { +// //ret = (int) (text(col).toLong() - (i->text(col).toLong())); +// ret = sword::VerseKey( (const char*) text(col).utf8() )._compare( sword::VerseKey( (const char*) i->text(col).utf8()) ); +// } + + return ret; +} + +void CSortListViewItem::setColumnSorting(int column, CSortListViewItem::Type type) { + columnSorting[ column ] = type; +} + +} + diff --git a/bibletime/frontend/util/csortlistviewitem.h b/bibletime/frontend/util/csortlistviewitem.h new file mode 100644 index 0000000..b1f66ce --- /dev/null +++ b/bibletime/frontend/util/csortlistviewitem.h @@ -0,0 +1,58 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef UTILCSORTLISTVIEWITEM_H +#define UTILCSORTLISTVIEWITEM_H + + +#include + +#include + +namespace util { + +/** + * A implementation of a QListViewItem to allow special sort orders for it's columns. + * @author The BibleTime team +*/ +class CSortListViewItem : public KListViewItem { +public: + enum Type { + Number, String/*, BibleKey*/ + }; + + CSortListViewItem( QListViewItem* parent ); + + CSortListViewItem( QListView * parent, QListViewItem * after ); + + CSortListViewItem( QListViewItem * parent, QListViewItem * after ); + + CSortListViewItem( QListView * parent, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null, QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null ); + + CSortListViewItem( QListViewItem * parent, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null, QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null ); + + CSortListViewItem( QListView * parent, QListViewItem * after, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null, QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null ); + + CSortListViewItem( QListViewItem * parent, QListViewItem * after, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null, QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null ); + + virtual ~CSortListViewItem(); + + virtual int compare( QListViewItem* i, int col, bool ascending ) const; + + void setColumnSorting(int column, Type type); + +private: + QMap columnSorting; +}; + +} + +#endif diff --git a/bibletime/main.cpp b/bibletime/main.cpp new file mode 100644 index 0000000..71690b9 --- /dev/null +++ b/bibletime/main.cpp @@ -0,0 +1,311 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +/* $Header: /cvsroot/bibletime/bibletime/bibletime/main.cpp,v 1.144 2007/10/26 21:19:27 eelik Exp $ */ +/* $Revision: 1.144 $ */ + +//standard includes +#include +#include +#include + +//own includes +#include "bibletimeapp.h" +#include "bibletime.h" +#include "config.h" + +//util includes +#include "util/scoped_resource.h" +#include "util/cresmgr.h" + +//frontend includes +#include "frontend/kstartuplogo.h" +#include "frontend/cbtconfig.h" + +//Qt includes +#include + +//KDE includes +#include +#include +#include +#include +#include +#include +#include +#include + +bool showDebugMessages = false; +BibleTime* bibletime_ptr = 0; + +void myMessageOutput( QtMsgType type, const char *msg ) { + //we use this messagehandler to switch debugging off in final releases + switch ( type ) { + case QtDebugMsg: + if (showDebugMessages) { //only show messages if they are enabled! + fprintf( stderr,"(BibleTime %s) Debug: %s\n",VERSION, msg ); + } + break; + case QtWarningMsg: + //if (showDebugMessages) //comment out for releases so users don't get our debug warnings + fprintf( stderr,"(BibleTime %s) WARNING: %s\n",VERSION, msg ); + break; + case QtFatalMsg: + fprintf( stderr,"(BibleTime %s) _FATAL_: %s\nPlease contact info@bibletime.de and report this bug!",VERSION, msg ); + abort(); // dump core on purpose + } +} + +extern "C" { + static void setSignalHandler(void (*handler)(int)); + + // Crash recovery signal handler + static void signalHandler(int sigId) { + setSignalHandler(SIG_DFL); + fprintf(stderr, "*** BibleTime got signal %d (Exiting)\n", sigId); + // try to cleanup all windows + if (CBTConfig::get(CBTConfig::crashedLastTime)) { + //crashed this time and the execution before this one, probably a bug which occurs every time + CBTConfig::set(CBTConfig::crashedTwoTimes, true); + } + else { + //try to restore next time. + CBTConfig::set(CBTConfig::crashedLastTime, true); + } + if (bibletime_ptr) { + bibletime_ptr->saveSettings(); + fprintf(stderr, "*** Saving seemed to be successful. If restoring does not work on next startup please use the option --ignore-session\n"); + } + ::exit(-1); //exit BibleTime + } + + // Crash recovery signal handler + static void crashHandler(int sigId) { + setSignalHandler(SIG_DFL); + fprintf(stderr, "*** BibleTime got signal %d (Crashing). Trying to save settings.\n", sigId); + if (CBTConfig::get(CBTConfig::crashedLastTime)) { + // crashed this time and the execution before this one, + // probably a bug which occurs every time + CBTConfig::set(CBTConfig::crashedTwoTimes, true); + } + else { + //try to restore next time. + CBTConfig::set(CBTConfig::crashedLastTime, true); + } + if (bibletime_ptr) { + bibletime_ptr->saveSettings(); + fprintf(stderr, "*** Saving seemed to be successful. If restoring does not work on next startup please use the option --ignore-session\n"); + } + // Return to DrKonqi. + } + + static void setSignalHandler(void (*handler)(int)) { + signal(SIGKILL, handler); + signal(SIGTERM, handler); + signal(SIGHUP, handler); + KCrash::setEmergencySaveFunction(crashHandler); + } +} + +int main(int argc, char* argv[]) { + qInstallMsgHandler( myMessageOutput ); + + //create about data for this application + static KCmdLineOptions options[] = + { + {"debug", I18N_NOOP("Enable debug messages"),0}, + {"ignore-session", I18N_NOOP("Ignore the startup session that was saved when BibleTime was closed the last time."),0}, + {"open-default-bible ", I18N_NOOP("Open the standard Bible with the given key. Use to open at a random position."),0}, + //{"install-local ", I18N_NOOP("Open the SwordSetup dialog to install works from "),0}, + {0,0,0} + }; + + KAboutData aboutData( + PACKAGE, + "BibleTime", + VERSION, + I18N_NOOP("Bible study tool for KDE"), + KAboutData::License_GPL_V2, + I18N_NOOP("(c)1999-2007, The BibleTime Team"), + I18N_NOOP("BibleTime is an easy to use but powerful Bible study tool for KDE.\n\nWe are looking for developers and translators.\nIf you'd like to join our team, please send an email to info@bibletime.info."), + "http://www.bibletime.info/", + "info@bibletime.info" + ); + + /*********************************************** + * Active developers (sorted by last name) * + ************************************************/ + // Project coordination + aboutData.addAuthor("Joachim Ansorg", I18N_NOOP("Project coordinator"), "nospam@joachim-ansorg.de", "http://www.joachim-ansorg.de/"); + // Second main developer + aboutData.addAuthor("Martin Gruner", I18N_NOOP("Frontend, backend"), "mg.pub@gmx.net", ""); + // artwork + aboutData.addAuthor("James Ots", I18N_NOOP("Crystal icons, crystal startlogo, webpage"), "me@jamesots.com", "http://www.jamesots.com"); + + //inactiv + + /*********************************************** + * Credits (sorted by last name) * + ************************************************/ + // Update to the Romanian GUI translation + aboutData.addCredit("Horatiu Alexe", I18N_NOOP("Romanian translation"), ""); + //highcolor icons, startlogo for BT <= 1.4 + aboutData.addCredit("David Blue", I18N_NOOP("High contrast template"), "davidslists@gmx.net"); + //helped out with the installation manager + aboutData.addCredit("Tim Brodie", I18N_NOOP("Installation manager"),"tbrodie@displayworksinc.com", ""); + //first set of icons and the first startup logos + aboutData.addCredit("Timothy R. Butler", I18N_NOOP("Icons, startlogo"), "tbutler@uninetsolutions.com", "http://www.uninetsolutions.com"); + //GUI improvements + aboutData.addCredit("Jim Campbell", I18N_NOOP("GUI"), "jdc.email@gmail.com", ""); + //Indexed search, gui improvements + aboutData.addCredit("Lee Carpenter", I18N_NOOP("GUI, instant search"),"Lee Carpenter ", "http://www.carpie.net"); + //Translations into Traditional and Simplified Chinese + aboutData.addCredit("Chun-shek Chan", I18N_NOOP("GUI translations into Traditional and Simplified Chinese"), "chunshek@gmail.com", ""); + //Binary packages of CLucene, BibleTime and Sword for Fedore, SUSE, Mandriva + aboutData.addCredit("Jeremy Erickson", I18N_NOOP("Binary packages"), "", ""); + //Started the Crosswire porject, also contributed some code + aboutData.addCredit("Troy A. Griffits", I18N_NOOP("Founder of the Sword project"), "scribe@crosswire.org", "http://www.crosswire.org/"); + //Sponsored many years the www.bibletime.de domain! + aboutData.addCredit("Thomas Hagedorn", I18N_NOOP("Sponsored our internet domain for many years"), "tom@theta-consulting.de", ""); + //He provided us with the Bible Study HowTo + aboutData.addCredit("Bob Harman", I18N_NOOP("Bible Study HowTo"), "ncc@ncchampton.org", ""); + // and / or search for multiple words, other fixes and improvements + aboutData.addCredit("Nikolay Igotti", I18N_NOOP("Search dialog enhancements"), "olonho@hotmail.com", ""); + // Language codes iso639-1, iso639-2 and SIL language codes + aboutData.addCredit("SIL International", I18N_NOOP("Language codes and names"), "", "http://www.ethnologue.com/iso639"); + //Patch for the mag delay (2007-03-22) + aboutData.addCredit("Eeli Kaikkonen", I18N_NOOP("GUI improvements"),"eekaikko@mail.student.oulu.fi", ""); + //Update the the Finnish GUI translation + aboutData.addCredit("Ilpo Kantonen", I18N_NOOP("Finnish translation"),"", ""); + //Smaller frontend enhancements + aboutData.addCredit("Chris Kujawa", I18N_NOOP("Frontend"),"christopher.kujawa@verizon.net", ""); + //Update to the Czech GUI translation + aboutData.addCredit("Pavel Lauko", I18N_NOOP("Czech translation"),"", ""); + //Smaller searchdialog enhancements + aboutData.addCredit("Mark Lybarger", I18N_NOOP("Searchdialog"), "mlybarge@insight.rr.com",""); + //Polish GUI translation update + aboutData.addCredit("Piotr Markiewicz", I18N_NOOP("Polish translation"), "pmarki@o2.pl", ""); + //Smaller frontend enhancements + aboutData.addCredit("Luke Mauldin", I18N_NOOP("Frontend"), "lukeskyfly@txk.net", ""); + //translated parts of the russian website files + aboutData.addCredit("Igor Rykhlin", I18N_NOOP("Russian website translation"), "", ""); + // update to the Spanish website translation + aboutData.addCredit("Gabriel Pérez", I18N_NOOP("Spanish website translation updates"), "", ""); + //Update to the russian website translation + aboutData.addCredit("Igor Plisco", I18N_NOOP("Update to the russian website translation"), "", ""); + // handbook documentation + aboutData.addCredit("Fred Saalbach", I18N_NOOP("Documentation"), "saalbach@sybercom.net", ""); + // Original Russian website translator + aboutData.addCredit("Vlad Savitsky", I18N_NOOP("Russian website translation"), "", ""); + // comitted search in default bible, opened modules, other smaller things + aboutData.addCredit("Gary Sims", I18N_NOOP("Search dialog enhancements"), "gary@garysims.co.uk", ""); + // Very helpful testing + aboutData.addCredit("Wolfgang Stradner", I18N_NOOP("Very helpful and detailed testing"), "wolfgang_stradner@wycliffe.org", ""); + //The first lead developer + aboutData.addCredit("Torsten Uhlmann", I18N_NOOP("The first lead developer"), "", ""); + //Update of the dutch website translation + aboutData.addCredit("Johan van der Lingen", I18N_NOOP("Translation updates for the Dutch GUI, the website and the handbook"), "", ""); + //French handbook translation + aboutData.addCredit("Jean Van Schaftingen", I18N_NOOP("French handbook translation"), "", ""); + //scoped_ptr and related classes + aboutData.addCredit("David White", I18N_NOOP("Helpful source code additions"), "", "http://www.wesnoth.org/"); + //Translated the GUI into Russian + aboutData.addCredit("Dmitry Yurevich", I18N_NOOP("Translated the GUI into Russian"), "", ""); + //The new keychooser for Bible modules + aboutData.addCredit("Mark Zealey", I18N_NOOP("New Bible key choosers"), "mspam@zealey.org", ""); + //Update to the Spanish GUI translation + aboutData.addCredit("Esteban Zeller", I18N_NOOP("Spanish translation"), "", ""); + + + //special message so the translator get his credits in the about box, don't remove this! + QString dummy = I18N_NOOP("_: NAME OF TRANSLATORS\nYour names"); //translator's name + dummy = I18N_NOOP("_: EMAIL OF TRANSLATORS\nYour emails"); //translators eMail + + KCmdLineArgs::init(argc, argv, &aboutData); + KCmdLineArgs::addCmdLineOptions( options ); + + BibleTimeApp app; + KGlobal::dirs()->addResourceType("BT_pic", "share/apps/bibletime/pics"); + KGlobal::dirs()->addResourceType("BT_DisplayTemplates", "share/apps/bibletime/display-templates"); + + KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); + + // A binary option (on / off) + if (args->isSet("debug")) { + showDebugMessages = true; + } + + if (kapp->isRestored()) { + // qWarning("Restoring BibleTime"); + //RESTORE( BibleTime ); + int n = 1; + while (KMainWindow::canBeRestored(n)){ + if (KMainWindow::classNameOfToplevel(n) == QString("BibleTime")) { + bibletime_ptr = new BibleTime; + bibletime_ptr->restore(n); + } + n++; + } + bibletime_ptr->restoreWorkspace(); + } + else { + const bool showIt = CBTConfig::get(CBTConfig::logo); + + if(showIt) { + KStartupLogo::createSplash(); + KStartupLogo::showSplash(); + KStartupLogo::setStatusMessage( i18n("Starting BibleTime") + QString("...") ); + } + + setSignalHandler(signalHandler); + + // compatibility stuff for 1.3, needs to be moved to better place later + if (CBTConfig::get(CBTConfig::bibletimeVersion) != VERSION) { + KStandardDirs stdDirs; + QDir dir(stdDirs.saveLocation("data", "bibletime/")); + if (!dir.exists("sessions/") && dir.exists("profiles/")) { //only old dir exists + dir.rename("profiles", "sessions"); + } + } + + bibletime_ptr = new BibleTime(); + + // a new BibleTime version was installed (maybe a completely new installation) + if (CBTConfig::get(CBTConfig::bibletimeVersion) != VERSION) { + KStartupLogo::hideSplash(); + + CBTConfig::set(CBTConfig::bibletimeVersion, VERSION); + bibletime_ptr->slotSettingsOptions(); + } + + //The tip of the day + if (CBTConfig::get(CBTConfig::tips)) { + KStartupLogo::hideSplash(); + bibletime_ptr->slotHelpTipOfDay(); + } + + // restore the workspace and process command line options + app.setMainWidget(bibletime_ptr); + bibletime_ptr->show(); + bibletime_ptr->processCommandline(); //must be done after the bibletime window is visible + + if (showIt) { + KStartupLogo::hideSplash(); + KStartupLogo::deleteSplash(); + } + } + + const int ret = app.exec(); + + delete bibletime_ptr; + return ret; +} + diff --git a/bibletime/pics/16x16/Makefile.am b/bibletime/pics/16x16/Makefile.am new file mode 100644 index 0000000..fd4e41f --- /dev/null +++ b/bibletime/pics/16x16/Makefile.am @@ -0,0 +1,7 @@ +# This Makefile.am was automatically generated by running "perl bibletime/pics/gen_am_pics.pl" +# Please do not edit this file but rather run the script to update + + +EXTRA_DIST = hi16-action-bt_bible.png hi16-action-bt_bible_add.png hi16-action-bt_bible_locked.png hi16-action-bt_book.png hi16-action-bt_book_add.png hi16-action-bt_book_locked.png hi16-action-bt_cascade.png hi16-action-bt_cascade_auto.png hi16-action-bt_commentary.png hi16-action-bt_commentary_add.png hi16-action-bt_commentary_locked.png hi16-action-bt_displayconfig.png hi16-action-bt_displaytranslit.png hi16-action-bt_lexicon.png hi16-action-bt_lexicon_add.png hi16-action-bt_lexicon_locked.png hi16-action-bt_startconfig.png hi16-action-bt_swordconfig.png hi16-action-bt_sync.png hi16-action-bt_tile.png hi16-action-bt_tile_auto.png hi16-app-bibletime.png hi16-action-bt_findstrongs.png + +KDE_ICON = bt_bible bt_bible_add bt_bible_locked bt_book bt_book_add bt_book_locked bt_cascade bt_cascade_auto bt_commentary bt_commentary_add bt_commentary_locked bt_displayconfig bt_displaytranslit bt_lexicon bt_lexicon_add bt_lexicon_locked bt_startconfig bt_swordconfig bt_sync bt_tile bt_tile_auto bibletime bt_findstrongs \ No newline at end of file diff --git a/bibletime/pics/16x16/Makefile.in b/bibletime/pics/16x16/Makefile.in new file mode 100644 index 0000000..a13b949 --- /dev/null +++ b/bibletime/pics/16x16/Makefile.in @@ -0,0 +1,622 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ + +# This Makefile.am was automatically generated by running "perl bibletime/pics/gen_am_pics.pl" +# Please do not edit this file but rather run the script to update +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/pics/16x16 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +EXTRA_DIST = hi16-action-bt_bible.png hi16-action-bt_bible_add.png hi16-action-bt_bible_locked.png hi16-action-bt_book.png hi16-action-bt_book_add.png hi16-action-bt_book_locked.png hi16-action-bt_cascade.png hi16-action-bt_cascade_auto.png hi16-action-bt_commentary.png hi16-action-bt_commentary_add.png hi16-action-bt_commentary_locked.png hi16-action-bt_displayconfig.png hi16-action-bt_displaytranslit.png hi16-action-bt_lexicon.png hi16-action-bt_lexicon_add.png hi16-action-bt_lexicon_locked.png hi16-action-bt_startconfig.png hi16-action-bt_swordconfig.png hi16-action-bt_sync.png hi16-action-bt_tile.png hi16-action-bt_tile_auto.png hi16-app-bibletime.png hi16-action-bt_findstrongs.png +KDE_ICON = bt_bible bt_bible_add bt_bible_locked bt_book bt_book_add bt_book_locked bt_cascade bt_cascade_auto bt_commentary bt_commentary_add bt_commentary_locked bt_displayconfig bt_displaytranslit bt_lexicon bt_lexicon_add bt_lexicon_locked bt_startconfig bt_swordconfig bt_sync bt_tile bt_tile_auto bibletime bt_findstrongs +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/16x16/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/pics/16x16/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/16x16/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/pics/16x16/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/pics/16x16/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-kde-icons + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +#>- uninstall-am: +#>+ 1 +uninstall-am: uninstall-kde-icons + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + +# 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: + +#>+ 2 +KDE_DIST=Makefile.in Makefile.am + +#>+ 2 +docs-am: + +#>+ 52 +install-kde-icons: + $(mkinstalldirs) $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_bible.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_bible.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_bible_add.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_bible_add.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_bible_locked.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_bible_locked.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_book.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_book.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_book_add.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_book_add.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_book_locked.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_book_locked.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_cascade.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_cascade.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_cascade_auto.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_cascade_auto.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_commentary.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_commentary.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_commentary_add.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_commentary_add.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_commentary_locked.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_commentary_locked.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_displayconfig.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_displayconfig.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_displaytranslit.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_displaytranslit.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_findstrongs.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_findstrongs.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_lexicon.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_lexicon.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_lexicon_add.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_lexicon_add.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_lexicon_locked.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_lexicon_locked.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_startconfig.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_startconfig.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_swordconfig.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_swordconfig.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_sync.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_sync.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_tile.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_tile.png + $(INSTALL_DATA) $(srcdir)/hi16-action-bt_tile_auto.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_tile_auto.png + $(mkinstalldirs) $(DESTDIR)$(kde_icondir)/hicolor/16x16/apps + $(INSTALL_DATA) $(srcdir)/hi16-app-bibletime.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/apps/bibletime.png + +uninstall-kde-icons: + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_bible.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_bible_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_bible_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_book.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_book_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_book_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_cascade.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_cascade_auto.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_commentary.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_commentary_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_commentary_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_displayconfig.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_displaytranslit.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_findstrongs.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_lexicon.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_lexicon_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_lexicon_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_startconfig.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_swordconfig.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_sync.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_tile.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/actions/bt_tile_auto.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/apps/bibletime.png + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/16x16/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/pics/16x16/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/pics/16x16/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/pics/16x16/hi16-action-bt_bible.png b/bibletime/pics/16x16/hi16-action-bt_bible.png new file mode 100644 index 0000000..59e09c2 Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_bible.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_bible_add.png b/bibletime/pics/16x16/hi16-action-bt_bible_add.png new file mode 100644 index 0000000..a90a655 Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_bible_add.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_bible_locked.png b/bibletime/pics/16x16/hi16-action-bt_bible_locked.png new file mode 100644 index 0000000..060626f Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_bible_locked.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_book.png b/bibletime/pics/16x16/hi16-action-bt_book.png new file mode 100644 index 0000000..0ec5e3b Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_book.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_book_add.png b/bibletime/pics/16x16/hi16-action-bt_book_add.png new file mode 100644 index 0000000..ac5fb3f Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_book_add.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_book_locked.png b/bibletime/pics/16x16/hi16-action-bt_book_locked.png new file mode 100644 index 0000000..83784a8 Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_book_locked.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_cascade.png b/bibletime/pics/16x16/hi16-action-bt_cascade.png new file mode 100644 index 0000000..d2d4002 Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_cascade.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_cascade_auto.png b/bibletime/pics/16x16/hi16-action-bt_cascade_auto.png new file mode 100644 index 0000000..a16ad9a Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_cascade_auto.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_commentary.png b/bibletime/pics/16x16/hi16-action-bt_commentary.png new file mode 100644 index 0000000..b9f198e Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_commentary.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_commentary_add.png b/bibletime/pics/16x16/hi16-action-bt_commentary_add.png new file mode 100644 index 0000000..af1e044 Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_commentary_add.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_commentary_locked.png b/bibletime/pics/16x16/hi16-action-bt_commentary_locked.png new file mode 100644 index 0000000..9b019dc Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_commentary_locked.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_displayconfig.png b/bibletime/pics/16x16/hi16-action-bt_displayconfig.png new file mode 100644 index 0000000..735af2f Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_displayconfig.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_displaytranslit.png b/bibletime/pics/16x16/hi16-action-bt_displaytranslit.png new file mode 100644 index 0000000..85c7e98 Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_displaytranslit.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_findstrongs.png b/bibletime/pics/16x16/hi16-action-bt_findstrongs.png new file mode 100644 index 0000000..52a8416 Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_findstrongs.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_lexicon.png b/bibletime/pics/16x16/hi16-action-bt_lexicon.png new file mode 100644 index 0000000..4a0fe15 Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_lexicon.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_lexicon_add.png b/bibletime/pics/16x16/hi16-action-bt_lexicon_add.png new file mode 100644 index 0000000..78a0ba2 Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_lexicon_add.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_lexicon_locked.png b/bibletime/pics/16x16/hi16-action-bt_lexicon_locked.png new file mode 100644 index 0000000..ff7d87f Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_lexicon_locked.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_startconfig.png b/bibletime/pics/16x16/hi16-action-bt_startconfig.png new file mode 100644 index 0000000..21e4865 Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_startconfig.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_swordconfig.png b/bibletime/pics/16x16/hi16-action-bt_swordconfig.png new file mode 100644 index 0000000..3c33de6 Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_swordconfig.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_sync.png b/bibletime/pics/16x16/hi16-action-bt_sync.png new file mode 100644 index 0000000..6820542 Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_sync.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_tile.png b/bibletime/pics/16x16/hi16-action-bt_tile.png new file mode 100644 index 0000000..10854d8 Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_tile.png differ diff --git a/bibletime/pics/16x16/hi16-action-bt_tile_auto.png b/bibletime/pics/16x16/hi16-action-bt_tile_auto.png new file mode 100644 index 0000000..f4ab245 Binary files /dev/null and b/bibletime/pics/16x16/hi16-action-bt_tile_auto.png differ diff --git a/bibletime/pics/16x16/hi16-app-bibletime.png b/bibletime/pics/16x16/hi16-app-bibletime.png new file mode 100644 index 0000000..1fe6a4d Binary files /dev/null and b/bibletime/pics/16x16/hi16-app-bibletime.png differ diff --git a/bibletime/pics/22x22/Makefile.am b/bibletime/pics/22x22/Makefile.am new file mode 100644 index 0000000..e7d2521 --- /dev/null +++ b/bibletime/pics/22x22/Makefile.am @@ -0,0 +1,7 @@ +# This Makefile.am was automatically generated by running "perl bibletime/pics/gen_am_pics.pl" +# Please do not edit this file but rather run the script to update + + +EXTRA_DIST = hi22-action-bt_bible.png hi22-action-bt_bible_add.png hi22-action-bt_bible_locked.png hi22-action-bt_book.png hi22-action-bt_book_add.png hi22-action-bt_book_locked.png hi22-action-bt_cascade.png hi22-action-bt_cascade_auto.png hi22-action-bt_commentary.png hi22-action-bt_commentary_add.png hi22-action-bt_commentary_locked.png hi22-action-bt_displayconfig.png hi22-action-bt_displaytranslit.png hi22-action-bt_lexicon.png hi22-action-bt_lexicon_add.png hi22-action-bt_lexicon_locked.png hi22-action-bt_parallel.png hi22-action-bt_startconfig.png hi22-action-bt_swordconfig.png hi22-action-bt_sync.png hi22-action-bt_tile.png hi22-action-bt_tile_auto.png hi22-app-bibletime.png hi22-action-bt_findstrongs.png + +KDE_ICON = bt_bible bt_bible_add bt_bible_locked bt_book bt_book_add bt_book_locked bt_cascade bt_cascade_auto bt_commentary bt_commentary_add bt_commentary_locked bt_displayconfig bt_displaytranslit bt_lexicon bt_lexicon_add bt_lexicon_locked bt_parallel bt_startconfig bt_swordconfig bt_sync bt_tile bt_tile_auto bibletime bt_findstrongs \ No newline at end of file diff --git a/bibletime/pics/22x22/Makefile.in b/bibletime/pics/22x22/Makefile.in new file mode 100644 index 0000000..40b4dc2 --- /dev/null +++ b/bibletime/pics/22x22/Makefile.in @@ -0,0 +1,624 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ + +# This Makefile.am was automatically generated by running "perl bibletime/pics/gen_am_pics.pl" +# Please do not edit this file but rather run the script to update +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/pics/22x22 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +EXTRA_DIST = hi22-action-bt_bible.png hi22-action-bt_bible_add.png hi22-action-bt_bible_locked.png hi22-action-bt_book.png hi22-action-bt_book_add.png hi22-action-bt_book_locked.png hi22-action-bt_cascade.png hi22-action-bt_cascade_auto.png hi22-action-bt_commentary.png hi22-action-bt_commentary_add.png hi22-action-bt_commentary_locked.png hi22-action-bt_displayconfig.png hi22-action-bt_displaytranslit.png hi22-action-bt_lexicon.png hi22-action-bt_lexicon_add.png hi22-action-bt_lexicon_locked.png hi22-action-bt_parallel.png hi22-action-bt_startconfig.png hi22-action-bt_swordconfig.png hi22-action-bt_sync.png hi22-action-bt_tile.png hi22-action-bt_tile_auto.png hi22-app-bibletime.png hi22-action-bt_findstrongs.png +KDE_ICON = bt_bible bt_bible_add bt_bible_locked bt_book bt_book_add bt_book_locked bt_cascade bt_cascade_auto bt_commentary bt_commentary_add bt_commentary_locked bt_displayconfig bt_displaytranslit bt_lexicon bt_lexicon_add bt_lexicon_locked bt_parallel bt_startconfig bt_swordconfig bt_sync bt_tile bt_tile_auto bibletime bt_findstrongs +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/22x22/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/pics/22x22/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/22x22/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/pics/22x22/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/pics/22x22/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-kde-icons + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +#>- uninstall-am: +#>+ 1 +uninstall-am: uninstall-kde-icons + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + +# 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: + +#>+ 2 +KDE_DIST=Makefile.in Makefile.am + +#>+ 2 +docs-am: + +#>+ 54 +install-kde-icons: + $(mkinstalldirs) $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_bible.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_bible.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_bible_add.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_bible_add.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_bible_locked.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_bible_locked.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_book.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_book.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_book_add.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_book_add.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_book_locked.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_book_locked.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_cascade.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_cascade.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_cascade_auto.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_cascade_auto.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_commentary.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_commentary.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_commentary_add.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_commentary_add.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_commentary_locked.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_commentary_locked.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_displayconfig.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_displayconfig.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_displaytranslit.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_displaytranslit.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_findstrongs.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_findstrongs.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_lexicon.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_lexicon.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_lexicon_add.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_lexicon_add.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_lexicon_locked.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_lexicon_locked.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_parallel.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_parallel.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_startconfig.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_startconfig.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_swordconfig.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_swordconfig.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_sync.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_sync.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_tile.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_tile.png + $(INSTALL_DATA) $(srcdir)/hi22-action-bt_tile_auto.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_tile_auto.png + $(mkinstalldirs) $(DESTDIR)$(kde_icondir)/hicolor/22x22/apps + $(INSTALL_DATA) $(srcdir)/hi22-app-bibletime.png $(DESTDIR)$(kde_icondir)/hicolor/22x22/apps/bibletime.png + +uninstall-kde-icons: + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_bible.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_bible_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_bible_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_book.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_book_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_book_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_cascade.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_cascade_auto.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_commentary.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_commentary_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_commentary_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_displayconfig.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_displaytranslit.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_findstrongs.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_lexicon.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_lexicon_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_lexicon_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_parallel.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_startconfig.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_swordconfig.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_sync.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_tile.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/actions/bt_tile_auto.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/22x22/apps/bibletime.png + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/22x22/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/pics/22x22/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/pics/22x22/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/pics/22x22/hi22-action-bt_bible.png b/bibletime/pics/22x22/hi22-action-bt_bible.png new file mode 100644 index 0000000..20c9785 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_bible.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_bible_add.png b/bibletime/pics/22x22/hi22-action-bt_bible_add.png new file mode 100644 index 0000000..7684364 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_bible_add.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_bible_locked.png b/bibletime/pics/22x22/hi22-action-bt_bible_locked.png new file mode 100644 index 0000000..c88f9f7 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_bible_locked.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_book.png b/bibletime/pics/22x22/hi22-action-bt_book.png new file mode 100644 index 0000000..7d50365 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_book.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_book_add.png b/bibletime/pics/22x22/hi22-action-bt_book_add.png new file mode 100644 index 0000000..60d345f Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_book_add.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_book_locked.png b/bibletime/pics/22x22/hi22-action-bt_book_locked.png new file mode 100644 index 0000000..8c0861a Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_book_locked.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_cascade.png b/bibletime/pics/22x22/hi22-action-bt_cascade.png new file mode 100644 index 0000000..07068c6 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_cascade.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_cascade_auto.png b/bibletime/pics/22x22/hi22-action-bt_cascade_auto.png new file mode 100644 index 0000000..8b3a0a8 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_cascade_auto.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_commentary.png b/bibletime/pics/22x22/hi22-action-bt_commentary.png new file mode 100644 index 0000000..4711ca2 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_commentary.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_commentary_add.png b/bibletime/pics/22x22/hi22-action-bt_commentary_add.png new file mode 100644 index 0000000..d58bb17 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_commentary_add.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_commentary_locked.png b/bibletime/pics/22x22/hi22-action-bt_commentary_locked.png new file mode 100644 index 0000000..b9b3615 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_commentary_locked.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_displayconfig.png b/bibletime/pics/22x22/hi22-action-bt_displayconfig.png new file mode 100644 index 0000000..eaa67d1 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_displayconfig.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_displaytranslit.png b/bibletime/pics/22x22/hi22-action-bt_displaytranslit.png new file mode 100644 index 0000000..5eada70 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_displaytranslit.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_findstrongs.png b/bibletime/pics/22x22/hi22-action-bt_findstrongs.png new file mode 100644 index 0000000..c709b21 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_findstrongs.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_lexicon.png b/bibletime/pics/22x22/hi22-action-bt_lexicon.png new file mode 100644 index 0000000..437cb50 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_lexicon.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_lexicon_add.png b/bibletime/pics/22x22/hi22-action-bt_lexicon_add.png new file mode 100644 index 0000000..924ea64 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_lexicon_add.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_lexicon_locked.png b/bibletime/pics/22x22/hi22-action-bt_lexicon_locked.png new file mode 100644 index 0000000..0b3fa30 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_lexicon_locked.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_parallel.png b/bibletime/pics/22x22/hi22-action-bt_parallel.png new file mode 100644 index 0000000..b1d3ea1 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_parallel.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_startconfig.png b/bibletime/pics/22x22/hi22-action-bt_startconfig.png new file mode 100644 index 0000000..6f4b900 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_startconfig.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_swordconfig.png b/bibletime/pics/22x22/hi22-action-bt_swordconfig.png new file mode 100644 index 0000000..4c87bb5 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_swordconfig.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_sync.png b/bibletime/pics/22x22/hi22-action-bt_sync.png new file mode 100644 index 0000000..71f6df7 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_sync.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_tile.png b/bibletime/pics/22x22/hi22-action-bt_tile.png new file mode 100644 index 0000000..01d406d Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_tile.png differ diff --git a/bibletime/pics/22x22/hi22-action-bt_tile_auto.png b/bibletime/pics/22x22/hi22-action-bt_tile_auto.png new file mode 100644 index 0000000..e826540 Binary files /dev/null and b/bibletime/pics/22x22/hi22-action-bt_tile_auto.png differ diff --git a/bibletime/pics/22x22/hi22-app-bibletime.png b/bibletime/pics/22x22/hi22-app-bibletime.png new file mode 100644 index 0000000..acf2585 Binary files /dev/null and b/bibletime/pics/22x22/hi22-app-bibletime.png differ diff --git a/bibletime/pics/32x32/Makefile.am b/bibletime/pics/32x32/Makefile.am new file mode 100644 index 0000000..14d0802 --- /dev/null +++ b/bibletime/pics/32x32/Makefile.am @@ -0,0 +1,7 @@ +# This Makefile.am was automatically generated by running "perl bibletime/pics/gen_am_pics.pl" +# Please do not edit this file but rather run the script to update + + +EXTRA_DIST = hi32-action-bt_bible.png hi32-action-bt_bible_add.png hi32-action-bt_bible_locked.png hi32-action-bt_book.png hi32-action-bt_book_add.png hi32-action-bt_book_locked.png hi32-action-bt_cascade.png hi32-action-bt_cascade_auto.png hi32-action-bt_commentary.png hi32-action-bt_commentary_add.png hi32-action-bt_commentary_locked.png hi32-action-bt_displayconfig.png hi32-action-bt_displaytranslit.png hi32-action-bt_lexicon.png hi32-action-bt_lexicon_add.png hi32-action-bt_lexicon_locked.png hi32-action-bt_startconfig.png hi32-action-bt_swordconfig.png hi32-action-bt_sync.png hi32-action-bt_tile.png hi32-action-bt_tile_auto.png hi32-app-bibletime.png hi32-action-bt_findstrongs.png + +KDE_ICON = bt_bible bt_bible_add bt_bible_locked bt_book bt_book_add bt_book_locked bt_cascade bt_cascade_auto bt_commentary bt_commentary_add bt_commentary_locked bt_displayconfig bt_displaytranslit bt_lexicon bt_lexicon_add bt_lexicon_locked bt_startconfig bt_swordconfig bt_sync bt_tile bt_tile_auto bibletime bt_findstrongs \ No newline at end of file diff --git a/bibletime/pics/32x32/Makefile.in b/bibletime/pics/32x32/Makefile.in new file mode 100644 index 0000000..c994426 --- /dev/null +++ b/bibletime/pics/32x32/Makefile.in @@ -0,0 +1,622 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ + +# This Makefile.am was automatically generated by running "perl bibletime/pics/gen_am_pics.pl" +# Please do not edit this file but rather run the script to update +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/pics/32x32 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +EXTRA_DIST = hi32-action-bt_bible.png hi32-action-bt_bible_add.png hi32-action-bt_bible_locked.png hi32-action-bt_book.png hi32-action-bt_book_add.png hi32-action-bt_book_locked.png hi32-action-bt_cascade.png hi32-action-bt_cascade_auto.png hi32-action-bt_commentary.png hi32-action-bt_commentary_add.png hi32-action-bt_commentary_locked.png hi32-action-bt_displayconfig.png hi32-action-bt_displaytranslit.png hi32-action-bt_lexicon.png hi32-action-bt_lexicon_add.png hi32-action-bt_lexicon_locked.png hi32-action-bt_startconfig.png hi32-action-bt_swordconfig.png hi32-action-bt_sync.png hi32-action-bt_tile.png hi32-action-bt_tile_auto.png hi32-app-bibletime.png hi32-action-bt_findstrongs.png +KDE_ICON = bt_bible bt_bible_add bt_bible_locked bt_book bt_book_add bt_book_locked bt_cascade bt_cascade_auto bt_commentary bt_commentary_add bt_commentary_locked bt_displayconfig bt_displaytranslit bt_lexicon bt_lexicon_add bt_lexicon_locked bt_startconfig bt_swordconfig bt_sync bt_tile bt_tile_auto bibletime bt_findstrongs +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/32x32/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/pics/32x32/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/32x32/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/pics/32x32/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/pics/32x32/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-kde-icons + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +#>- uninstall-am: +#>+ 1 +uninstall-am: uninstall-kde-icons + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + +# 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: + +#>+ 2 +KDE_DIST=Makefile.in Makefile.am + +#>+ 2 +docs-am: + +#>+ 52 +install-kde-icons: + $(mkinstalldirs) $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_bible.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_bible.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_bible_add.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_bible_add.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_bible_locked.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_bible_locked.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_book.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_book.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_book_add.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_book_add.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_book_locked.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_book_locked.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_cascade.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_cascade.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_cascade_auto.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_cascade_auto.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_commentary.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_commentary.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_commentary_add.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_commentary_add.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_commentary_locked.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_commentary_locked.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_displayconfig.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_displayconfig.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_displaytranslit.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_displaytranslit.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_findstrongs.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_findstrongs.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_lexicon.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_lexicon.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_lexicon_add.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_lexicon_add.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_lexicon_locked.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_lexicon_locked.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_startconfig.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_startconfig.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_swordconfig.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_swordconfig.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_sync.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_sync.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_tile.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_tile.png + $(INSTALL_DATA) $(srcdir)/hi32-action-bt_tile_auto.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_tile_auto.png + $(mkinstalldirs) $(DESTDIR)$(kde_icondir)/hicolor/32x32/apps + $(INSTALL_DATA) $(srcdir)/hi32-app-bibletime.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/apps/bibletime.png + +uninstall-kde-icons: + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_bible.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_bible_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_bible_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_book.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_book_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_book_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_cascade.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_cascade_auto.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_commentary.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_commentary_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_commentary_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_displayconfig.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_displaytranslit.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_findstrongs.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_lexicon.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_lexicon_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_lexicon_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_startconfig.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_swordconfig.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_sync.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_tile.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/actions/bt_tile_auto.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/apps/bibletime.png + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/32x32/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/pics/32x32/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/pics/32x32/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/pics/32x32/hi32-action-bt_bible.png b/bibletime/pics/32x32/hi32-action-bt_bible.png new file mode 100644 index 0000000..b949de7 Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_bible.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_bible_add.png b/bibletime/pics/32x32/hi32-action-bt_bible_add.png new file mode 100644 index 0000000..48c63e8 Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_bible_add.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_bible_locked.png b/bibletime/pics/32x32/hi32-action-bt_bible_locked.png new file mode 100644 index 0000000..259e08f Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_bible_locked.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_book.png b/bibletime/pics/32x32/hi32-action-bt_book.png new file mode 100644 index 0000000..84887db Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_book.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_book_add.png b/bibletime/pics/32x32/hi32-action-bt_book_add.png new file mode 100644 index 0000000..8d35be9 Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_book_add.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_book_locked.png b/bibletime/pics/32x32/hi32-action-bt_book_locked.png new file mode 100644 index 0000000..ce746b8 Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_book_locked.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_cascade.png b/bibletime/pics/32x32/hi32-action-bt_cascade.png new file mode 100644 index 0000000..070f5d1 Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_cascade.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_cascade_auto.png b/bibletime/pics/32x32/hi32-action-bt_cascade_auto.png new file mode 100644 index 0000000..4171ffc Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_cascade_auto.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_commentary.png b/bibletime/pics/32x32/hi32-action-bt_commentary.png new file mode 100644 index 0000000..fa29810 Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_commentary.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_commentary_add.png b/bibletime/pics/32x32/hi32-action-bt_commentary_add.png new file mode 100644 index 0000000..18b31a8 Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_commentary_add.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_commentary_locked.png b/bibletime/pics/32x32/hi32-action-bt_commentary_locked.png new file mode 100644 index 0000000..f615a88 Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_commentary_locked.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_displayconfig.png b/bibletime/pics/32x32/hi32-action-bt_displayconfig.png new file mode 100644 index 0000000..2478bf9 Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_displayconfig.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_displaytranslit.png b/bibletime/pics/32x32/hi32-action-bt_displaytranslit.png new file mode 100644 index 0000000..91f97a2 Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_displaytranslit.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_findstrongs.png b/bibletime/pics/32x32/hi32-action-bt_findstrongs.png new file mode 100644 index 0000000..ea7c769 Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_findstrongs.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_lexicon.png b/bibletime/pics/32x32/hi32-action-bt_lexicon.png new file mode 100644 index 0000000..0357308 Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_lexicon.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_lexicon_add.png b/bibletime/pics/32x32/hi32-action-bt_lexicon_add.png new file mode 100644 index 0000000..9c8ad16 Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_lexicon_add.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_lexicon_locked.png b/bibletime/pics/32x32/hi32-action-bt_lexicon_locked.png new file mode 100644 index 0000000..e239f7f Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_lexicon_locked.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_startconfig.png b/bibletime/pics/32x32/hi32-action-bt_startconfig.png new file mode 100644 index 0000000..c64200d Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_startconfig.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_swordconfig.png b/bibletime/pics/32x32/hi32-action-bt_swordconfig.png new file mode 100644 index 0000000..b8f3d30 Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_swordconfig.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_sync.png b/bibletime/pics/32x32/hi32-action-bt_sync.png new file mode 100644 index 0000000..25fdb0f Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_sync.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_tile.png b/bibletime/pics/32x32/hi32-action-bt_tile.png new file mode 100644 index 0000000..3cab67e Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_tile.png differ diff --git a/bibletime/pics/32x32/hi32-action-bt_tile_auto.png b/bibletime/pics/32x32/hi32-action-bt_tile_auto.png new file mode 100644 index 0000000..e92e26d Binary files /dev/null and b/bibletime/pics/32x32/hi32-action-bt_tile_auto.png differ diff --git a/bibletime/pics/32x32/hi32-app-bibletime.png b/bibletime/pics/32x32/hi32-app-bibletime.png new file mode 100644 index 0000000..7dcbc90 Binary files /dev/null and b/bibletime/pics/32x32/hi32-app-bibletime.png differ diff --git a/bibletime/pics/48x48/Makefile.am b/bibletime/pics/48x48/Makefile.am new file mode 100644 index 0000000..c9e723a --- /dev/null +++ b/bibletime/pics/48x48/Makefile.am @@ -0,0 +1,7 @@ +# This Makefile.am was automatically generated by running "perl bibletime/pics/gen_am_pics.pl" +# Please do not edit this file but rather run the script to update + + +EXTRA_DIST = hi48-action-bt_bible.png hi48-action-bt_bible_add.png hi48-action-bt_bible_locked.png hi48-action-bt_book.png hi48-action-bt_book_add.png hi48-action-bt_book_locked.png hi48-action-bt_cascade.png hi48-action-bt_cascade_auto.png hi48-action-bt_commentary.png hi48-action-bt_commentary_add.png hi48-action-bt_commentary_locked.png hi48-action-bt_displayconfig.png hi48-action-bt_displaytranslit.png hi48-action-bt_lexicon.png hi48-action-bt_lexicon_add.png hi48-action-bt_lexicon_locked.png hi48-action-bt_startconfig.png hi48-action-bt_swordconfig.png hi48-action-bt_sync.png hi48-action-bt_tile.png hi48-action-bt_tile_auto.png hi48-app-bibletime.png + +KDE_ICON = bt_bible bt_bible_add bt_bible_locked bt_book bt_book_add bt_book_locked bt_cascade bt_cascade_auto bt_commentary bt_commentary_add bt_commentary_locked bt_displayconfig bt_displaytranslit bt_lexicon bt_lexicon_add bt_lexicon_locked bt_startconfig bt_swordconfig bt_sync bt_tile bt_tile_auto bibletime \ No newline at end of file diff --git a/bibletime/pics/48x48/Makefile.in b/bibletime/pics/48x48/Makefile.in new file mode 100644 index 0000000..87b25fd --- /dev/null +++ b/bibletime/pics/48x48/Makefile.in @@ -0,0 +1,620 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ + +# This Makefile.am was automatically generated by running "perl bibletime/pics/gen_am_pics.pl" +# Please do not edit this file but rather run the script to update +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/pics/48x48 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +EXTRA_DIST = hi48-action-bt_bible.png hi48-action-bt_bible_add.png hi48-action-bt_bible_locked.png hi48-action-bt_book.png hi48-action-bt_book_add.png hi48-action-bt_book_locked.png hi48-action-bt_cascade.png hi48-action-bt_cascade_auto.png hi48-action-bt_commentary.png hi48-action-bt_commentary_add.png hi48-action-bt_commentary_locked.png hi48-action-bt_displayconfig.png hi48-action-bt_displaytranslit.png hi48-action-bt_lexicon.png hi48-action-bt_lexicon_add.png hi48-action-bt_lexicon_locked.png hi48-action-bt_startconfig.png hi48-action-bt_swordconfig.png hi48-action-bt_sync.png hi48-action-bt_tile.png hi48-action-bt_tile_auto.png hi48-app-bibletime.png +KDE_ICON = bt_bible bt_bible_add bt_bible_locked bt_book bt_book_add bt_book_locked bt_cascade bt_cascade_auto bt_commentary bt_commentary_add bt_commentary_locked bt_displayconfig bt_displaytranslit bt_lexicon bt_lexicon_add bt_lexicon_locked bt_startconfig bt_swordconfig bt_sync bt_tile bt_tile_auto bibletime +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/48x48/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/pics/48x48/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/48x48/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/pics/48x48/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/pics/48x48/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-kde-icons + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +#>- uninstall-am: +#>+ 1 +uninstall-am: uninstall-kde-icons + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + +# 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: + +#>+ 2 +KDE_DIST=Makefile.in Makefile.am + +#>+ 2 +docs-am: + +#>+ 50 +install-kde-icons: + $(mkinstalldirs) $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_bible.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_bible.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_bible_add.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_bible_add.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_bible_locked.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_bible_locked.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_book.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_book.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_book_add.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_book_add.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_book_locked.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_book_locked.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_cascade.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_cascade.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_cascade_auto.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_cascade_auto.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_commentary.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_commentary.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_commentary_add.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_commentary_add.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_commentary_locked.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_commentary_locked.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_displayconfig.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_displayconfig.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_displaytranslit.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_displaytranslit.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_lexicon.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_lexicon.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_lexicon_add.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_lexicon_add.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_lexicon_locked.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_lexicon_locked.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_startconfig.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_startconfig.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_swordconfig.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_swordconfig.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_sync.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_sync.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_tile.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_tile.png + $(INSTALL_DATA) $(srcdir)/hi48-action-bt_tile_auto.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_tile_auto.png + $(mkinstalldirs) $(DESTDIR)$(kde_icondir)/hicolor/48x48/apps + $(INSTALL_DATA) $(srcdir)/hi48-app-bibletime.png $(DESTDIR)$(kde_icondir)/hicolor/48x48/apps/bibletime.png + +uninstall-kde-icons: + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_bible.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_bible_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_bible_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_book.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_book_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_book_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_cascade.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_cascade_auto.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_commentary.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_commentary_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_commentary_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_displayconfig.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_displaytranslit.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_lexicon.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_lexicon_add.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_lexicon_locked.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_startconfig.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_swordconfig.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_sync.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_tile.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/actions/bt_tile_auto.png + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/48x48/apps/bibletime.png + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/48x48/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/pics/48x48/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/pics/48x48/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/pics/48x48/hi48-action-bt_bible.png b/bibletime/pics/48x48/hi48-action-bt_bible.png new file mode 100644 index 0000000..d813bd7 Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_bible.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_bible_add.png b/bibletime/pics/48x48/hi48-action-bt_bible_add.png new file mode 100644 index 0000000..c16456b Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_bible_add.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_bible_locked.png b/bibletime/pics/48x48/hi48-action-bt_bible_locked.png new file mode 100644 index 0000000..1333584 Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_bible_locked.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_book.png b/bibletime/pics/48x48/hi48-action-bt_book.png new file mode 100644 index 0000000..b3f5fb0 Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_book.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_book_add.png b/bibletime/pics/48x48/hi48-action-bt_book_add.png new file mode 100644 index 0000000..4fe4cd4 Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_book_add.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_book_locked.png b/bibletime/pics/48x48/hi48-action-bt_book_locked.png new file mode 100644 index 0000000..c76f2a0 Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_book_locked.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_cascade.png b/bibletime/pics/48x48/hi48-action-bt_cascade.png new file mode 100644 index 0000000..0ea1fe8 Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_cascade.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_cascade_auto.png b/bibletime/pics/48x48/hi48-action-bt_cascade_auto.png new file mode 100644 index 0000000..6dfc9f5 Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_cascade_auto.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_commentary.png b/bibletime/pics/48x48/hi48-action-bt_commentary.png new file mode 100644 index 0000000..966b0c6 Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_commentary.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_commentary_add.png b/bibletime/pics/48x48/hi48-action-bt_commentary_add.png new file mode 100644 index 0000000..3fb2cdd Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_commentary_add.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_commentary_locked.png b/bibletime/pics/48x48/hi48-action-bt_commentary_locked.png new file mode 100644 index 0000000..8dd23fb Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_commentary_locked.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_displayconfig.png b/bibletime/pics/48x48/hi48-action-bt_displayconfig.png new file mode 100644 index 0000000..adb2706 Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_displayconfig.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_displaytranslit.png b/bibletime/pics/48x48/hi48-action-bt_displaytranslit.png new file mode 100644 index 0000000..30384fd Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_displaytranslit.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_lexicon.png b/bibletime/pics/48x48/hi48-action-bt_lexicon.png new file mode 100644 index 0000000..623c564 Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_lexicon.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_lexicon_add.png b/bibletime/pics/48x48/hi48-action-bt_lexicon_add.png new file mode 100644 index 0000000..9d2cfaf Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_lexicon_add.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_lexicon_locked.png b/bibletime/pics/48x48/hi48-action-bt_lexicon_locked.png new file mode 100644 index 0000000..dbdafbe Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_lexicon_locked.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_startconfig.png b/bibletime/pics/48x48/hi48-action-bt_startconfig.png new file mode 100644 index 0000000..805bf8b Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_startconfig.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_swordconfig.png b/bibletime/pics/48x48/hi48-action-bt_swordconfig.png new file mode 100644 index 0000000..fb518ed Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_swordconfig.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_sync.png b/bibletime/pics/48x48/hi48-action-bt_sync.png new file mode 100644 index 0000000..3dcf17a Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_sync.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_tile.png b/bibletime/pics/48x48/hi48-action-bt_tile.png new file mode 100644 index 0000000..f49a7b4 Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_tile.png differ diff --git a/bibletime/pics/48x48/hi48-action-bt_tile_auto.png b/bibletime/pics/48x48/hi48-action-bt_tile_auto.png new file mode 100644 index 0000000..02436d9 Binary files /dev/null and b/bibletime/pics/48x48/hi48-action-bt_tile_auto.png differ diff --git a/bibletime/pics/48x48/hi48-app-bibletime.png b/bibletime/pics/48x48/hi48-app-bibletime.png new file mode 100644 index 0000000..768f3b9 Binary files /dev/null and b/bibletime/pics/48x48/hi48-app-bibletime.png differ diff --git a/bibletime/pics/64x64/Makefile.am b/bibletime/pics/64x64/Makefile.am new file mode 100644 index 0000000..02a3ff1 --- /dev/null +++ b/bibletime/pics/64x64/Makefile.am @@ -0,0 +1,7 @@ +# This Makefile.am was automatically generated by running "perl bibletime/pics/gen_am_pics.pl" +# Please do not edit this file but rather run the script to update + + +EXTRA_DIST = hi64-app-bibletime.png + +KDE_ICON = bibletime \ No newline at end of file diff --git a/bibletime/pics/64x64/Makefile.in b/bibletime/pics/64x64/Makefile.in new file mode 100644 index 0000000..16aebbe --- /dev/null +++ b/bibletime/pics/64x64/Makefile.in @@ -0,0 +1,577 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ + +# This Makefile.am was automatically generated by running "perl bibletime/pics/gen_am_pics.pl" +# Please do not edit this file but rather run the script to update +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/pics/64x64 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +EXTRA_DIST = hi64-app-bibletime.png +KDE_ICON = bibletime +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/64x64/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/pics/64x64/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/64x64/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/pics/64x64/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/pics/64x64/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-kde-icons + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +#>- uninstall-am: +#>+ 1 +uninstall-am: uninstall-kde-icons + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + +# 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: + +#>+ 2 +KDE_DIST=Makefile.in Makefile.am + +#>+ 2 +docs-am: + +#>+ 7 +install-kde-icons: + $(mkinstalldirs) $(DESTDIR)$(kde_icondir)/hicolor/64x64/apps + $(INSTALL_DATA) $(srcdir)/hi64-app-bibletime.png $(DESTDIR)$(kde_icondir)/hicolor/64x64/apps/bibletime.png + +uninstall-kde-icons: + -rm -f $(DESTDIR)$(kde_icondir)/hicolor/64x64/apps/bibletime.png + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/64x64/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/pics/64x64/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/pics/64x64/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/pics/64x64/hi64-app-bibletime.png b/bibletime/pics/64x64/hi64-app-bibletime.png new file mode 100644 index 0000000..05b859d Binary files /dev/null and b/bibletime/pics/64x64/hi64-app-bibletime.png differ diff --git a/bibletime/pics/Makefile.am b/bibletime/pics/Makefile.am new file mode 100644 index 0000000..2e5a25a --- /dev/null +++ b/bibletime/pics/Makefile.am @@ -0,0 +1,29 @@ +KDE_OPTIONS = noautodist + +SUBDIRS = \ +16x16 \ +22x22 \ +32x32 \ +48x48 \ +64x64 \ +. + +BIBLETIME_PICS = \ +startuplogo.png + +EXTRA_DIST = $(BIBLETIME_PICS) + +install-data-local: + $(mkinstalldirs) $(DESTDIR)$(kde_datadir)/bibletime/pics/ + chmod 755 $(DESTDIR)$(kde_datadir)/bibletime/pics/; + @for file in $(BIBLETIME_PICS); do \ + echo Installing $$file; \ + $(INSTALL_DATA) $(srcdir)/$$file $(DESTDIR)$(kde_datadir)/bibletime/pics/$$file; \ + chmod 644 $(DESTDIR)$(kde_datadir)/bibletime/pics/$$file; \ + done + +uninstall-local: + @for file in $(BIBLETIME_PICS); do \ + echo Removing $(DESTDIR)$(kde_datadir)/bibletime/pics/$$file; \ + rm -f $(DESTDIR)$(kde_datadir)/bibletime/pics/$$file; \ + done diff --git a/bibletime/pics/Makefile.in b/bibletime/pics/Makefile.in new file mode 100644 index 0000000..213ce8d --- /dev/null +++ b/bibletime/pics/Makefile.in @@ -0,0 +1,749 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/pics +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_OPTIONS = noautodist +SUBDIRS = \ +16x16 \ +22x22 \ +32x32 \ +48x48 \ +64x64 \ +. + +BIBLETIME_PICS = \ +startuplogo.png + +EXTRA_DIST = $(BIBLETIME_PICS) +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/pics/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/pics/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/pics/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + 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_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-data-local install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am uninstall-local + + +install-data-local: + $(mkinstalldirs) $(DESTDIR)$(kde_datadir)/bibletime/pics/ + chmod 755 $(DESTDIR)$(kde_datadir)/bibletime/pics/; + @for file in $(BIBLETIME_PICS); do \ + echo Installing $$file; \ + $(INSTALL_DATA) $(srcdir)/$$file $(DESTDIR)$(kde_datadir)/bibletime/pics/$$file; \ + chmod 644 $(DESTDIR)$(kde_datadir)/bibletime/pics/$$file; \ + done + +uninstall-local: + @for file in $(BIBLETIME_PICS); do \ + echo Removing $(DESTDIR)$(kde_datadir)/bibletime/pics/$$file; \ + rm -f $(DESTDIR)$(kde_datadir)/bibletime/pics/$$file; \ + done +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/pics/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/pics/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/pics/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/pics/startuplogo.png b/bibletime/pics/startuplogo.png new file mode 100644 index 0000000..ff7db20 Binary files /dev/null and b/bibletime/pics/startuplogo.png differ diff --git a/bibletime/util/Makefile.am b/bibletime/util/Makefile.am new file mode 100644 index 0000000..7a4ba4e --- /dev/null +++ b/bibletime/util/Makefile.am @@ -0,0 +1,16 @@ +INCLUDES = $(all_includes) +libutil_a_METASOURCES = AUTO +noinst_LIBRARIES = libutil.a + +libutil_a_SOURCES = cpointers.cpp cresmgr.cpp ctoolclass.cpp directoryutil.cpp + +all_headers = \ +scoped_resource.h \ +cpointers.h \ +cresmgr.h \ +ctoolclass.h \ +autoptrvector.h + +EXTRA_DIST = $(libutil_a_SOURCES) $(all_headers) + +noinst_HEADERS = directoryutil.h diff --git a/bibletime/util/Makefile.in b/bibletime/util/Makefile.in new file mode 100644 index 0000000..e1bed5e --- /dev/null +++ b/bibletime/util/Makefile.in @@ -0,0 +1,720 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/util +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) +ARFLAGS = cru +libutil_a_AR = $(AR) $(ARFLAGS) +libutil_a_LIBADD = +am_libutil_a_OBJECTS = cpointers.$(OBJEXT) cresmgr.$(OBJEXT) \ + ctoolclass.$(OBJEXT) directoryutil.$(OBJEXT) +#>- libutil_a_OBJECTS = $(am_libutil_a_OBJECTS) +#>+ 5 +libutil_a_final_OBJECTS = libutil_a.all_cpp.o +libutil_a_nofinal_OBJECTS = cpointers.$(OBJEXT) cresmgr.$(OBJEXT) \ + ctoolclass.$(OBJEXT) directoryutil.$(OBJEXT) +@KDE_USE_FINAL_FALSE@libutil_a_OBJECTS = $(libutil_a_nofinal_OBJECTS) +@KDE_USE_FINAL_TRUE@libutil_a_OBJECTS = $(libutil_a_final_OBJECTS) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/admin/depcomp +am__depfiles_maybe = depfiles +#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 2 +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 3 +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +CXXLD = $(CXX) +#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ +#>- $(LDFLAGS) -o $@ +#>+ 3 +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libutil_a_SOURCES) +DIST_SOURCES = $(libutil_a_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +INCLUDES = $(all_includes) +#>- libutil_a_METASOURCES = AUTO +noinst_LIBRARIES = libutil.a +libutil_a_SOURCES = cpointers.cpp cresmgr.cpp ctoolclass.cpp directoryutil.cpp +all_headers = \ +scoped_resource.h \ +cpointers.h \ +cresmgr.h \ +ctoolclass.h \ +autoptrvector.h + +EXTRA_DIST = $(libutil_a_SOURCES) $(all_headers) +noinst_HEADERS = directoryutil.h +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/util/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/util/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/util/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/util/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/util/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +libutil.a: $(libutil_a_OBJECTS) $(libutil_a_DEPENDENCIES) + -rm -f libutil.a + $(libutil_a_AR) libutil.a $(libutil_a_OBJECTS) $(libutil_a_LIBADD) + $(RANLIB) libutil.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpointers.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cresmgr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctoolclass.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/directoryutil.Po@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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 $(LIBRARIES) $(HEADERS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ +#>- mostlyclean-am +#>+ 2 +clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am + +# 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: + +#>+ 2 +KDE_DIST=cpointers.h scoped_resource.h ctoolclass.h autoptrvector.h Makefile.in cresmgr.h Makefile.am + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/util/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/util/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/util/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 11 +libutil_a.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/cpointers.cpp $(srcdir)/cresmgr.cpp $(srcdir)/ctoolclass.cpp $(srcdir)/directoryutil.cpp + @echo 'creating libutil_a.all_cpp.cpp ...'; \ + rm -f libutil_a.all_cpp.files libutil_a.all_cpp.final; \ + echo "#define KDE_USE_FINAL 1" >> libutil_a.all_cpp.final; \ + for file in cpointers.cpp cresmgr.cpp ctoolclass.cpp directoryutil.cpp ; do \ + echo "#include \"$$file\"" >> libutil_a.all_cpp.files; \ + test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libutil_a.all_cpp.final; \ + done; \ + cat libutil_a.all_cpp.final libutil_a.all_cpp.files > libutil_a.all_cpp.cpp; \ + rm -f libutil_a.all_cpp.final libutil_a.all_cpp.files + +#>+ 3 +clean-final: + -rm -f libutil_a.all_cpp.cpp + +#>+ 3 +final: + $(MAKE) libutil_a_OBJECTS="$(libutil_a_final_OBJECTS)" all-am + +#>+ 3 +final-install: + $(MAKE) libutil_a_OBJECTS="$(libutil_a_final_OBJECTS)" install-am + +#>+ 3 +no-final: + $(MAKE) libutil_a_OBJECTS="$(libutil_a_nofinal_OBJECTS)" all-am + +#>+ 3 +no-final-install: + $(MAKE) libutil_a_OBJECTS="$(libutil_a_nofinal_OBJECTS)" install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/util/autoptrvector.h b/bibletime/util/autoptrvector.h new file mode 100644 index 0000000..4e8f82b --- /dev/null +++ b/bibletime/util/autoptrvector.h @@ -0,0 +1,176 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef UTILAUTOPTRVECTOR_H +#define UTILAUTOPTRVECTOR_H + +namespace util { + + /** + * This class provides a simple vector which works on pointers. + * All pointer are deeted at destruction time of an AutoPtrVector object. + * This vector uses a single linked list to store the pointers. + * This class provides the methods first(), current() and next() for navigation. + * + * @author Joachim Ansorg + */ + template + class AutoPtrVector { +public: + /** Default constructor. + * The default constructor. This creates an empty vector. + */ +explicit AutoPtrVector() : m_first(0), m_current(0), m_end(0) {} + ; + + /** Copy constructor using deep copy. + * This does a deep copy of the passed AutoPtrVector. + * @param old The vector to be copied. + */ +AutoPtrVector(AutoPtrVector& old) : m_first(0), m_current(0), m_end(0) { + this->operator=(old); //share the code with the copy operator + /* if (this != &old) { + Item* last = m_first; + Item* prev = 0; + + for (T* c = old.first(); c; c = old.next()) { + last = new Item( new T(*c) ); + + if (prev) { + prev->next = last; + } + + prev = last; + } + }*/ + }; + + AutoPtrVector& operator=(AutoPtrVector& old) { + //at first delete all items, then copy old into new items + clear(); + + if (this != &old) { //only copy if the two pointers are different + Item* last = m_first; + Item* prev = 0; + + for (T* c = old.first(); c; c = old.next()) { + last = new Item( new T(*c) ); + + if (prev) { + prev->next = last; + } + + prev = last; + } + } + + return *this; + }; + + /** Destructor. + * Deletes all the objects which belong to the stored pointers + * @see clear() + */ + virtual ~AutoPtrVector() { + clear(); + }; + + + /** Append an item + * + * Append a new item to this vector. + */ + inline void append(T* type) { + if (!m_first) { //handle the first item special + m_first = new Item( type ); + m_end = m_first; + } + else { + m_end->next = new Item( type ); + m_end = m_end->next; + } + }; + + /** The first item of this vector. + * + * @return The first item of this vector. Null of there are no items. + */ + inline T* const first() const { + m_current = m_first; + return m_current ? m_current->value : 0; + }; + + /** The current item. + * + * @return The current item reached by first() and next() calls + */ + inline T* const current() const { + return m_current->value; + }; + + /** Moves to the next item. + * + * @return Moves to the next item + */ + inline T* const next() const { + if (m_current && m_current->next) { + m_current = m_current->next; + return m_current->value; + } + + return 0; + }; + + /** Returns if this conainer is empty. + * + * @return If this vector has items or not. True if there are no items, false if there are any + */ + inline const bool isEmpty() const { + return bool(m_first == 0); + }; + + /** Clear this vector. + * This deletes all objects which belong to the stored pointers. + */ + inline void clear() { + Item* i = m_first; + Item* current = 0; + + while (i) { + delete i->value; //delete the object which belongs to the stored pointer + + current = i; + i = current->next; + delete current; //delete the current item after we got the next list item + } + }; + +private: + /** + * Our internal helper class to store the pointers in a linked list. + */ + struct Item { +Item(T* t = 0) : value(t), next(0) {} + ; + + T* value; + Item* next; + }; + + mutable Item* m_first; + mutable Item* m_current; + mutable Item* m_end; + }; + +} //end of namespace + + +#endif diff --git a/bibletime/util/cpointers.cpp b/bibletime/util/cpointers.cpp new file mode 100644 index 0000000..f795bba --- /dev/null +++ b/bibletime/util/cpointers.cpp @@ -0,0 +1,58 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#include "cpointers.h" + +//BibleTime's backend +#include "backend/cswordbackend.h" +#include "backend/cdisplaytemplatemgr.h" + +//BibleTime's frontend +#include "frontend/cprinter.h" + + +CPointers::PointerCache m_pointerCache; + +void CPointers::setBackend(CSwordBackend* const backend) { + Q_ASSERT( m_pointerCache.backend == 0); + CPointers::deleteBackend(); + m_pointerCache.backend = backend; +} + +void CPointers::setInfoDisplay(InfoDisplay::CInfoDisplay* const infoDisplay) { + Q_ASSERT( m_pointerCache.infoDisplay == 0); + m_pointerCache.infoDisplay = infoDisplay; +} + +void CPointers::deleteBackend() { + delete m_pointerCache.backend; + m_pointerCache.backend = 0; +} + +void CPointers::deleteLanguageMgr() { + delete m_pointerCache.langMgr; + m_pointerCache.langMgr = 0; +} + +void CPointers::deleteDisplayTemplateMgr() { + delete m_pointerCache.displayTemplateMgr; + m_pointerCache.displayTemplateMgr = 0; +} + +/** Returns a pointer to the printer object. */ +CDisplayTemplateMgr* const CPointers::displayTemplateManager() { + if (!m_pointerCache.displayTemplateMgr) { + m_pointerCache.displayTemplateMgr = new CDisplayTemplateMgr(); + } + + return m_pointerCache.displayTemplateMgr; +} + diff --git a/bibletime/util/cpointers.h b/bibletime/util/cpointers.h new file mode 100644 index 0000000..822002f --- /dev/null +++ b/bibletime/util/cpointers.h @@ -0,0 +1,120 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CPOINTERS_H +#define CPOINTERS_H + +//BibleTime includes +#include "backend/clanguagemgr.h" + +#include "frontend/cinfodisplay.h" + +class CSwordBackend; +class CLanguageMgr; +class CDisplayTemplateMgr; + +namespace InfoDisplay { + class CInfoDisplay; +} + +/** Holds the pointers to important classes like modules, backend etc. + * @author The BibleTime team + */ +class CPointers { +protected: + friend class BibleTime; //BibleTime may initialize this object + friend class BibleTimeApp; //BibleTimeApp may initialize this object + friend int main(int argc, char* argv[]); //main may set the printer + + //Empty virtuaual destructor + virtual ~CPointers() {} + + /** Set the backend. + * @param backend Pointer to the new application-wide Sword backend + */ + static void setBackend(CSwordBackend* const backend); + /** Set the info display. + * @param iDisplay The pointer to the new info display. + */ + static void setInfoDisplay(InfoDisplay::CInfoDisplay* const iDisplay); + + /** Delete the backend. Should be called by BibleTimeApp, + * because the backend should be deleted as late as possible. + */ + static void deleteBackend(); + /** Delete the printer. Should be called by BibleTimeApp, + * because the printer should be deleted as late as possible. + */ + static void deletePrinter(); + /** Delete the language manager. Should be called by BibleTimeApp, + * because the language manager should be deleted as late as possible. + */ + static void deleteLanguageMgr(); + /** Delete the display template manager. Should be called by BibleTimeApp, + * because the template manager should be deleted as late as possible. + */ + static void deleteDisplayTemplateMgr(); + +public: // Public methods + /** Returns a pointer to the backend + * @return The backend pointer. + */ + inline static CSwordBackend* const backend(); + /** Returns a pointer to the language manager + * @return The language manager + */ + inline static CLanguageMgr* const languageMgr(); + /** Returns a pointer to the info display. + * @return The backend pointer. + */ + inline static InfoDisplay::CInfoDisplay* const infoDisplay(); + /** Returns a pointer to the application's display template manager + * @return The backend pointer. + */ + static CDisplayTemplateMgr* const displayTemplateManager(); + + struct PointerCache { + PointerCache() { + backend = 0; + langMgr = 0; + infoDisplay = 0; + displayTemplateMgr = 0; + }; + + CSwordBackend* backend; + CLanguageMgr* langMgr; + InfoDisplay::CInfoDisplay* infoDisplay; + CDisplayTemplateMgr* displayTemplateMgr; + }; +}; + +extern CPointers::PointerCache m_pointerCache; + +/** Returns a pointer to the backend ... */ +inline CSwordBackend* const CPointers::backend() { + return m_pointerCache.backend; +} + +/** Returns a pointer to the backend ... */ +inline CLanguageMgr* const CPointers::languageMgr() { + if (!m_pointerCache.langMgr) { + m_pointerCache.langMgr = new CLanguageMgr(); + } + return m_pointerCache.langMgr; +} + +/** Returns a pointer to the printer object. */ +inline InfoDisplay::CInfoDisplay* const CPointers::infoDisplay() { + return m_pointerCache.infoDisplay; +} + + +#endif diff --git a/bibletime/util/cresmgr.cpp b/bibletime/util/cresmgr.cpp new file mode 100644 index 0000000..8defb77 --- /dev/null +++ b/bibletime/util/cresmgr.cpp @@ -0,0 +1,1198 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//own includes +#include "cresmgr.h" + +#include "backend/cswordbackend.h" + +//KDE includes +#include +#include + +namespace CResMgr { + namespace modules { + namespace bible { + const QString icon_unlocked = "bt_bible"; + const QString icon_locked = "bt_bible_locked"; + const QString icon_add = "bt_bible_add"; + } + namespace commentary { + const QString icon_unlocked = "bt_commentary"; + const QString icon_locked = "bt_commentary_locked"; + const QString icon_add = "bt_commentary_add"; + } + namespace lexicon { + const QString icon_unlocked = "bt_lexicon"; + const QString icon_locked = "bt_lexicon_locked"; + const QString icon_add = "bt_lexicon_add"; + } + namespace book { + const QString icon_unlocked = "bt_book"; + const QString icon_locked = "bt_book_locked"; + const QString icon_add = "bt_book_add"; + } + } + + namespace mainMenu { //Main menu + namespace file { //Main menu->File + namespace print { //a standard action + QString tooltip; + + } + namespace quit { //a standard action + QString tooltip; + + } + } + + namespace view { //Main menu->View + namespace showMainIndex { + QString tooltip; + + const QString icon = "view_sidetree"; + const KShortcut accel = Qt::Key_F9; + const char* actionName = "viewMainIndex_action"; + } + namespace showInfoDisplay { + QString tooltip; + + const QString icon = "view_sidetree"; + const KShortcut accel = Qt::Key_F8; + const char* actionName = "viewInfoDisplay_action"; + } + namespace showToolBar { //a standard action + QString tooltip; + + } + } + + namespace mainIndex { //Main menu->Settings + namespace search { + QString tooltip; + + const QString icon = "find"; + const KShortcut accel = Qt::CTRL + Qt::Key_O; + const char* actionName = "mainindex_search_action"; + } + namespace searchdefaultbible { + QString tooltip; + + const QString icon = "find"; + const KShortcut accel = Qt::CTRL + Qt::ALT + Qt::Key_F; + const char* actionName = "mainindex_searchdefaultbible_action"; + } + } + + namespace window { //Main menu->Window + namespace loadProfile { + QString tooltip; + + const QString icon = "view_sidetree"; + const char* actionName = "windowLoadProfile_action"; + } + namespace saveProfile { + QString tooltip; + + const QString icon = "view_sidetree"; + const char* actionName = "windowSaveProfile_action"; + } + namespace saveToNewProfile { + QString tooltip; + + const QString icon = "view_sidetree"; + const KShortcut accel = Qt::CTRL + Qt::ALT + Qt::Key_S; + const char* actionName = "windowSaveToNewProfile_action"; + } + namespace deleteProfile { + QString tooltip; + + const QString icon = "view_sidetree"; + const char* actionName = "windowDeleteProfile_action"; + } + namespace showFullscreen { + QString tooltip; + + const QString icon = "window_fullscreen"; + const KShortcut accel = Qt::CTRL + Qt::SHIFT + Qt::Key_F; + const char* actionName = "windowFullscreen_action"; + } + namespace arrangementMode { + QString tooltip; + + const QString icon = "bt_cascade_auto"; + const KShortcut accel = KKeySequence(); + const char* actionName = "windowArrangementMode_action"; + + namespace manual { + QString tooltip; + + const QString icon = "bt_tile"; + const KShortcut accel = Qt::CTRL + Qt::ALT + Qt::Key_M; + const char* actionName = "windowArrangementManual_action"; + } + namespace autoTileHorizontal { + QString tooltip; + + const QString icon = "bt_tile_auto"; + const KShortcut accel = Qt::CTRL + Qt::ALT + Qt::Key_H; + const char* actionName = "windowAutoTileHorizontal_action"; + } + namespace autoTileVertical { + QString tooltip; + + const QString icon = "bt_tile_auto"; + const KShortcut accel = Qt::CTRL + Qt::ALT + Qt::Key_G; + const char* actionName = "windowAutoTileVertical_action"; + } + namespace autoCascade { + QString tooltip; + + const QString icon = "bt_cascade_auto"; + const KShortcut accel = Qt::CTRL + Qt::ALT + Qt::Key_J; + const char* actionName = "windowAutoCascade_action"; + } + } + namespace tileHorizontal { + QString tooltip; + + const QString icon = "bt_tile"; + const KShortcut accel = Qt::CTRL + Qt::Key_H; + const char* actionName = "windowTileHorizontal_action"; + } + namespace tileVertical { + QString tooltip; + + const QString icon = "bt_tile"; + const KShortcut accel = Qt::CTRL + Qt::Key_G; + const char* actionName = "windowTileVertical_action"; + } + namespace cascade { + QString tooltip; + + const QString icon = "bt_cascade"; + const KShortcut accel = Qt::CTRL + Qt::Key_J; + const char* actionName = "windowCascade_action"; + } + namespace closeAll { + QString tooltip; + + const QString icon = "fileclose"; + const KShortcut accel = Qt::CTRL + Qt::ALT + Qt::Key_W; + const char* actionName = "windowCloseAll_action"; + } + } + + namespace settings { //Main menu->Settings + namespace editToolBar { // available as KStdAction + QString tooltip; + + } + namespace optionsDialog { // available as KStdAction + QString tooltip; + + } + namespace swordSetupDialog { + QString tooltip; + + const QString icon = "bt_swordconfig"; + const KShortcut accel = Qt::Key_F4; + const char* actionName = "options_sword_setup"; + } + + } + + namespace help { //Main menu->Help + namespace handbook { + QString tooltip; + + const QString icon = "contents"; + const KShortcut accel = Qt::Key_F1; + const char* actionName = "helpHandbook_action"; + } + namespace bibleStudyHowTo { + QString tooltip; + + const QString icon = "contents"; + const KShortcut accel = Qt::Key_F2; + const char* actionName = "helpHowTo_action"; + } + namespace bugreport { // available as KStdAction + QString tooltip; + + } + namespace dailyTip { + QString tooltip; + + const QString icon = "idea"; + const KShortcut accel = Qt::Key_F3; + const char* actionName = "helpDailyTip_action"; + } + namespace aboutBibleTime { // available as KStdAction + QString tooltip; + + } + namespace aboutKDE { // available as KStdAction + QString tooltip; + + } + } + } //end of main menu + + namespace searchdialog { + const QString icon = "find"; + + namespace searchButton { + QString tooltip; + + } + namespace cancelSearchButton { + QString tooltip; + + } + + namespace options { + namespace moduleChooserButton { + QString tooltip; + + } + namespace searchedText { + QString tooltip; + + } + namespace searchType { + namespace multipleWords_and { + QString tooltip; + + } + namespace multipleWords_or { + QString tooltip; + + } + namespace exactMatch { + QString tooltip; + + } + namespace regExp { + QString tooltip; + + } + } + + namespace searchOptions { + namespace caseSensitive { + QString tooltip; + + } + } + namespace chooseScope { + QString tooltip; + + } + namespace scopeEditor { + namespace rangeList { + QString tooltip; + + } + namespace nameEdit { + QString tooltip; + + } + namespace editRange { + QString tooltip; + + } + namespace parsedResult { + QString tooltip; + + } + namespace addNewRange { + QString tooltip; + + } + namespace deleteCurrentRange { + QString tooltip; + + } + + } + } + namespace result { + namespace moduleList { + QString tooltip; + + + namespace copyMenu { + const QString icon = "editcopy"; + } + namespace saveMenu { + const QString icon = "filesave"; + } + namespace printMenu { + const QString icon = "fileprint"; + } + } + namespace foundItems { + QString tooltip; + + + namespace copyMenu { + const QString icon = "editcopy"; + } + namespace saveMenu { + const QString icon = "filesave"; + } + namespace printMenu { + const QString icon = "fileprint"; + } + } + namespace textPreview { + QString tooltip; + + } + } + } + + namespace workspace {} + + namespace displaywindows { +/* namespace transliteration { + const QString icon = "bt_displaytranslit"; + }*/ + namespace displaySettings { + const QString icon = "bt_displayconfig"; + } + + namespace general { + namespace scrollButton { + QString tooltip; + } + + namespace search { + QString tooltip; + + const QString icon = "find"; + const KShortcut accel = Qt::CTRL + Qt::Key_L; + const char* actionName = "window_search_action"; + } + + namespace backInHistory { + QString tooltip; + + const QString icon = "previous"; + const KShortcut accel = Qt::ALT + Qt::Key_Left; + const char* actionName = "window_history_back_action"; + } + namespace forwardInHistory { + QString tooltip; + + const QString icon = "next"; + const KShortcut accel = Qt::ALT + Qt::Key_Right; + const char* actionName = "window_history_forward_action"; + } + namespace findStrongs { + QString tooltip; + + const QString icon = "bt_findstrongs"; + const KShortcut accel = KShortcut(0); + const char* actionName = "window_find_strongs_action"; + } + + } + namespace bibleWindow { + namespace bookList { + QString tooltip; + + } + namespace nextBook { + QString tooltip; + + const KShortcut accel = Qt::CTRL + Qt::Key_Y; + } + namespace previousBook { + QString tooltip; + + const KShortcut accel = Qt::CTRL + Qt::SHIFT + Qt::Key_Y; + } + + namespace chapterList { + QString tooltip; + } + namespace nextChapter { + QString tooltip; + const KShortcut accel = Qt::CTRL + Qt::Key_X; + } + namespace previousChapter { + QString tooltip; + const KShortcut accel = Qt::CTRL + Qt::SHIFT + Qt::Key_X; + } + namespace verseList { + QString tooltip; + } + namespace nextVerse { + QString tooltip; + const KShortcut accel = Qt::CTRL + Qt::Key_V; + } + namespace previousVerse { + QString tooltip; + const KShortcut accel = Qt::CTRL + Qt::SHIFT + Qt::Key_V; + } + + namespace copyMenu { + const QString icon = "editcopy"; + } + namespace saveMenu { + const QString icon = "filesave"; + } + namespace printMenu { + const QString icon = "fileprint"; + } + } + namespace commentaryWindow { + namespace syncWindow { + QString tooltip; + const QString icon = "bt_sync"; + const KShortcut accel = KKeySequence(); + const char* actionName = "commentary_syncWindow"; + } + } + namespace lexiconWindow { + namespace entryList { + QString tooltip; + } + namespace nextEntry { + QString tooltip; + const KShortcut accel = Qt::CTRL + Qt::Key_V; + } + namespace previousEntry { + QString tooltip; + const KShortcut accel = Qt::CTRL + Qt::SHIFT + Qt::Key_V; + } + + namespace copyMenu { + const QString icon = "editcopy"; + } + namespace saveMenu { + const QString icon = "filesave"; + } + namespace printMenu { + const QString icon = "fileprint"; + } + } + namespace bookWindow { + namespace toggleTree { + const QString icon = "view_sidetree"; + const KShortcut accel = KKeySequence(); + } + } + + namespace writeWindow { + namespace saveText { + QString tooltip; + + const QString icon = "filesave"; + const KShortcut accel = KKeySequence(); + const char* actionName = "writeWindow_saveText"; + } + namespace restoreText { + QString tooltip; + + const QString icon = "undo"; + const KShortcut accel = KKeySequence(); + const char* actionName = "writeWindow_restoreText"; + } + namespace deleteEntry { + QString tooltip; + + const QString icon = "editdelete"; + const KShortcut accel = KKeySequence(); + const char* actionName = "writeWindow_deleteEntry"; + } + + //formatting buttons + namespace boldText { + QString tooltip; + + const QString icon = "text_bold"; + const KShortcut accel = KKeySequence(); + const char* actionName = "writeWindow_boldText"; + } + namespace italicText { + QString tooltip; + + const QString icon = "text_italic"; + const KShortcut accel = KKeySequence(); + const char* actionName = "writeWindow_italicText"; + } + namespace underlinedText { + QString tooltip; + + const QString icon = "text_under"; + const KShortcut accel = KKeySequence(); + const char* actionName = "writeWindow_underlineText"; + } + + namespace alignLeft { + QString tooltip; + + const QString icon = "text_left"; + const KShortcut accel = KKeySequence(); + const char* actionName = "writeWindow_alignLeft"; + } + namespace alignCenter { + QString tooltip; + + const QString icon = "text_center"; + const KShortcut accel = KKeySequence(); + const char* actionName = "writeWindow_alignCenter"; + } + namespace alignRight { + QString tooltip; + + const QString icon = "rightjust"; + const KShortcut accel = KKeySequence(); + const char* actionName = "writeWindow_alignRight"; + } + namespace alignJustify { + QString tooltip; + + const QString icon = "text_block"; + const KShortcut accel = KKeySequence(); + const char* actionName = "writeWindow_alignJustify"; + } + + namespace fontFamily { + QString tooltip; + + const KShortcut accel = KKeySequence(); + const char* actionName = "writeWindow_fontFamily"; + } + namespace fontSize { + QString tooltip; + + const KShortcut accel = KKeySequence(); + const char* actionName = "writeWindow_fontSize"; + } + namespace fontColor { + QString tooltip; + } + } + } + + namespace settings { + namespace startup { + const QString icon = "bt_startconfig"; + namespace dailyTip { + QString tooltip; + } + namespace showLogo { + QString tooltip; + } + namespace restoreWorkingArea { + QString tooltip; + } + } + namespace fonts { + const QString icon = "fonts"; + + namespace typeChooser { + QString tooltip; + } + } + namespace profiles { + const QString icon = "view_sidetree"; + + namespace list { + QString tooltip; + } + namespace createNew { + QString tooltip; + } + namespace deleteCurrent { + QString tooltip; + } + namespace renameCurrent { + QString tooltip; + } + } + namespace sword { + const QString icon = "bt_swordconfig"; + + namespace general { + namespace language { + QString tooltip; + } + } + namespace modules { + namespace bible { + QString tooltip; + } + namespace commentary { + QString tooltip; + } + namespace lexicon { + QString tooltip; + + } + namespace dailyDevotional { + QString tooltip; + } + namespace hebrewStrongs { + QString tooltip; + } + namespace greekStrongs { + QString tooltip; + } + namespace hebrewMorph { + QString tooltip; + } + namespace greekMorph { + QString tooltip; + } + } + } + namespace keys { + const QString icon = "key_bindings"; + } + } + + namespace mainIndex { //Main menu->Settings + namespace search { + QString tooltip; + + const QString icon = "find"; + const KShortcut accel = Qt::CTRL + Qt::ALT + Qt::Key_M; + const char* actionName = "GMsearch_action"; + } + namespace newFolder { + const QString icon = "folder_new"; + } + namespace changeFolder { + const QString icon = "folder"; + } + namespace openedFolder { + const QString icon = "folder_open"; + } + namespace closedFolder { + const QString icon = "folder"; + } + + namespace bookmark { + const QString icon = "bookmark"; + } + namespace changeBookmark { + const QString icon = "bookmark"; + } + namespace importBookmarks { + const QString icon = "bookmark"; + } + namespace exportBookmarks { + const QString icon = "bookmark"; + } + namespace printBookmarks { + const QString icon = "fileprint"; + } + namespace deleteItems { + const QString icon = "filedelete"; + } + + namespace editModuleMenu { + const QString icon = "pencil"; + } + namespace editModulePlain { + const QString icon = "pencil"; + } + namespace editModuleHTML { + const QString icon = "pencil"; + } + + namespace unlockModule { + const QString icon = "unlock"; + } + namespace aboutModule { + const QString icon = "info"; + } + } +} + + + +namespace CResMgr { + void init_i18n() { + using namespace CResMgr; + { + using namespace mainMenu; + { + using namespace file; + { + using namespace print; + tooltip = i18n ("Open the printer dialog of BibleTime, where you can edit the print queue, assign styles to the items and print them.") ; + } + { + using namespace quit; + tooltip = i18n ("Close BibleTime and save the settings.") ; + } + + { + using namespace view; + { + using namespace showMainIndex; + tooltip = i18n ("Show or hide the bookshelf.") ; + } + { + using namespace showToolBar; + tooltip = i18n ("Toggle the main toolbar view.") ; + } + } + + { + using namespace mainMenu::mainIndex; + { + using namespace search; + tooltip = i18n ("Open the search dialog to search in all works that are currently open.") ; + } + { + using namespace searchdefaultbible; + tooltip = i18n ("Open the search dialog to search in the standard Bible.") ; + } + }; + + { + using namespace window; + { + using namespace loadProfile; + tooltip = i18n ("Restore a saved BibleTime session.") ; + } + { + using namespace saveProfile; + tooltip = i18n ("Save current BibleTime session so that it can be reused later.") ; + } + { + using namespace saveToNewProfile; + tooltip = i18n ("Create and save a new session.") ; + } + { + using namespace deleteProfile; + tooltip = i18n ("Delete a BibleTime session.") ; + } + { + using namespace showFullscreen; + tooltip = i18n ("Toggle fullscreen mode of the main window.") ; + } + { + using namespace tileVertical; + tooltip = i18n ("Vertically tile the open windows.") ; + } + { + using namespace tileHorizontal; + tooltip = i18n ("Horizontally tile the open windows.") ; + } + { + using namespace cascade; + tooltip = i18n ("Cascade the open windows.") ; + } + { + { + using namespace arrangementMode; + tooltip = i18n ("Choose the way that is used to arrange the windows.") ; + } + { + using namespace arrangementMode::autoTileVertical; + tooltip = i18n ("Automatically tile the open windows vertically.") ; + } + { + using namespace arrangementMode::autoTileHorizontal; + tooltip = i18n ("Automatically tile the open windows horizontally.") ; + } + { + using namespace arrangementMode::autoCascade; + tooltip = i18n ("Automatically cascade the open windows.") ; + } + } + { + using namespace closeAll; + tooltip = i18n ("Close all open windows.") ; + } + } + + { + using namespace mainMenu::settings; + { + using namespace editToolBar; + tooltip = i18n ("Open BibleTime's toolbar editor.") ; + } + { + using namespace optionsDialog; + tooltip = i18n ("Open the dialog to set most of BibleTime's preferences.") ; + }; + { + using namespace swordSetupDialog; + tooltip = i18n ("Open the dialog to configure your bookshelf and install/update/remove works.") ; + } + + } + + { + using namespace help; + { + using namespace handbook; + tooltip = i18n ("Open BibleTime's handbook in the KDE helpbrowser.") ; + } + { + using namespace bibleStudyHowTo; + tooltip = i18n ("Open the Bible study HowTo included with BibleTime in the KDE helpbrowser.
This HowTo is an introduction on how to study the Bible in an efficient way.") ; + } + { + using namespace bugreport; + tooltip = i18n ("Send a bugreport to the developers of BibleTime.") ; + } + { + using namespace dailyTip; + tooltip = i18n ("Show a daily tip each time BibleTime starts.
The tips contain important Bible quotations and helpful tips for using BibleTime.") ; + } + { + using namespace aboutBibleTime; + tooltip = i18n ("Show detailed information about BibleTime.") ; + } + { + using namespace aboutKDE; + tooltip = i18n ("Show detailed information about the KDE project.") ; + } + } + } + } + + { + using namespace searchdialog; + { + using namespace searchButton; + tooltip = i18n ("Start to search the text in each of the chosen work(s).") ; + } + { + using namespace cancelSearchButton; + tooltip = i18n ("Stop the active search.") ; + } + + { + using namespace options; + { + using namespace moduleChooserButton; + tooltip = i18n ("Open a dialog to choose work(s) for the search.") ; + } + { + using namespace searchedText; + tooltip = i18n ("Enter the text you want to search in the chosen work(s) here.") ; + } + { + using namespace searchType; + { + using namespace multipleWords_and; + tooltip = i18n ("Treat the search text as multiple words. A text must contain all of the words to match. The order of the words is unimportant.") ; + } + { + using namespace multipleWords_or; + tooltip = i18n ("Treat the search text as multiple words. A text must contain one or more words of to match. The order is unimportant.") ; + } + { + using namespace exactMatch; + tooltip = i18n ("The search text will be used exactly as entered.") ; + } + { + using namespace regExp; + tooltip = i18n ("Treat the search string as a GNU regular expression. The BibleTime handbook contains an introduction to regular expressions.") ; + } + } + + { + using namespace searchOptions; + { + using namespace caseSensitive; + tooltip = i18n ("If you choose this option the search will distinguish between upper and lowercase characters.") ; + } + } + { + using namespace chooseScope; + tooltip = i18n ("Choose a scope from the list. \ +Select the first item to use no scope, the second one is to use each work's last search result as search scope. \ +The others are user defined search scopes."); + } + { + using namespace scopeEditor; + { + using namespace rangeList; + tooltip = i18n ("Select an item from the list to edit the search scope.") ; + } + { + using namespace nameEdit; + tooltip = i18n ("Change the name of the selected search scope.") ; + } + { + using namespace editRange; + tooltip = i18n ("Change the search ranges of the selected search scope item. Have a look at the predefined search scopes to see how search ranges are constructed.") ; + } + { + using namespace parsedResult; + tooltip = i18n ("Contains the search ranges which will be used for the search.") ; + } + { + using namespace addNewRange; + tooltip = i18n ("Add a new search scope. First enter an appropriate name, then edit the search ranges.") ; + } + { + using namespace deleteCurrentRange; + tooltip = i18n ("Deletes the selected search scope. If you close the dialog using Cancel the settings won't be saved.") ; + } + } + } + { + using namespace result; + { + using namespace moduleList; + tooltip = i18n ("The list of works chosen for the search.") ; + } + { + using namespace foundItems; + tooltip = i18n ("This list contains the search result of the selected work.") ; + } + { + using namespace textPreview; + tooltip = i18n ("The text preview of the selected search result item.") ; + } + } + } + + { + using namespace displaywindows; + { + using namespace general; + { + { + using namespace scrollButton; + tooltip = i18n ("This button is useful to scroll through the entries of the list. Press the button and move the mouse to increase or decrease the item.") ; + } + { + using namespace search; + tooltip = i18n ("This button opens the search dialog with the work(s) of this window.") ; + + } + { + using namespace backInHistory; + tooltip = i18n ("Go back one item in the display history.") ; + } + { + using namespace forwardInHistory; + tooltip = i18n ("Go forward one item in the display history.") ; + + } + { + using namespace findStrongs; + tooltip = i18n ("Show all occurences of the Strong number currently under the mouse cursor.") ; + } + } + using namespace bibleWindow; + { + using namespace bookList; + tooltip = i18n ("This list contains the books which are available in this work.") ; + } + { + using namespace nextBook; + tooltip = i18n ("Show the next book of this work.") ; + } + { + using namespace previousBook; + tooltip = i18n ("Show the previous book of this work.") ; + } + { + using namespace chapterList; + tooltip = i18n ("This list contains the chapters which are available in the current book.") ; + } + { + using namespace nextChapter; + tooltip = i18n ("Show the next chapter of the work.") ; + } + { + using namespace previousChapter; + tooltip = i18n ("Show the previous chapter of the work.") ; + } + { + using namespace verseList; + tooltip = i18n ("This list contains the verses which are available in the current chapter.") ; + } + { + using namespace nextVerse; + tooltip = i18n ("In Bible texts, the next verse will be highlighted. In commentaries, the next entry will be shown.") ; + + } + { + using namespace previousVerse; + tooltip = i18n ("In Bible texts, the previous verse will be highlighted. In commentaries, the previous entry will be shown.") ; + } + } + { + using namespace commentaryWindow; + { + using namespace syncWindow; + tooltip = i18n ("Synchronize the displayed entry of this work with the active Bible window.") ; + } + } + { + using namespace lexiconWindow; + { + using namespace entryList; + tooltip = i18n ("This list contains the entries of the current work.") ; + } + { + using namespace nextEntry; + tooltip = i18n ("The next entry of the work will be shown.") ; + } + { + using namespace previousEntry; + tooltip = i18n ("The previous entry of the work will be shown.") ; + } + } + + { + using namespace writeWindow; + { + using namespace saveText; + tooltip = i18n ("Save the curent text into the work. The old text will be overwritten.") ; + } + { + using namespace restoreText; + tooltip = i18n ("Loads the old text from the work and loads it into the edit area. The unsaved text will be lost.") ; + } + { + using namespace deleteEntry; + tooltip = i18n ("Deletes the current entry out of the work. The text will be lost.") ; + } + + //formatting buttons + { + using namespace boldText; + tooltip = i18n ("Toggle bold formatting of the selected text.") ; + } + { + using namespace italicText; + tooltip = i18n ("Toggle italic formatting of the selected text.") ; + } + { + using namespace underlinedText; + tooltip = i18n ("Toggle underlined formatting of the selected text.") ; + } + + { + using namespace alignLeft; + tooltip = i18n ("The text will be aligned on the left side of the page.") ; + } + { + using namespace alignCenter; + tooltip = i18n ("Centers the text horizontally.") ; + } + { + using namespace alignRight; + tooltip = i18n ("Aligns the text on the right side of the page.") ; + } + { + using namespace alignJustify; + tooltip = i18n ("Justifies the text on the page.") ; + } + + { + using namespace fontFamily; + tooltip = i18n ("Choose a new font for the selected text.") ; + } + { using namespace fontSize; + tooltip = i18n ("Choose a new font size for the selected text.") ; + } + { using namespace fontColor; + tooltip = i18n ("Choose a new color for the selected text.") ; + } + } + } + { + using namespace settings; + { + using namespace startup; + { + using namespace dailyTip; + tooltip = i18n ("Activate this box to see a daily tip on startup.") ; + } + { + using namespace showLogo; + tooltip = i18n ("Activate this to see the BibleTime logo on startup.") ; + } + { + using namespace restoreWorkingArea; + tooltip = i18n ("Save the user's session when BibleTime is closed and restore it on the next startup.") ; + } + } + { + using namespace fonts; + { + using namespace typeChooser; + tooltip = i18n ("The font selection below will apply to all texts in this language.") ; + } + } + { + using namespace settings::sword; + { + using namespace general; + { + using namespace language; + tooltip = i18n ("Contains the languages which can be used for the biblical booknames.") ; + } + } + { + using namespace settings::sword::modules; + { + using namespace bible; + tooltip = i18n ("The standard Bible is used when a hyperlink into a Bible is clicked.") ; + } + { + using namespace commentary; + tooltip = i18n ("The standard commentary is used when a hyperlink into a commentary is clicked.") ; + } + { + using namespace lexicon; + tooltip = i18n ("The standard lexicon is used when a hyperlink into a lexicon is clicked.") ; + } + { + using namespace dailyDevotional; + tooltip = i18n ("The standard devotional will be used to display a short start up devotional.") ; + } + { + using namespace hebrewStrongs; + tooltip = i18n ("The standard Hebrew lexicon is used when a hyperlink into a Hebrew lexicon is clicked.") ; + } + { + using namespace greekStrongs; + tooltip = i18n ("The standard Greek lexicon is used when a hyperlink into a Greek lexicon is clicked.") ; + } + { + using namespace hebrewMorph; + tooltip = i18n ("The standard morphological lexicon for Hebrew texts is used when a hyperlink of a morphological tag in a Hebrew text is clicked.") ; + } + { + using namespace greekMorph; + tooltip = i18n ("The standard morphological lexicon for Greek texts is used when a hyperlink of a morphological tag in a Greek text is clicked.") ; + } + } + } + } + { + using namespace mainIndex; + { + using namespace search; + tooltip = i18n ("Opens the search dialog to search in the work(s) that are currently open.") ; + } + } + } +} diff --git a/bibletime/util/cresmgr.h b/bibletime/util/cresmgr.h new file mode 100644 index 0000000..a5e16ab --- /dev/null +++ b/bibletime/util/cresmgr.h @@ -0,0 +1,733 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef CRESMGR_H +#define CRESMGR_H + +//Qt includes +#include +#include + +//KDE includes +#include + +/** Provides static functions to easily access the Tooltip texts for all the frontend parts. + * @author The BibleTime team + */ +namespace CResMgr { + void init_i18n(); + + namespace modules { + namespace bible { + extern const QString icon_unlocked; + extern const QString icon_locked; + extern const QString icon_add; + } + namespace commentary { + extern const QString icon_unlocked; + extern const QString icon_locked; + extern const QString icon_add; + }; + namespace lexicon { + extern const QString icon_unlocked; + extern const QString icon_locked; + extern const QString icon_add; + }; + namespace book { + extern const QString icon_unlocked; + extern const QString icon_locked; + extern const QString icon_add; + }; + }; + + namespace mainMenu { //Main menu + namespace file { //Main menu->File + namespace print { //a standard action + extern QString tooltip; + + } + namespace quit { //a standard action + extern QString tooltip; + } + } + + namespace view { //Main menu->View + namespace showMainIndex { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace showInfoDisplay { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace showToolBar { //a standard action + extern QString tooltip; + } + } + + namespace mainIndex { //configuration for the main index and the view->search menu + namespace search { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace searchdefaultbible { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + } + + namespace window { //Main menu->Window + namespace loadProfile { + extern QString tooltip; + + extern const QString icon; + extern const char* actionName; + } + namespace saveProfile { + extern QString tooltip; + + extern const QString icon; + extern const char* actionName; + } + namespace saveToNewProfile { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace deleteProfile { + extern QString tooltip; + + extern const QString icon; + extern const char* actionName; + } + namespace showFullscreen { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace arrangementMode { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + + namespace manual { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace autoTileVertical { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace autoTileHorizontal { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace autoCascade { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + } + namespace tileVertical { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace tileHorizontal { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace cascade { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace closeAll { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + } + + namespace settings { //Main menu->Settings + namespace editToolBar { // available as KStdAction + extern QString tooltip; + + } + namespace optionsDialog { // available as KStdAction + extern QString tooltip; + + } + namespace swordSetupDialog { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + } + + namespace help { //Main menu->Help + namespace handbook { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace bibleStudyHowTo { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace bugreport { // available as KStdAction + extern QString tooltip; + } + namespace dailyTip { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace aboutBibleTime { // available as KStdAction + extern QString tooltip; + } + namespace aboutKDE { // available as KStdAction + extern QString tooltip; + } + } + } //end of main menu + + namespace searchdialog { + extern const QString icon; + + namespace searchButton { + extern QString tooltip; + } + namespace cancelSearchButton { + extern QString tooltip; + } + + namespace options { + namespace moduleChooserButton { + extern QString tooltip; + } + namespace searchedText { + extern QString tooltip; + } + namespace searchType { + namespace multipleWords_and { + extern QString tooltip; + } + namespace multipleWords_or { + extern QString tooltip; + } + namespace exactMatch { + extern QString tooltip; + } + namespace regExp { + extern QString tooltip; + } + } + + namespace searchOptions { + namespace caseSensitive { + extern QString tooltip; + } + } + namespace chooseScope { + extern QString tooltip; + } + namespace scopeEditor { + namespace rangeList { + extern QString tooltip; + } + namespace nameEdit { + extern QString tooltip; + } + namespace editRange { + extern QString tooltip; + } + namespace parsedResult { + extern QString tooltip; + } + namespace addNewRange { + extern QString tooltip; + } + namespace deleteCurrentRange { + extern QString tooltip; + } + + } + } + namespace result { + namespace moduleList { + extern QString tooltip; + + namespace copyMenu { + extern const QString icon; + } + namespace saveMenu { + extern const QString icon; + } + namespace printMenu { + extern const QString icon; + } + } + namespace foundItems { + extern QString tooltip; + + namespace copyMenu { + extern const QString icon; + } + namespace saveMenu { + extern const QString icon; + } + namespace printMenu { + extern const QString icon; + } + + } + namespace textPreview { + extern QString tooltip; + } + } + } + +namespace workspace {} + + namespace displaywindows { + namespace transliteration { + extern const QString icon; + } + namespace displaySettings { + extern const QString icon; + } + + namespace general { + namespace scrollButton { + extern QString tooltip; + } + namespace search { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + + namespace backInHistory { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace forwardInHistory { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + + namespace findStrongs { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + } + + namespace bibleWindow { + namespace bookList { + extern QString tooltip; + + } + namespace nextBook { + extern QString tooltip; + + extern const KShortcut accel; + } + namespace previousBook { + extern QString tooltip; + + extern const KShortcut accel; + } + + namespace chapterList { + extern QString tooltip; + + } + namespace nextChapter { + extern QString tooltip; + + extern const KShortcut accel; + } + namespace previousChapter { + extern QString tooltip; + + extern const KShortcut accel; + } + + namespace verseList { + extern QString tooltip; + + } + namespace nextVerse { + extern QString tooltip; + + extern const KShortcut accel; + } + namespace previousVerse { + extern QString tooltip; + + extern const KShortcut accel; + } + + namespace copyMenu { + extern const QString icon; + } + namespace saveMenu { + extern const QString icon; + } + namespace printMenu { + extern const QString icon; + } + } + namespace commentaryWindow { + namespace syncWindow { + extern const QString icon; + extern QString tooltip; + + extern const KShortcut accel; + extern const char* actionName; + } + + } + + namespace lexiconWindow { + namespace entryList { + extern QString tooltip; + + } + namespace nextEntry { + extern QString tooltip; + + extern const KShortcut accel; + } + namespace previousEntry { + extern QString tooltip; + + extern const KShortcut accel; + } + + namespace copyMenu { + extern const QString icon; + } + namespace saveMenu { + extern const QString icon; + } + namespace printMenu { + extern const QString icon; + } + } + namespace bookWindow { + namespace toggleTree { + extern const QString icon; + extern const KShortcut accel; + } + } + + + namespace writeWindow { + namespace saveText { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace restoreText { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace deleteEntry { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + + //formatting buttons + namespace boldText { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace italicText { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace underlinedText { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + + namespace alignLeft { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace alignCenter { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace alignRight { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace alignJustify { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + + namespace fontFamily { + extern QString tooltip; + + extern const KShortcut accel; + extern const char* actionName; + } + namespace fontSize { + extern QString tooltip; + + extern const KShortcut accel; + extern const char* actionName; + } + namespace fontColor { + extern QString tooltip; + + } + + } + } + + namespace settings { + namespace startup { + extern const QString icon; + + namespace dailyTip { + extern QString tooltip; + + } + namespace showLogo { + extern QString tooltip; + + } + namespace restoreWorkingArea { + extern QString tooltip; + + } + } + namespace fonts { + extern const QString icon; + + namespace typeChooser { + extern QString tooltip; + + } + } + namespace profiles { + extern const QString icon; + + namespace list { + extern QString tooltip; + + } + namespace createNew { + extern QString tooltip; + + } + namespace deleteCurrent { + extern QString tooltip; + + } + namespace renameCurrent { + extern QString tooltip; + + } + } + namespace sword { + extern const QString icon; + + namespace general { + + namespace language { + extern QString tooltip; + } + } + namespace modules { + namespace bible { + extern QString tooltip; + } + namespace commentary { + extern QString tooltip; + } + namespace lexicon { + extern QString tooltip; + } + namespace dailyDevotional { + extern QString tooltip; + } + namespace hebrewStrongs { + extern QString tooltip; + } + namespace greekStrongs { + extern QString tooltip; + } + namespace hebrewMorph { + extern QString tooltip; + } + namespace greekMorph { + extern QString tooltip; + } + } + } + namespace keys { + extern const QString icon; + } + } + + namespace mainIndex { //configuration for the main index and the view->search menu + namespace search { + extern QString tooltip; + + extern const QString icon; + extern const KShortcut accel; + extern const char* actionName; + } + namespace newFolder { + extern const QString icon; + } + namespace changeFolder { + extern const QString icon; + } + namespace openedFolder { + extern const QString icon; + } + namespace closedFolder { + extern const QString icon; + } + + namespace bookmark { + extern const QString icon; + } + namespace changeBookmark { + extern const QString icon; + } + namespace importBookmarks { + extern const QString icon; + } + namespace exportBookmarks { + extern const QString icon; + } + namespace printBookmarks { + extern const QString icon; + } + namespace deleteItems { + extern const QString icon; + } + + namespace editModuleMenu { + extern const QString icon; + } + namespace editModulePlain { + extern const QString icon; + } + namespace editModuleHTML { + extern const QString icon; + } + + namespace unlockModule { + extern const QString icon; + } + namespace aboutModule { + extern const QString icon; + } + } +} + +#endif diff --git a/bibletime/util/ctoolclass.cpp b/bibletime/util/ctoolclass.cpp new file mode 100644 index 0000000..d00f335 --- /dev/null +++ b/bibletime/util/ctoolclass.cpp @@ -0,0 +1,239 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//own includes +#include "ctoolclass.h" + +#include "util/cresmgr.h" +#include "backend/cswordbackend.h" +#include "backend/cswordmoduleinfo.h" + +//QT includes +#include +#include +#include +#include +#include + +//KDE includes +#include +#include +#include +#include +#include +#include +#include +#include + + +QString CToolClass::locatehtml(const QString &filename) { + QString path = locate("html", KGlobal::locale()->language() + '/' + filename); + if (path.isNull()) + path = locate("html", "default/" + filename); + if (path.isNull()) + path = locate("html", "en/" + filename); + return path; +} + +/** Converts HTML text to plain text */ +QString CToolClass::htmlToText(const QString& html) { + QString newText = html; + // convert some tags we need in code + newText.replace( QRegExp(" "),"#SPACE#" ); + newText.replace( QRegExp("
\\s*"), "
\n" ); + newText.replace( QRegExp("#SPACE#")," " ); + + QRegExp re("<.+>"); + re.setMinimal(true); + newText.replace( re,"" ); + return newText; +} + +/** Converts text to HTML (\n to
) */ +QString CToolClass::textToHTML(const QString& text) { + QString newText = text; + newText.replace( QRegExp("
\n"),"#NEWLINE#" ); + newText.replace( QRegExp("\n"),"
\n" ); + newText.replace( QRegExp("#NEWLINE#"),"
\n"); + return newText; +} + +/** Creates the file filename and put text into the file. + */ +bool CToolClass::savePlainFile( const QString& filename, const QString& text, const bool& forceOverwrite, const QTextStream::Encoding& fileEncoding) { + QFile saveFile(filename); + bool ret; + + if (saveFile.exists()) { + if (!forceOverwrite && KMessageBox::warningYesNo(0, + QString::fromLatin1("%1
%2
") + .arg( i18n("The file already exists.") ) + .arg( i18n("Do you want to overwrite it?") + ) + ) == KMessageBox::No + ) { + return false; + } + else { //either the user chose yes or forceOverwrite is set + saveFile.remove(); + } + }; + + if ( saveFile.open(IO_ReadWrite) ) { + QTextStream textstream( &saveFile ); + textstream.setEncoding(fileEncoding); + textstream << text; + saveFile.close(); + ret = true; + } + else { + KMessageBox::error(0, QString::fromLatin1("%1
%2
") + .arg( i18n("The file couldn't be saved.") ) + .arg( i18n("Please check permissions etc."))); + saveFile.close(); + ret = false; + } + return ret; +} + + +/** Returns the icon used for the module given as aparameter. */ +QPixmap CToolClass::getIconForModule( CSwordModuleInfo* module_info ) { + if (!module_info) + return SmallIcon(CResMgr::modules::book::icon_locked, 16); + + if (module_info->category() == CSwordModuleInfo::Cult) { + return SmallIcon("stop.png", 16); + }; + + + QPixmap img; + + switch (module_info->type()) { + case CSwordModuleInfo::Bible: + if (module_info->isLocked()) + img = SmallIcon(CResMgr::modules::bible::icon_locked, 16); + else + img = SmallIcon(CResMgr::modules::bible::icon_unlocked, 16); + break; + + case CSwordModuleInfo::Lexicon: + if (module_info->isLocked()) + img = SmallIcon(CResMgr::modules::lexicon::icon_locked, 16); + else + img = SmallIcon(CResMgr::modules::lexicon::icon_unlocked, 16); + break; + + case CSwordModuleInfo::Commentary: + if (module_info->isLocked()) + img = SmallIcon(CResMgr::modules::commentary::icon_locked, 16); + else + img = SmallIcon(CResMgr::modules::commentary::icon_unlocked, 16); + break; + + case CSwordModuleInfo::GenericBook: + if (module_info->isLocked()) + img = SmallIcon(CResMgr::modules::book::icon_locked, 16); + else + img = SmallIcon(CResMgr::modules::book::icon_unlocked, 16); + break; + + case CSwordModuleInfo::Unknown: //fall though to default + default: + if (module_info->isLocked()) + img = SmallIcon(CResMgr::modules::book::icon_locked, 16); + else + img = SmallIcon(CResMgr::modules::book::icon_unlocked, 16); + break; + } + + + return img; +} + +QLabel* CToolClass::explanationLabel(QWidget* parent, const QString& heading, const QString& text ) { + QLabel* label = new QLabel( QString::fromLatin1("%1
%2").arg(heading).arg(text),parent ); + label->setAutoResize(true); + label->setMargin(1); + label->setFrameStyle(QFrame::Box | QFrame::Plain); + return label; +} + +/** No descriptions */ +bool CToolClass::inHTMLTag(int pos, QString & text) { + int i1=text.findRev("<",pos); + int i2=text.findRev(">",pos); + int i3=text.find(">",pos); + int i4=text.find("<",pos); + + + // if ((i1>0) && (i2==-1)) //we're in th first html tag + // i2=i1; // not ncessary, just for explanation + + if ((i3>0) && (i4==-1)) //we're in the last html tag + i4=i3+1; + + // qWarning("%d > %d && %d < %d",i1,i2,i3,i4); + + if ( (i1>i2) && (i3%1 ").arg( module->name() ) + + ((module->category() == CSwordModuleInfo::Cult) ? QString::fromLatin1("%1
").arg(i18n("Take care, this work contains cult / questionable material!")) : QString::null); + + text += QString("(") + module->config(CSwordModuleInfo::Description) + QString(")
"); + + text += i18n("Language") + QString(": %1
").arg( module->language()->translatedName() ); + + if (module->isEncrypted()) { + text += i18n("Unlock key") + QString(": %1
") + .arg(!module->config(CSwordModuleInfo::CipherKey).isEmpty() ? module->config(CSwordModuleInfo::CipherKey) : QString("%1").arg(i18n("not set"))); + } + + if (module->hasVersion()) { + text += i18n("Version") + QString(": %1
").arg( module->config(CSwordModuleInfo::ModuleVersion) ); + } + + QString options; + unsigned int opts; + for (opts = CSwordModuleInfo::filterTypesMIN; opts <= CSwordModuleInfo::filterTypesMAX; ++opts) { + if (module->has( static_cast(opts) )) { + if (!options.isEmpty()) { + options += QString::fromLatin1(", "); + } + + options += CSwordBackend::translatedOptionName( + static_cast(opts) + ); + } + } + + if (!options.isEmpty()) { + text += i18n("Options") + QString::fromLatin1(": ") + options + QString(""); + } + + if (text.right(4) == QString::fromLatin1("
")) { + text = text.left(text.length()-4); + } + + return text; +} diff --git a/bibletime/util/ctoolclass.h b/bibletime/util/ctoolclass.h new file mode 100644 index 0000000..80d0ae8 --- /dev/null +++ b/bibletime/util/ctoolclass.h @@ -0,0 +1,80 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +//Qt includes +#include +#include +#include + + +#ifndef CTOOLCLASS_H +#define CTOOLCLASS_H + + +class CSwordModuleInfo; +class QLabel; + +/** + * Provides some useful functions which would be normally global. + * + * Some methods,that would be normaly global, but I hate global functions :-) + * (the function locateHTML is from Sandy Meier (KDevelop)) + * + * @short A class which contains static members to do small things. + * @author Joachim Ansorg + */ +class CToolClass { +public: + /** + * @return The path of the HTML file "filename". This function searches only in $KDEDIR. + * @author Sandy Meier of the KDevelop team. + */ + static QString locatehtml(const QString &filename); + /** + * Converts HTML text to plain text. + * This function converts some HTML tags in text (e.g.
to \n) + * @return The text withput HTML tags and with converted
to \n + * @author Joachim Ansorg + */ + static QString htmlToText(const QString&); + /** + * Converts text to HTML converting some text commands into HTML tags (e.g. \n to
) + * @return The HTML formatted text we got after changing \n to
+ * @author Joachim Ansorg + */ + static QString textToHTML(const QString&); + /** + * Creates the file filename and put the text of parameter "text" into the file. + * @return True if saving was sucessful, otherwise false + * @author Joachim Ansorg + */ + static bool savePlainFile( const QString& filename, const QString& text, const bool& forceOverwrite = false, const QTextStream::Encoding& fileEncoding = QTextStream::Locale); + /** + * Returns the icon used for the module given as aparameter. + */ + static QPixmap getIconForModule( CSwordModuleInfo* ); + /** Returns a label to explain difficult things of dialogs. + * This function returns a label with heading "heading" and explanation "text". This label should be used to + * explain difficult things of the GUI, e.g. in the optionsdialog. + */ + static QLabel* explanationLabel(QWidget* parent, const QString& heading, const QString& text ); + /** + * Returns true if the character at position "pos" of text is inside an HTML tag. Returns false if it's not inside an HTML tag. + */ + static bool inHTMLTag(int pos, QString & text); + /** Return the module's tooltip text + * @param module The module required for the toolip + * @return The tooltip text for the passed module + */ + static QString moduleToolTip(CSwordModuleInfo* module); +}; + +#endif diff --git a/bibletime/util/directoryutil.cpp b/bibletime/util/directoryutil.cpp new file mode 100644 index 0000000..c55ca96 --- /dev/null +++ b/bibletime/util/directoryutil.cpp @@ -0,0 +1,111 @@ +// +// C++ Implementation: directoryutil +// +// Description: +// +// +// Author: The BibleTime team , (C) 2006 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +#include "directoryutil.h" + +//Qt includes +#include + +namespace util { + +namespace filesystem { + +void DirectoryUtil::removeRecursive(const QString& dir) { + qWarning("removeRecursive(%s)", dir.latin1()); + if (dir == QString::null) { + return; + } + + QDir d(dir); + if (!d.exists()) { + return; + } + + QFileInfo *fi = 0; + + //remove all files in this dir + d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks ); + + const QFileInfoList *fileList = d.entryInfoList(); + QFileInfoListIterator it_file( *fileList ); + while ( (fi = it_file.current()) != 0 ) { + ++it_file; + + qDebug("Removing %s", fi->absFilePath().latin1() ); + d.remove( fi->fileName() ) ; + } + + //remove all subdirs recursively + d.setFilter( QDir::Dirs | QDir::NoSymLinks ); + const QFileInfoList *dirList = d.entryInfoList(); + QFileInfoListIterator it_dir( *dirList ); + + while ( (fi = it_dir.current()) != 0 ) { + ++it_dir; + + if ( !fi->isDir() || fi->fileName() == "." || fi->fileName() == ".." ) { + continue; + } + + qDebug("Removing dir %s", fi->absFilePath().latin1() ); + //d.remove( fi->fileName() ) ; + + removeRecursive( fi->absFilePath() ); + } + + d.rmdir(dir); +} + +/** Returns the size of the directory including the size of all it's files and it's subdirs. + */ +unsigned long DirectoryUtil::getDirSizeRecursive(const QString& dir) { + qWarning("Getting size for %s", dir.latin1()); + + QDir d(dir); + if (!d.exists()) { + return 0; + } + + d.setFilter(QDir::Files); + + unsigned long size = 0; + + const QFileInfoList* infoList = d.entryInfoList(); + QFileInfoListIterator it(*infoList); + QFileInfo* info = 0; + while ((info = it.current()) != 0) { + ++it; + + size += info->size(); + } + + d.setFilter(QDir::Dirs); + const QFileInfoList* dirInfoList = d.entryInfoList(); + QFileInfoListIterator it_dir(*dirInfoList); + while ((info = it_dir.current()) != 0) { + ++it_dir; + + if ( !info->isDir() || info->fileName() == "." || info->fileName() == ".." ) { + continue; + } + + size += getDirSizeRecursive( info->absFilePath() ); + } + + return size; +} + + +} //end of namespace util::filesystem + +} //end of namespace util + diff --git a/bibletime/util/directoryutil.h b/bibletime/util/directoryutil.h new file mode 100644 index 0000000..68a6e88 --- /dev/null +++ b/bibletime/util/directoryutil.h @@ -0,0 +1,55 @@ +// +// C++ Interface: directoryutil +// +// Description: +// +// +// Author: The BibleTime team , (C) 2006 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef UTIL_FILESDIRECTORYUTIL_H +#define UTIL_FILESDIRECTORYUTIL_H + +#include + +namespace util { + +namespace filesystem { + +/** + * Tools for working with directories. + * @author The BibleTime team +*/ +class DirectoryUtil { +private: + DirectoryUtil() {}; + ~DirectoryUtil() {}; + +public: + /** Removes the given dir with all it's files and subdirs. + * + * TODO: Check if it's suitable for huge dir trees, as it holds a QDir object + * for each of it at the same time in the deepest recursion. + * For really deep dir tree this may lead to a stack overflow. + */ + static void removeRecursive(const QString& dir); + + /** Returns the size of the directory including the size of all it's files + * and it's subdirs. + * + * TODO: Check if it's suitable for huge dir trees, as it holds a QDir object + * for each of it at the same time in the deepest recursion. + * For really deep dir tree this may lead to a stack overflow. + * + * @return The size of the dir in bytes + */ + static unsigned long getDirSizeRecursive(const QString& dir); +}; + +} + +} + +#endif diff --git a/bibletime/util/scoped_resource.h b/bibletime/util/scoped_resource.h new file mode 100644 index 0000000..2032038 --- /dev/null +++ b/bibletime/util/scoped_resource.h @@ -0,0 +1,181 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2006 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + + + +#ifndef SCOPED_RESOURCE_H_INCLUDED +#define SCOPED_RESOURCE_H_INCLUDED + +/** +* The util namespace should take all classes which are of a generic type, +* used to perform common tasks which are not BibleTime-specific. See +* @ref scoped_resource for an example. +*/ +namespace util { + /** + * A class template, scoped_resource, designed to + * implement the Resource Acquisition Is Initialization (RAII) approach + * to resource management. scoped_resource is designed to be used when + * a resource is initialized at the beginning or middle of a scope, + * and released at the end of the scope. The template argument + * ReleasePolicy is a functor which takes an argument of the + * type of the resource, and releases it. + * + * Usage example, for working with files: + * + * @code + * struct close_file { void operator(int fd) const {close(fd);} }; + * ... + * { + * const scoped_resource file(open("file.txt",O_RDONLY)); + * read(file, buf, 1000); + * } // file is automatically closed here + * @endcode + * + * Note that scoped_resource has an explicit constructor, and prohibits + * copy-construction, and thus the initialization syntax, rather than + * the assignment syntax must be used when initializing. + * + * i.e. using scoped_resource file = open("file.txt",O_RDONLY); + * in the above example is illegal. + * + */ + template + class scoped_resource { + T resource; + ReleasePolicy release; + + //prohibited operations + scoped_resource(const scoped_resource&); + scoped_resource& operator=(const scoped_resource&); +public: + typedef T resource_type; + typedef ReleasePolicy release_type; + + /** + * Constructor + * + * @ param res This is the resource to be managed + * @ param rel This is the functor to release the object + */ + explicit scoped_resource(resource_type res,release_type rel=release_type()) +: resource(res), release(rel) {} + + /** + * The destructor is the main point in this class. It takes care of proper + * deletion of the resource, using the provided release policy. + */ + ~scoped_resource() { + release(resource); + } + + /** + * This operator makes sure you can access and use the scoped_resource + * just like you were using the resource itself. + * + * @ret the underlying resource + */ + operator resource_type() const { + return resource; + } + + /** + * This function provides explicit access to the resource. Its behaviour + * is identical to operator resource_type() + * + * @ret the underlying resource + */ + resource_type get + () const { + return resource; + } + + /** + * This function provides convenient direct access to the -> operator + * if the underlying resource is a pointer. Only call this function + * if resource_type is a pointer type. + */ + resource_type operator->() const { + return resource; + } + + }; + + /** + * A helper policy for scoped_ptr. + * It will call the delete operator on a pointer, and assign the pointer to 0 + */ + struct delete_item { + template + void operator()(T*& p) const { + delete p; + p = 0; + } + }; + /** + * A helper policy for scoped_array. + * It will call the delete[] operator on a pointer, and assign the pointer to 0 + */ + struct delete_array { + template + void operator()(T*& p) const { + delete [] p; + p = 0; + } + }; + + /** + * A class which implements an approximation of + * template + * typedef scoped_resource scoped_ptr; + * + * It is a convenient synonym for a common usage of @ref scoped_resource. + * See scoped_resource for more details on how this class behaves. + * + * Usage example: + * @code + * { + * const scoped_ptr ptr(new Object); + * ...use ptr as you would a normal Object*... + * } // ptr is automatically deleted here + * @endcode + * + * NOTE: use this class only to manage a single object, *never* an array. + * Use scoped_array to manage arrays. This distinction is because you + * may call delete only on objects allocated with new, delete[] only + * on objects allocated with new[]. + */ + template +struct scoped_ptr : public scoped_resource { +explicit scoped_ptr(T* p) : scoped_resource(p) {} + } + ; + + /** + * This class has identical behaviour to @ref scoped_ptr, except it manages + * heap-allocated arrays instead of heap-allocated single objects + * + * Usage example: + * @code + * { + * const scoped_array ptr(new char[n]); + * ...use ptr as you would a normal char*... + * } // ptr is automatically deleted here + * @endcode + * + */ + template +struct scoped_array : public scoped_resource { +explicit scoped_array(T* p) : scoped_resource(p) {} + } + ; + +} + +#endif diff --git a/bibletime/xml/Makefile.am b/bibletime/xml/Makefile.am new file mode 100644 index 0000000..acb432e --- /dev/null +++ b/bibletime/xml/Makefile.am @@ -0,0 +1,3 @@ +EXTRA_DIST = bibletimeui.rc +rcdir = $(kde_datadir)/bibletime +rc_DATA = bibletimeui.rc diff --git a/bibletime/xml/Makefile.in b/bibletime/xml/Makefile.in new file mode 100644 index 0000000..f3823fc --- /dev/null +++ b/bibletime/xml/Makefile.in @@ -0,0 +1,594 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = bibletime/xml +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(rcdir)" +rcDATA_INSTALL = $(INSTALL_DATA) +DATA = $(rc_DATA) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +EXTRA_DIST = bibletimeui.rc +rcdir = $(kde_datadir)/bibletime +rc_DATA = bibletimeui.rc +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/xml/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu bibletime/xml/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/xml/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/xml/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/xml/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-rcDATA: $(rc_DATA) + @$(NORMAL_INSTALL) + test -z "$(rcdir)" || $(MKDIR_P) "$(DESTDIR)$(rcdir)" + @list='$(rc_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(rcDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rcdir)/$$f'"; \ + $(rcDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rcdir)/$$f"; \ + done + +uninstall-rcDATA: + @$(NORMAL_UNINSTALL) + @list='$(rc_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(rcdir)/$$f'"; \ + rm -f "$(DESTDIR)$(rcdir)/$$f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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: + for dir in "$(DESTDIR)$(rcdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-rcDATA + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-rcDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-rcDATA \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-rcDATA + +# 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: + +#>+ 2 +KDE_DIST=Makefile.in Makefile.am + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bibletime/xml/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bibletime/xml/Makefile + cd $(top_srcdir) && perl admin/am_edit bibletime/xml/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/bibletime/xml/bibletimeui.rc b/bibletime/xml/bibletimeui.rc new file mode 100644 index 0000000..fa8f4e2 --- /dev/null +++ b/bibletime/xml/bibletimeui.rc @@ -0,0 +1,70 @@ + + + &File + + + + + + &Search + + + + &View + + + + + + Se&ttings + + + + + + + &Window + + + + + + + + + + + + + + + + &Help + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/clucene.m4 b/clucene.m4 new file mode 100644 index 0000000..1287429 --- /dev/null +++ b/clucene.m4 @@ -0,0 +1,153 @@ +## -*- autoconf -*- +dnl This file was created by Lee Carpenter +dnl Later modified by Martin Gruner +dnl It provides macros for the autoconf package to find the CLucene library on your system. + +dnl ---------------------------------------------------------------------- +dnl Check for clucene installation +dnl First argument specifies whether or not to link +dnl CLucene statically +dnl ---------------------------------------------------------------------- +AC_DEFUN(AC_CHECK_CLUCENE, +[ +dnl AC_MSG_CHECKING([for a clucene installation]) + +dnl The option for the configure script +AC_ARG_WITH(clucene-dir, +[ --with-clucene-dir=DIR Path where CLucene is installed (default=/usr) ], +[ + ac_clucene_dir=$withval +],ac_clucene_dir=/usr +) + +AC_ARG_ENABLE(static-clucene, +[ --enable-static-clucene Link to the static CLucene library], + ac_static_clucene="YES", + [ ac_static_clucene="$1" ] +) + +dnl try to find CLucene library files +AC_MSG_CHECKING([for CLucene library files]) +ac_clucene_library_dirs="$ac_clucene_dir/lib $exec_prefix/lib $prefix/lib /usr/lib /usr/lib64 /usr/local/lib" + +if test "x$ac_static_clucene" = "xYES"; then + SEARCH_LIBS="libclucene.a"; +else + SEARCH_LIBS="libclucene.so libclucene.so.0 libclucene.so.0.0.0 libcluene.a"; +fi + + +AC_CACHE_VAL(ac_cv_clucene_libdir, AC_FIND_FILE($SEARCH_LIBS, $ac_clucene_library_dirs, ac_cv_clucene_libdir)) + +if test "x$ac_cv_clucene_libdir" = "xNO"; then + AC_MSG_ERROR(CLucene library not found. Try to use configure with --with-clucene-dir=/path/to/clucene); +fi + +if test "x$ac_static_clucene" = "xYES"; then + LIB_CLUCENE="$ac_cv_clucene_libdir/libclucene.a"; +else + LIB_CLUCENE="-lclucene"; +fi + +AC_SUBST(CLUCENE_LIBRARY_PATH) +AC_SUBST(LIB_CLUCENE) +all_libraries="$all_libraries -L$ac_cv_clucene_libdir" + +if test "x$ac_static_clucene" = "xYES"; then + MESSAGE="static library $ac_cv_clucene_libdir/libclucene.a"; +else + MESSAGE="$ac_cv_clucene_libdir"; +fi +AC_MSG_RESULT([$MESSAGE]) + +dnl -- try to find CLucene include files -- +AC_MSG_CHECKING([for Clucene include files]) +ac_clucene_include_dirs="$ac_clucene_dir/include $exec_prefix/include $prefix/include /usr/include /usr/local/include" + +AC_CACHE_VAL(ac_cv_clucene_incdir, AC_FIND_FILE(CLucene.h, $ac_clucene_include_dirs, ac_cv_clucene_incdir)) + +if test "x$ac_cv_clucene_incdir" = "xNO"; then + AC_MSG_ERROR([The CLucene include file files were not found. +Please try to use configure with --with-clucene-dir=/path/to/clucene +]) +fi + +CLUCENE_INCLUDES="-I$ac_cv_clucene_incdir" +AC_SUBST(CLUCENE_INCLUDES) +all_includes="$all_includes -I$ac_cv_clucene_incdir -I$ac_cv_clucene_libdir -I$ac_cv_sword_incdir" #$ac_cv_clucene_libdir needed for Clucene/clucene-config.h + +AC_MSG_RESULT([$ac_cv_clucene_incdir]) + + + +dnl -- CLucene installed test -- + +AC_MSG_CHECKING([for CLucene version]) + +AC_CACHE_VAL(ac_cv_installed_clucene_version, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH +ac_LIBRARY_PATH="$LIBRARY_PATH" +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$" +LDFLAGS="$LDFLAGS -L$ac_cv_clucene_libdir -L$ac_cv_sword_libdir" +LIBS="$LIB_CLUCENE -lz -lsword" +LD_LIBRARY_PATH="$ac_cv_clucene_libdir" +export LD_LIBRARY_PATH +LIBRARY_PATH= +export LIBRARY_PATH + +cat > conftest.$ac_ext < +#include +#include + +int main(int argc, char* argv[[]]) { + if ( sword::SWVersion( _CL_VERSION ) >= sword::SWVersion( "0.9.16" ) ){ + std::cout << "ok"; + } + else{ + std::cout << "not-ok"; + } + return 0; +} +EOF + + +ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +if AC_TRY_EVAL(ac_link) && test -s conftest; then + if test -x conftest; then + eval ac_cv_installed_clucene_version=`./conftest 2>&5` + fi +else + echo "configure: failed program was:" >&AC_FD_CC + AC_MSG_ERROR([Failed to compile the test program to check the CLucene version! Please have a look at config.log! Report this to the BibleTime developers!]); + cat conftest.$ac_ext >&AC_FD_CC +fi + +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" +export LD_LIBRARY_PATH +LIBRARY_PATH="$ac_LIBRARY_PATH" +export LIBRARY_PATH +AC_LANG_RESTORE +]) + +if test "x$ac_cv_installed_clucene_version" = "xok"; then + AC_MSG_RESULT([ok, version is recent enough]); +elif test "x$ac_cv_installed_clucene_version" = "xnot-ok"; then + AC_MSG_RESULT([installed]); + AC_MSG_ERROR([Your CLucene version is not recent enough! Please upgrade to version >= 0.9.16!]); +fi; + +]) + diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..f0c547f --- /dev/null +++ b/config.h.in @@ -0,0 +1,243 @@ +/* config.h.in. Generated from configure.in by autoheader. */ + +/* The type of your distribution */ +#undef DISTRIBUTION + +/* The version of your distribution */ +#undef DISTRIBUTION_VERSION + +/* Define to 1 if you have the header file. */ +#undef HAVE_CARBON_CARBON_H + +/* Define if you have the CoreAudio API */ +#undef HAVE_COREAUDIO + +/* Define to 1 if you have the header file. */ +#undef HAVE_CRT_EXTERNS_H + +/* Defines if your system has the crypt function */ +#undef HAVE_CRYPT + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define if you have libjpeg */ +#undef HAVE_LIBJPEG + +/* Define if you have libpng */ +#undef HAVE_LIBPNG + +/* Define if you have a working libpthread (will enable threaded code) */ +#undef HAVE_LIBPTHREAD + +/* Define if you have libz */ +#undef HAVE_LIBZ + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define if your system needs _NSGetEnviron to set up the environment */ +#undef HAVE_NSGETENVIRON + +/* Define if you have res_init */ +#undef HAVE_RES_INIT + +/* Define if you have the res_init prototype */ +#undef HAVE_RES_INIT_PROTO + +/* Define if you have a STL implementation by SGI */ +#undef HAVE_SGI_STL + +/* Define to 1 if you have the `snprintf' function. */ +#undef HAVE_SNPRINTF + +/* 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 if you have strlcat */ +#undef HAVE_STRLCAT + +/* Define if you have the strlcat prototype */ +#undef HAVE_STRLCAT_PROTO + +/* Define if you have strlcpy */ +#undef HAVE_STRLCPY + +/* Define if you have the strlcpy prototype */ +#undef HAVE_STRLCPY_PROTO + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_BITYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have the `vsnprintf' function. */ +#undef HAVE_VSNPRINTF + +/* Suffix for lib directories */ +#undef KDELIBSUFF + +/* 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 + +/* The size of `char *', as computed by sizeof. */ +#undef SIZEOF_CHAR_P + +/* The size of `int', as computed by sizeof. */ +#undef SIZEOF_INT + +/* The size of `long', as computed by sizeof. */ +#undef SIZEOF_LONG + +/* The size of `short', as computed by sizeof. */ +#undef SIZEOF_SHORT + +/* The size of `size_t', as computed by sizeof. */ +#undef SIZEOF_SIZE_T + +/* The size of `unsigned long', as computed by sizeof. */ +#undef SIZEOF_UNSIGNED_LONG + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION + +/* Defined if compiling without arts */ +#undef WITHOUT_ARTS + +/* + * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system + * headers and I'm too lazy to write a configure test as long as only + * unixware is related + */ +#ifdef _UNIXWARE +#define HAVE_BOOLEAN +#endif + + + +/* + * AIX defines FD_SET in terms of bzero, but fails to include + * that defines bzero. + */ + +#if defined(_AIX) +#include +#endif + + + +#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H) +# include +# include +# define environ (*_NSGetEnviron()) +#endif + + + +#if !defined(HAVE_RES_INIT_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +int res_init(void); +#ifdef __cplusplus +} +#endif +#endif + + + +#if !defined(HAVE_STRLCAT_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +unsigned long strlcat(char*, const char*, unsigned long); +#ifdef __cplusplus +} +#endif +#endif + + + +#if !defined(HAVE_STRLCPY_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +unsigned long strlcpy(char*, const char*, unsigned long); +#ifdef __cplusplus +} +#endif +#endif + + + +/* + * On HP-UX, the declaration of vsnprintf() is needed every time ! + */ + +#if !defined(HAVE_VSNPRINTF) || defined(hpux) +#if __STDC__ +#include +#include +#else +#include +#endif +#ifdef __cplusplus +extern "C" +#endif +int vsnprintf(char *str, size_t n, char const *fmt, va_list ap); +#ifdef __cplusplus +extern "C" +#endif +int snprintf(char *str, size_t n, char const *fmt, ...); +#endif + + + +#if defined(__SVR4) && !defined(__svr4__) +#define __svr4__ 1 +#endif + + +/* type to use in place of socklen_t if not defined */ +#undef kde_socklen_t + +/* type to use in place of socklen_t if not defined (deprecated, use + kde_socklen_t) */ +#undef ksize_t diff --git a/configure b/configure new file mode 100755 index 0000000..a629e95 --- /dev/null +++ b/configure @@ -0,0 +1,35153 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.61. +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# 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 + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +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) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# 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'` + +# CDPATH. +$as_unset CDPATH + + +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no +fi + + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= + 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=. + case $as_dir in + /*) + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell autoconf@gnu.org about your system, + echo including any error possibly output before this + echo message +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # 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 after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, 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 + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { 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 sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + + +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$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. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL $0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL $0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "$0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" +fi + + + + +tagnames=${tagnames+${tagnames},}CXX + +tagnames=${tagnames+${tagnames},}F77 + +exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Identity of this package. +PACKAGE_NAME= +PACKAGE_TARNAME= +PACKAGE_VERSION= +PACKAGE_STRING= +PACKAGE_BUGREPORT= + +ac_unique_file="acinclude.m4" +ac_default_prefix=${KDEDIR:-the kde prefix} +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='SHELL +PATH_SEPARATOR +PACKAGE_NAME +PACKAGE_TARNAME +PACKAGE_VERSION +PACKAGE_STRING +PACKAGE_BUGREPORT +exec_prefix +prefix +program_transform_name +bindir +sbindir +libexecdir +datarootdir +datadir +sysconfdir +sharedstatedir +localstatedir +includedir +oldincludedir +docdir +infodir +htmldir +dvidir +pdfdir +psdir +libdir +localedir +mandir +DEFS +ECHO_C +ECHO_N +ECHO_T +LIBS +build_alias +host_alias +target_alias +build +build_cpu +build_vendor +build_os +host +host_cpu +host_vendor +host_os +target +target_cpu +target_vendor +target_os +INSTALL_PROGRAM +INSTALL_SCRIPT +INSTALL_DATA +am__isrc +CYGPATH_W +PACKAGE +VERSION +ACLOCAL +AUTOCONF +AUTOMAKE +AUTOHEADER +MAKEINFO +install_sh +STRIP +INSTALL_STRIP_PROGRAM +mkdir_p +AWK +SET_MAKE +am__leading_dot +AMTAR +am__tar +am__untar +KDECONFIG +kde_libs_prefix +kde_libs_htmldir +CONF_FILES +CC +CFLAGS +LDFLAGS +CPPFLAGS +ac_ct_CC +EXEEXT +OBJEXT +DEPDIR +am__include +am__quote +AMDEP_TRUE +AMDEP_FALSE +AMDEPBACKSLASH +CCDEPMODE +am__fastdepCC_TRUE +am__fastdepCC_FALSE +CPP +CXX +CXXFLAGS +ac_ct_CXX +CXXDEPMODE +am__fastdepCXX_TRUE +am__fastdepCXX_FALSE +WOVERLOADED_VIRTUAL +HAVE_GCC_VISIBILITY +unsermake_enable_pch_TRUE +unsermake_enable_pch_FALSE +USE_EXCEPTIONS +USE_RTTI +CXXCPP +NOOPT_CXXFLAGS +NOOPT_CFLAGS +ENABLE_PERMISSIVE_FLAG +LDFLAGS_AS_NEEDED +LDFLAGS_NEW_DTAGS +KDE_USE_FINAL_TRUE +KDE_USE_FINAL_FALSE +KDE_USE_CLOSURE_TRUE +KDE_USE_CLOSURE_FALSE +KDE_NO_UNDEFINED +KDE_USE_NMCHECK_TRUE +KDE_USE_NMCHECK_FALSE +GREP +EGREP +LN_S +ECHO +AR +RANLIB +F77 +FFLAGS +ac_ct_F77 +LIBTOOL +KDE_PLUGIN +MAINTAINER_MODE_TRUE +MAINTAINER_MODE_FALSE +MAINT +MSGFMT +GMSGFMT +XGETTEXT +LIBUTIL +LIBCOMPAT +LIBCRYPT +LIBRESOLV +LIB_POLL +FRAMEWORK_COREAUDIO +LIBSOCKET +X_EXTRA_LIBS +LIBUCB +LIBDL +include_x11_TRUE +include_x11_FALSE +XMKMF +X_PRE_LIBS +LIB_X11 +LIB_XRENDER +LIBSM +X_INCLUDES +X_LDFLAGS +x_includes +x_libraries +QTE_NORTTI +LIB_XEXT +LIBPTHREAD +USE_THREADS +KDE_MT_LDFLAGS +KDE_MT_LIBS +USER_INCLUDES +USER_LDFLAGS +LIBZ +LIBPNG +LIBJPEG +qt_libraries +qt_includes +QT_INCLUDES +QT_LDFLAGS +PERL +MOC +UIC +UIC_TR +LIB_QT +LIB_QPE +kde_qtver +KDE_EXTRA_RPATH +KDE_RPATH +X_RPATH +kde_libraries +kde_includes +KDE_LDFLAGS +KDE_INCLUDES +all_includes +all_libraries +AUTODIRS +include_ARTS_TRUE +include_ARTS_FALSE +MAKEKDEWIDGETS +KCONFIG_COMPILER +KCFG_DEPENDENCIES +DCOPIDLNG +DCOPIDL +DCOPIDL2CPP +DCOP_DEPENDENCIES +MCOPIDL +ARTSCCONFIG +MEINPROC +KDE_XSL_STYLESHEET +XMLLINT +kde_htmldir +kde_appsdir +kde_icondir +kde_sounddir +kde_datadir +kde_locale +kde_confdir +kde_kcfgdir +kde_mimedir +kde_wallpaperdir +kde_bindir +xdg_appsdir +xdg_menudir +xdg_directorydir +kde_templatesdir +kde_servicesdir +kde_servicetypesdir +kde_moduledir +kdeinitdir +kde_styledir +kde_widgetdir +LIB_KDECORE +LIB_KDEUI +LIB_KIO +LIB_KJS +LIB_SMB +LIB_KAB +LIB_KABC +LIB_KHTML +LIB_KSPELL +LIB_KPARTS +LIB_KDEPRINT +LIB_KUTILS +LIB_KDEPIM +LIB_KIMPROXY +LIB_KNEWSTUFF +LIB_KDNSSD +LIB_KSYCOCA +LIB_KFILE +LIB_KFM +BT_LDFLAGS +SWORD_LIBRARY_PATH +LIB_SWORD +SWORD_INCLUDES +CLUCENE_LIBRARY_PATH +LIB_CLUCENE +CLUCENE_INCLUDES +HOWTODIR +DISTRIBUTION +DISTRIBUTION_VERSION +RPM_PREFIX +RPM_GROUP +TOPSUBDIRS +LIBOBJS +LTLIBOBJS' +ac_subst_files='' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +CXX +CXXFLAGS +CCC +CXXCPP +F77 +FFLAGS +XMKMF' + + +# 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. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_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 ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_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'` + 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 ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_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'` + 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; }; } + 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 directory names. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } +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 + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { echo "$as_me: error: Working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$0" || +$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 + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 + { (exit 1); exit 1; }; } + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures this package to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] + --target=TARGET configure for building compilers for TARGET [HOST] +_ACEOF +fi + +if test -n "$ac_init_help"; then + + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --disable-fast-perl disable fast Makefile generation (needs perl) + --enable-debug=ARG enables debug symbols (yes|no|full) default=no + --disable-debug disables debug output and debug symbols default=no + --enable-strict compiles with strict compiler options (may not + work!) + --disable-warnings disables compilation with -Wall and similar + --enable-profile creates profiling infos default=no + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --enable-pch enables precompiled header support (currently only + KCC or gcc >=3.4+unsermake) default=no + --enable-coverage use gcc coverage testing + --enable-new-ldflags enable the new linker flags + --enable-final build size optimized apps (experimental - needs lots + of memory) + --enable-closure delay template instantiation + --enable-nmcheck enable automatic namespace cleanness check + --enable-shared[=PKGS] build shared libraries [default=no] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-libsuffix /lib directory suffix (64,32,none=default) + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer + --enable-embedded link to Qt-embedded, don't use X + --enable-qtopia link to Qt-embedded, link to the Qtopia Environment + --enable-mac link to Qt/Mac (don't use X) + --disable-mt link to non-threaded Qt (deprecated) + --disable-threading disables threading even if libpthread found + --disable-rpath do not use the rpath feature of ld + --disable-path-check don't try to find out, where to install + --enable-static-linking use static linking + --enable-static-sword Link to the static Sword library + --enable-static-clucene Link to the static CLucene library + --enable-howto install Bible Study Howto (default=yes) + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-tags[=TAGS] include additional configurations [automatic] + --with-extra-includes=DIR + adds non standard include paths + --with-extra-libs=DIR adds non standard library paths + --with-qt-dir=DIR where the root of Qt is installed + --with-qt-includes=DIR where the Qt includes are. + --with-qt-libraries=DIR where the Qt library is installed. + --without-arts build without aRts default=no + --with-sword-dir=DIR Path where Sword is being installed (default=/usr) + --with-clucene-dir=DIR Path where CLucene is installed (default=/usr) + --with-distribution=TYPE The name of your *NIX distribution, e.g. SuSE auto + --with-distribution-version=VERSION Version of your *NIX distribution, e.g. 7.2 auto + --with-rpm-prefix=DIR The directory which should be used as PREFIX + in the RPM spec file auto + --with-rpm-group=DIR The group which will be used for the RPM system auto + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CXXCPP C++ preprocessor + F77 Fortran 77 compiler command + FFLAGS Fortran 77 compiler flags + XMKMF Path to xmkmf, Makefile generator for X Window System + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +configure +generated by GNU Autoconf 2.61 + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by $as_me, which was +generated by GNU Autoconf 2.61. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`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_arg'" + ;; + 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: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------------- ## +## File substitutions. ## +## ------------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +# 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 -n "$CONFIG_SITE"; then + set x "$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + set x "$prefix/share/config.site" "$prefix/etc/config.site" +else + set x "$ac_default_prefix/share/config.site" \ + "$ac_default_prefix/etc/config.site" +fi +shift +for ac_site_file +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 $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { 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 + + +ac_aux_dir= +for ac_dir in admin "$srcdir"/admin; 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 admin \"$srcdir\"/admin" >&5 +echo "$as_me: error: cannot find install-sh or install.sh in admin \"$srcdir\"/admin" >&2;} + { (exit 1); exit 1; }; } +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + +unset CDPATH + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +echo "$as_me: error: cannot run $SHELL $ac_aux_dir/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_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { 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=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_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; } +case $ac_cv_build in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ 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 + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking target system type" >&5 +echo $ECHO_N "checking target system type... $ECHO_C" >&6; } +if test "${ac_cv_target+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$target_alias" = x; then + ac_cv_target=$ac_cv_host +else + ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5 +echo "${ECHO_T}$ac_cv_target" >&6; } +case $ac_cv_target in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 +echo "$as_me: error: invalid value of canonical target" >&2;} + { (exit 1); exit 1; }; };; +esac +target=$ac_cv_target +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_target +shift +target_cpu=$1 +target_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +target_os=$* +IFS=$ac_save_IFS +case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac + + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- +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 -f conftest.sed + + +am__api_version='1.10' + + + + test -n "$INSTALL" && kde_save_INSTALL_given=$INSTALL + test -n "$INSTALL_PROGRAM" && kde_save_INSTALL_PROGRAM_given=$INSTALL_PROGRAM + test -n "$INSTALL_SCRIPT" && kde_save_INSTALL_SCRIPT_given=$INSTALL_SCRIPT + # 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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done +IFS=$as_save_IFS + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ 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' + + + if test -z "$kde_save_INSTALL_given" ; then + # OK, user hasn't given any INSTALL, autoconf found one for us + # now we test, if it supports the -p flag + { echo "$as_me:$LINENO: checking for -p flag to install" >&5 +echo $ECHO_N "checking for -p flag to install... $ECHO_C" >&6; } + rm -f confinst.$$.* > /dev/null 2>&1 + echo "Testtest" > confinst.$$.orig + ac_res=no + if ${INSTALL} -p confinst.$$.orig confinst.$$.new > /dev/null 2>&1 ; then + if test -f confinst.$$.new ; then + # OK, -p seems to do no harm to install + INSTALL="${INSTALL} -p" + ac_res=yes + fi + fi + rm -f confinst.$$.* + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + fi + + if test -z "$kde_save_INSTALL_PROGRAM_given" ; then + INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)' + fi + if test -z "$kde_save_INSTALL_SCRIPT_given" ; then + INSTALL_SCRIPT='${INSTALL}' + fi + +{ 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; } +# 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 + +{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } +if test -z "$MKDIR_P"; then + if test "${ac_cv_path_mkdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done +done +IFS=$as_save_IFS + +fi + + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + test -d ./--version && rmdir ./--version + MKDIR_P="$ac_install_sh -d" + fi +fi +{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +echo "${ECHO_T}$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { 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 x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { 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 + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + { { 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 +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE=bibletime + VERSION=1.6.5.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"} + +install_sh=${install_sh-"\$(SHELL) $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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { 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 + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + + + + + + unset CDPATH + + + + kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin" + test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs" + if test -n "$KDEDIRS"; then + kde_save_IFS=$IFS + IFS=: + for dir in $KDEDIRS; do + kde_default_bindirs="$dir/bin $kde_default_bindirs " + done + IFS=$kde_save_IFS + fi + + if test "x$prefix" = "xNONE"; then + + { echo "$as_me:$LINENO: checking for kde-config" >&5 +echo $ECHO_N "checking for kde-config... $ECHO_C" >&6; } + if test -n "$KDECONFIG"; then + kde_cv_path="$KDECONFIG"; + else + kde_cache=`echo kde-config | sed 'y%./+-%__p_%'` + + if { as_var=kde_cv_path_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z "prepend"; then dirs="$kde_default_bindirs $dirs" + else dirs="$dirs $kde_default_bindirs" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/kde-config"; then + if test -n "" + then + evalstr="$dir/kde-config 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/kde-config" + break + fi + else + kde_cv_path="$dir/kde-config" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + +fi + + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + + { { echo "$as_me:$LINENO: error: The important program kde-config was not found! +Please check whether you installed KDE correctly. +" >&5 +echo "$as_me: error: The important program kde-config was not found! +Please check whether you installed KDE correctly. +" >&2;} + { (exit 1); exit 1; }; } + + else + { echo "$as_me:$LINENO: result: $kde_cv_path" >&5 +echo "${ECHO_T}$kde_cv_path" >&6; } + KDECONFIG=$kde_cv_path + + fi + + else + kde_save_PATH="$PATH" + PATH="$exec_prefix/bin:$prefix/bin:$PATH" + + { echo "$as_me:$LINENO: checking for kde-config" >&5 +echo $ECHO_N "checking for kde-config... $ECHO_C" >&6; } + if test -n "$KDECONFIG"; then + kde_cv_path="$KDECONFIG"; + else + kde_cache=`echo kde-config | sed 'y%./+-%__p_%'` + + if { as_var=kde_cv_path_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z "prepend"; then dirs="$kde_default_bindirs $dirs" + else dirs="$dirs $kde_default_bindirs" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/kde-config"; then + if test -n "" + then + evalstr="$dir/kde-config 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/kde-config" + break + fi + else + kde_cv_path="$dir/kde-config" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + +fi + + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + + { { echo "$as_me:$LINENO: error: The important program kde-config was not found! +Please check whether you installed KDE correctly. +" >&5 +echo "$as_me: error: The important program kde-config was not found! +Please check whether you installed KDE correctly. +" >&2;} + { (exit 1); exit 1; }; } + + else + { echo "$as_me:$LINENO: result: $kde_cv_path" >&5 +echo "${ECHO_T}$kde_cv_path" >&6; } + KDECONFIG=$kde_cv_path + + fi + + PATH="$kde_save_PATH" + fi + + kde_libs_prefix=`$KDECONFIG --prefix` + if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then + { { echo "$as_me:$LINENO: error: $KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs. + This means it has been moved since you installed it. + This won't work. Please recompile kdelibs for the new prefix. + " >&5 +echo "$as_me: error: $KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs. + This means it has been moved since you installed it. + This won't work. Please recompile kdelibs for the new prefix. + " >&2;} + { (exit 1); exit 1; }; } + fi + kde_libs_htmldir=`$KDECONFIG --install html --expandvars` + kde_libs_suffix=`$KDECONFIG --libsuffix` + + { echo "$as_me:$LINENO: checking where to install" >&5 +echo $ECHO_N "checking where to install... $ECHO_C" >&6; } + if test "x$prefix" = "xNONE"; then + prefix=$kde_libs_prefix + { echo "$as_me:$LINENO: result: $prefix (as returned by kde-config)" >&5 +echo "${ECHO_T}$prefix (as returned by kde-config)" >&6; } + else + given_prefix=$prefix + { echo "$as_me:$LINENO: result: $prefix (as requested)" >&5 +echo "${ECHO_T}$prefix (as requested)" >&6; } + fi + + # And delete superfluous '/' to make compares easier + prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + + + + + + + # Check whether --enable-fast-perl was given. +if test "${enable_fast_perl+set}" = set; then + enableval=$enable_fast_perl; with_fast_perl=$enableval +else + with_fast_perl=yes +fi + + + + val= + if test -f $srcdir/configure.files ; then + val=`sed -e 's%^%\$(top_srcdir)/%' $srcdir/configure.files` + fi + CONF_FILES= + if test -n "$val" ; then + for i in $val ; do + CONF_FILES="$CONF_FILES $i" + done + fi + + + + +if test -z "3.0"; then + # Current default Qt version: 3.3 + kde_qtver=3 + kde_qtsubver=3 +else + kde_qtsubver=`echo "3.0" | sed -e 's#[0-9][0-9]*\.\([0-9][0-9]*\).*#\1#'` + # following is the check if subversion isnt found in passed argument + if test "$kde_qtsubver" = "3.0"; then + kde_qtsubver=1 + fi + kde_qtver=`echo "3.0" | sed -e 's#^\([0-9][0-9]*\)\..*#\1#'` + if test "$kde_qtver" = "1"; then + kde_qtsubver=42 + fi +fi + +if test -z ""; then + if test "$kde_qtver" = "2"; then + if test $kde_qtsubver -gt 0; then + kde_qt_minversion=">= Qt 2.2.2" + else + kde_qt_minversion=">= Qt 2.0.2" + fi + fi + if test "$kde_qtver" = "3"; then + if test $kde_qtsubver -gt 0; then + if test $kde_qtsubver -gt 1; then + if test $kde_qtsubver -gt 2; then + kde_qt_minversion=">= Qt 3.3" + else + kde_qt_minversion=">= Qt 3.2" + fi + else + kde_qt_minversion=">= Qt 3.1 (20021021)" + fi + else + kde_qt_minversion=">= Qt 3.0" + fi + fi + if test "$kde_qtver" = "1"; then + kde_qt_minversion=">= 1.42 and < 2.0" + fi +else + kde_qt_minversion="" +fi + +if test -z ""; then + if test $kde_qtver = 3; then + if test $kde_qtsubver -gt 0; then + kde_qt_verstring="QT_VERSION >= 0x03@VER@00 && QT_VERSION < 0x040000" + qtsubver=`echo "00$kde_qtsubver" | sed -e 's,.*\(..\)$,\1,'` + kde_qt_verstring=`echo $kde_qt_verstring | sed -e "s,@VER@,$qtsubver,"` + else + kde_qt_verstring="QT_VERSION >= 300 && QT_VERSION < 0x040000" + fi + fi + if test $kde_qtver = 2; then + if test $kde_qtsubver -gt 0; then + kde_qt_verstring="QT_VERSION >= 222" + else + kde_qt_verstring="QT_VERSION >= 200" + fi + fi + if test $kde_qtver = 1; then + kde_qt_verstring="QT_VERSION >= 142 && QT_VERSION < 200" + fi +else + kde_qt_verstring="" +fi + +if test $kde_qtver = 3; then + kde_qt_dirs="$QTDIR /usr/lib/qt3 /usr/lib/qt /usr/share/qt3" +fi +if test $kde_qtver = 2; then + kde_qt_dirs="$QTDIR /usr/lib/qt2 /usr/lib/qt" +fi +if test $kde_qtver = 1; then + kde_qt_dirs="$QTDIR /usr/lib/qt" +fi + + +ac_config_headers="$ac_config_headers config.h" + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +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 | grep -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 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 + + + + + + # Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then + enableval=$enable_debug; + case $enableval in + yes) + kde_use_debug_code="yes" + kde_use_debug_define=no + ;; + full) + kde_use_debug_code="full" + kde_use_debug_define=no + ;; + *) + kde_use_debug_code="no" + kde_use_debug_define=yes + ;; + esac + +else + kde_use_debug_code="no" + kde_use_debug_define=no + +fi + + + # Check whether --enable-dummyoption was given. +if test "${enable_dummyoption+set}" = set; then + enableval=$enable_dummyoption; +fi + + + # Check whether --enable-strict was given. +if test "${enable_strict+set}" = set; then + enableval=$enable_strict; + if test $enableval = "no"; then + kde_use_strict_options="no" + else + kde_use_strict_options="yes" + fi + +else + kde_use_strict_options="no" +fi + + + # Check whether --enable-warnings was given. +if test "${enable_warnings+set}" = set; then + enableval=$enable_warnings; + if test $enableval = "no"; then + kde_use_warnings="no" + else + kde_use_warnings="yes" + fi + +else + kde_use_warnings="yes" +fi + + + if test "$kde_use_debug_code" != "no"; then + kde_use_warnings=yes + fi + + # Check whether --enable-profile was given. +if test "${enable_profile+set}" = set; then + enableval=$enable_profile; kde_use_profiling=$enableval +else + kde_use_profiling="no" + +fi + + + CFLAGS=" $CFLAGS" + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { 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 + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { 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 +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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { 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.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { 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.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { 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 + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +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` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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[^ ]*//'` +# +# List of possible output files, starting from the most likely. +# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) +# only as a last resort. b.out is created by i960 compilers. +ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' +# +# The IRIX 6 linker writes into existing files which may not be +# executable, retaining their permissions. Remove them first so a +# subsequent execution test works. +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi + +{ echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6; } +if test -z "$ac_file"; then + 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 + +# Check that 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' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 that 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 { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 | *.map | *.inf | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + 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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; + *) 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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; 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 core 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 +{ 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 + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + 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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + 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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + 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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ 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 ISO C89" >&5 +echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_c89=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 -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6; } ;; + xno) + { echo "$as_me:$LINENO: result: unsupported" >&5 +echo "${ECHO_T}unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +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 + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + 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=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ 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 + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + + 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 { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.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 nonexistent 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 { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.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 { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.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 nonexistent 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 { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.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 + + + if test "$GCC" = "yes"; then + if test "$kde_use_debug_code" != "no"; then + if test $kde_use_debug_code = "full"; then + CFLAGS="-g3 -fno-inline $CFLAGS" + else + CFLAGS="-g -O2 $CFLAGS" + fi + else + CFLAGS="-O2 $CFLAGS" + fi + fi + + if test "$kde_use_debug_define" = "yes"; then + CFLAGS="-DNDEBUG $CFLAGS" + fi + + + case "$host" in + *-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";; + *-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";; + esac + + if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then + LDFLAGS="" + fi + + CXXFLAGS=" $CXXFLAGS" + + ac_ext=cpp +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 -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 +IFS=$as_save_IFS + +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 g++ c++ gpp aCC CC cxx cc++ cl.exe 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +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 + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +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` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; 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 core 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 +{ 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 + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + 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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CXXFLAGS="" + 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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + 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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +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 +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 + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_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 + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + 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=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + 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 + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + + + if test "$GXX" = "yes" || test "$CXX" = "KCC"; then + if test "$kde_use_debug_code" != "no"; then + if test "$CXX" = "KCC"; then + CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS" + else + if test "$kde_use_debug_code" = "full"; then + CXXFLAGS="-g3 -fno-inline $CXXFLAGS" + else + CXXFLAGS="-g -O2 $CXXFLAGS" + fi + fi + +{ echo "$as_me:$LINENO: checking whether $CXX supports -fno-builtin" >&5 +echo $ECHO_N "checking whether $CXX supports -fno-builtin... $ECHO_C" >&6; } +kde_cache=`echo fno-builtin | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + +ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fno-builtin" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + CXXFLAGS="-fno-builtin $CXXFLAGS" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + + +{ echo "$as_me:$LINENO: checking whether $CXX supports -Woverloaded-virtual" >&5 +echo $ECHO_N "checking whether $CXX supports -Woverloaded-virtual... $ECHO_C" >&6; } +kde_cache=`echo Woverloaded-virtual | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -Woverloaded-virtual" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + WOVERLOADED_VIRTUAL="-Woverloaded-virtual" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + WOVERLOADED_VRITUAL="" +fi + + + else + if test "$CXX" = "KCC"; then + CXXFLAGS="+K3 $CXXFLAGS" + else + CXXFLAGS="-O2 $CXXFLAGS" + fi + fi + fi + + if test "$kde_use_debug_define" = "yes"; then + CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS" + fi + + if test "$kde_use_profiling" = "yes"; then + +{ echo "$as_me:$LINENO: checking whether $CXX supports -pg" >&5 +echo $ECHO_N "checking whether $CXX supports -pg... $ECHO_C" >&6; } +kde_cache=`echo pg | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -pg" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + + CFLAGS="-pg $CFLAGS" + CXXFLAGS="-pg $CXXFLAGS" + +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + fi + + if test "$kde_use_warnings" = "yes"; then + if test "$GCC" = "yes"; then + CXXFLAGS="-Wall -W -Wpointer-arith -Wwrite-strings $CXXFLAGS" + case $host in + *-*-linux-gnu) + CFLAGS="-std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS" + CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts $CXXFLAGS" + +{ echo "$as_me:$LINENO: checking whether $CXX supports -Wmissing-format-attribute" >&5 +echo $ECHO_N "checking whether $CXX supports -Wmissing-format-attribute... $ECHO_C" >&6; } +kde_cache=`echo Wmissing-format-attribute | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -Wmissing-format-attribute" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + +{ echo "$as_me:$LINENO: checking whether $CC supports -Wmissing-format-attribute" >&5 +echo $ECHO_N "checking whether $CC supports -Wmissing-format-attribute... $ECHO_C" >&6; } +kde_cache=`echo Wmissing-format-attribute | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cc_$kde_cache; eval "test \"\${$as_var+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 + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wmissing-format-attribute" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cc_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi + +if eval "test \"`echo '$kde_cv_prog_cc_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + ;; + esac + +{ echo "$as_me:$LINENO: checking whether $CXX supports -Wundef" >&5 +echo $ECHO_N "checking whether $CXX supports -Wundef... $ECHO_C" >&6; } +kde_cache=`echo Wundef | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -Wundef" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + CXXFLAGS="-Wundef $CXXFLAGS" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + +{ echo "$as_me:$LINENO: checking whether $CXX supports -Wno-long-long" >&5 +echo $ECHO_N "checking whether $CXX supports -Wno-long-long... $ECHO_C" >&6; } +kde_cache=`echo Wno-long-long | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -Wno-long-long" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + CXXFLAGS="-Wno-long-long $CXXFLAGS" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + +{ echo "$as_me:$LINENO: checking whether $CXX supports -Wnon-virtual-dtor" >&5 +echo $ECHO_N "checking whether $CXX supports -Wnon-virtual-dtor... $ECHO_C" >&6; } +kde_cache=`echo Wnon-virtual-dtor | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -Wnon-virtual-dtor" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + CXXFLAGS="-Wnon-virtual-dtor $CXXFLAGS" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + fi + fi + + if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then + CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS" + fi + + # Check whether --enable-pch was given. +if test "${enable_pch+set}" = set; then + enableval=$enable_pch; kde_use_pch=$enableval +else + kde_use_pch=no +fi + + + HAVE_GCC_VISIBILITY=0 + + + if test "$GXX" = "yes"; then + +{ echo "$as_me:$LINENO: checking whether $CXX supports -fno-exceptions" >&5 +echo $ECHO_N "checking whether $CXX supports -fno-exceptions... $ECHO_C" >&6; } +kde_cache=`echo fno-exceptions | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fno-exceptions" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + CXXFLAGS="$CXXFLAGS -fno-exceptions" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + +{ echo "$as_me:$LINENO: checking whether $CXX supports -fno-check-new" >&5 +echo $ECHO_N "checking whether $CXX supports -fno-check-new... $ECHO_C" >&6; } +kde_cache=`echo fno-check-new | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fno-check-new" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + CXXFLAGS="$CXXFLAGS -fno-check-new" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + +{ echo "$as_me:$LINENO: checking whether $CXX supports -fno-common" >&5 +echo $ECHO_N "checking whether $CXX supports -fno-common... $ECHO_C" >&6; } +kde_cache=`echo fno-common | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fno-common" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + CXXFLAGS="$CXXFLAGS -fno-common" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + +{ echo "$as_me:$LINENO: checking whether $CXX supports -fexceptions" >&5 +echo $ECHO_N "checking whether $CXX supports -fexceptions... $ECHO_C" >&6; } +kde_cache=`echo fexceptions | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fexceptions" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + USE_EXCEPTIONS="-fexceptions" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + USE_EXCEPTIONS= +fi + + ENABLE_PERMISSIVE_FLAG="-fpermissive" + + if test "$kde_use_pch" = "yes"; then + { echo "$as_me:$LINENO: checking whether gcc supports precompiling c header files" >&5 +echo $ECHO_N "checking whether gcc supports precompiling c header files... $ECHO_C" >&6; } + echo >conftest.h + if $CC -x c-header conftest.h >/dev/null 2>/dev/null; then + kde_gcc_supports_pch=yes + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + else + kde_gcc_supports_pch=no + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + fi + if test "$kde_gcc_supports_pch" = "yes"; then + { echo "$as_me:$LINENO: checking whether gcc supports precompiling c++ header files" >&5 +echo $ECHO_N "checking whether gcc supports precompiling c++ header files... $ECHO_C" >&6; } + if $CXX -x c++-header conftest.h >/dev/null 2>/dev/null; then + kde_gcc_supports_pch=yes + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + else + kde_gcc_supports_pch=no + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + fi + fi + rm -f conftest.h conftest.h.gch + fi + fi + if test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes"; then + unsermake_enable_pch_TRUE= + unsermake_enable_pch_FALSE='#' +else + unsermake_enable_pch_TRUE='#' + unsermake_enable_pch_FALSE= +fi + + if test "$CXX" = "KCC"; then + + if test "$kde_use_pch" = "yes"; then + +{ echo "$as_me:$LINENO: checking whether $CXX supports --pch" >&5 +echo $ECHO_N "checking whether $CXX supports --pch... $ECHO_C" >&6; } +kde_cache=`echo -pch | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS --pch" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + CXXFLAGS="$CXXFLAGS --pch" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + fi + +{ echo "$as_me:$LINENO: checking whether $CXX supports --inline_keyword_space_time=6" >&5 +echo $ECHO_N "checking whether $CXX supports --inline_keyword_space_time=6... $ECHO_C" >&6; } +kde_cache=`echo -inline_keyword_space_time=6 | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + +{ echo "$as_me:$LINENO: checking whether $CXX supports --inline_auto_space_time=2" >&5 +echo $ECHO_N "checking whether $CXX supports --inline_auto_space_time=2... $ECHO_C" >&6; } +kde_cache=`echo -inline_auto_space_time=2 | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + +{ echo "$as_me:$LINENO: checking whether $CXX supports --inline_implicit_space_time=2.0" >&5 +echo $ECHO_N "checking whether $CXX supports --inline_implicit_space_time=2.0... $ECHO_C" >&6; } +kde_cache=`echo -inline_implicit_space_time=2.0 | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + +{ echo "$as_me:$LINENO: checking whether $CXX supports --inline_generated_space_time=2.0" >&5 +echo $ECHO_N "checking whether $CXX supports --inline_generated_space_time=2.0... $ECHO_C" >&6; } +kde_cache=`echo -inline_generated_space_time=2.0 | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + +{ echo "$as_me:$LINENO: checking whether $CXX supports --one_per" >&5 +echo $ECHO_N "checking whether $CXX supports --one_per... $ECHO_C" >&6; } +kde_cache=`echo -one_per | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS --one_per" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + CXXFLAGS="$CXXFLAGS --one_per" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + fi + + USE_RTTI= + + + case "$host" in + *-*-irix*) test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;; + *-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";; + *-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";; + *-*-solaris*) + if test "$GXX" = yes; then + libstdcpp=`$CXX -print-file-name=libstdc++.so` + if test ! -f $libstdcpp; then + { { echo "$as_me:$LINENO: error: You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so" >&5 +echo "$as_me: error: You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so" >&2;} + { (exit 1); exit 1; }; } + fi + fi + ;; + esac + + if test "x$kde_use_qt_emb" != "xyes"; then + __val=$CXX + __forbid=" -fno-rtti -rpath " + if test -n "$__val"; then + __new="" + ac_save_IFS=$IFS + IFS=" " + for i in $__val; do + case "$__forbid" in + *" $i "*) { echo "$as_me:$LINENO: WARNING: found forbidden $i in CXX, removing it" >&5 +echo "$as_me: WARNING: found forbidden $i in CXX, removing it" >&2;} ;; + *) # Careful to not add spaces, where there were none, because otherwise + # libtool gets confused, if we change e.g. CXX + if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;; + esac + done + IFS=$ac_save_IFS + CXX=$__new + fi + + __val=$CXXFLAGS + __forbid=" -fno-rtti -rpath " + if test -n "$__val"; then + __new="" + ac_save_IFS=$IFS + IFS=" " + for i in $__val; do + case "$__forbid" in + *" $i "*) { echo "$as_me:$LINENO: WARNING: found forbidden $i in CXXFLAGS, removing it" >&5 +echo "$as_me: WARNING: found forbidden $i in CXXFLAGS, removing it" >&2;} ;; + *) # Careful to not add spaces, where there were none, because otherwise + # libtool gets confused, if we change e.g. CXX + if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;; + esac + done + IFS=$ac_save_IFS + CXXFLAGS=$__new + fi + +else + __val=$CXX + __forbid=" -rpath " + if test -n "$__val"; then + __new="" + ac_save_IFS=$IFS + IFS=" " + for i in $__val; do + case "$__forbid" in + *" $i "*) { echo "$as_me:$LINENO: WARNING: found forbidden $i in CXX, removing it" >&5 +echo "$as_me: WARNING: found forbidden $i in CXX, removing it" >&2;} ;; + *) # Careful to not add spaces, where there were none, because otherwise + # libtool gets confused, if we change e.g. CXX + if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;; + esac + done + IFS=$ac_save_IFS + CXX=$__new + fi + + __val=$CXXFLAGS + __forbid=" -rpath " + if test -n "$__val"; then + __new="" + ac_save_IFS=$IFS + IFS=" " + for i in $__val; do + case "$__forbid" in + *" $i "*) { echo "$as_me:$LINENO: WARNING: found forbidden $i in CXXFLAGS, removing it" >&5 +echo "$as_me: WARNING: found forbidden $i in CXXFLAGS, removing it" >&2;} ;; + *) # Careful to not add spaces, where there were none, because otherwise + # libtool gets confused, if we change e.g. CXX + if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;; + esac + done + IFS=$ac_save_IFS + CXXFLAGS=$__new + fi + +fi + + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 +echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; } +if test -z "$CXXCPP"; then + if test "${ac_cv_prog_CXXCPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # 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 { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.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 nonexistent 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 { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.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_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ echo "$as_me:$LINENO: result: $CXXCPP" >&5 +echo "${ECHO_T}$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # 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 { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.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 nonexistent 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 { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.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 \"$CXXCPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C++ preprocessor \"$CXXCPP\" 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 + + + if test "$GCC" = yes; then + NOOPT_CFLAGS=-O0 + fi + +{ echo "$as_me:$LINENO: checking whether $CXX supports -O0" >&5 +echo $ECHO_N "checking whether $CXX supports -O0... $ECHO_C" >&6; } +kde_cache=`echo O0 | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -O0" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + NOOPT_CXXFLAGS=-O0 +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + + # Check whether --enable-coverage was given. +if test "${enable_coverage+set}" = set; then + enableval=$enable_coverage; + if test "$am_cv_CC_dependencies_compiler_type" = "gcc3"; then + ac_coverage_compiler="-fprofile-arcs -ftest-coverage" + ac_coverage_linker="-lgcc" + elif test "$am_cv_CC_dependencies_compiler_type" = "gcc"; then + ac_coverage_compiler="-fprofile-arcs -ftest-coverage" + ac_coverage_linker="" + else + { { echo "$as_me:$LINENO: error: coverage with your compiler is not supported" >&5 +echo "$as_me: error: coverage with your compiler is not supported" >&2;} + { (exit 1); exit 1; }; } + fi + CFLAGS="$CFLAGS $ac_coverage_compiler" + CXXFLAGS="$CXXFLAGS $ac_coverage_compiler" + LDFLAGS="$LDFLAGS $ac_coverage_linker" + +fi + + + + + + + + # Check whether --enable-new_ldflags was given. +if test "${enable_new_ldflags+set}" = set; then + enableval=$enable_new_ldflags; kde_use_new_ldflags=$enableval +else + kde_use_new_ldflags=no +fi + + + LDFLAGS_AS_NEEDED="" + LDFLAGS_NEW_DTAGS="" + if test "x$kde_use_new_ldflags" = "xyes"; then + LDFLAGS_NEW_DTAGS="" + +{ echo "$as_me:$LINENO: checking whether $CXX supports -Wl,--enable-new-dtags" >&5 +echo $ECHO_N "checking whether $CXX supports -Wl,--enable-new-dtags... $ECHO_C" >&6; } +kde_cache=`echo Wl,--enable-new-dtags | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -Wl,--enable-new-dtags" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + LDFLAGS_NEW_DTAGS="-Wl,--enable-new-dtags" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + + +{ echo "$as_me:$LINENO: checking whether $CXX supports -Wl,--as-needed" >&5 +echo $ECHO_N "checking whether $CXX supports -Wl,--as-needed... $ECHO_C" >&6; } +kde_cache=`echo Wl,--as-needed | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -Wl,--as-needed" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + LDFLAGS_AS_NEEDED="-Wl,--as-needed" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + fi + + + + + # Check whether --enable-final was given. +if test "${enable_final+set}" = set; then + enableval=$enable_final; kde_use_final=$enableval +else + kde_use_final=no +fi + + + if test "x$kde_use_final" = "xyes"; then + KDE_USE_FINAL_TRUE="" + KDE_USE_FINAL_FALSE="#" + else + KDE_USE_FINAL_TRUE="#" + KDE_USE_FINAL_FALSE="" + fi + + + + + # Check whether --enable-closure was given. +if test "${enable_closure+set}" = set; then + enableval=$enable_closure; kde_use_closure=$enableval +else + kde_use_closure=no +fi + + + KDE_NO_UNDEFINED="" + if test "x$kde_use_closure" = "xyes"; then + KDE_USE_CLOSURE_TRUE="" + KDE_USE_CLOSURE_FALSE="#" +# CXXFLAGS="$CXXFLAGS $REPO" + else + KDE_USE_CLOSURE_TRUE="#" + KDE_USE_CLOSURE_FALSE="" + KDE_NO_UNDEFINED="" + case $host in + *-*-linux-gnu) + +{ echo "$as_me:$LINENO: checking whether $CXX supports -Wl,--no-undefined" >&5 +echo $ECHO_N "checking whether $CXX supports -Wl,--no-undefined... $ECHO_C" >&6; } +kde_cache=`echo Wl,--no-undefined | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -Wl,--no-undefined" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + +{ echo "$as_me:$LINENO: checking whether $CXX supports -Wl,--allow-shlib-undefined" >&5 +echo $ECHO_N "checking whether $CXX supports -Wl,--allow-shlib-undefined... $ECHO_C" >&6; } +kde_cache=`echo Wl,--allow-shlib-undefined | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -Wl,--allow-shlib-undefined" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + KDE_NO_UNDEFINED="-Wl,--no-undefined -Wl,--allow-shlib-undefined" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + KDE_NO_UNDEFINED="" +fi + +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + KDE_NO_UNDEFINED="" +fi + + ;; + esac + fi + + + + + + # Check whether --enable-nmcheck was given. +if test "${enable_nmcheck+set}" = set; then + enableval=$enable_nmcheck; kde_use_nmcheck=$enableval +else + kde_use_nmcheck=no +fi + + + if test "$kde_use_nmcheck" = "yes"; then + KDE_USE_NMCHECK_TRUE="" + KDE_USE_NMCHECK_FALSE="#" + else + KDE_USE_NMCHECK_TRUE="#" + KDE_USE_NMCHECK_FALSE="" + fi + + + + + + +CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS" +# Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=no +fi + + +# Check whether --enable-static was given. +if test "${enable_static+set}" = set; then + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + kdelibsuff="$kde_libs_suffix" + if test -z "$kdelibsuff"; then + kdelibsuff=no + fi + # Check whether --enable-libsuffix was given. +if test "${enable_libsuffix+set}" = set; then + enableval=$enable_libsuffix; kdelibsuff=$enableval +fi + + # TODO: add an auto case that compiles a little C app to check + # where the glibc is + if test "$kdelibsuff" = "no"; then + kdelibsuff= + fi + if test -z "$kdelibsuff"; then + { echo "$as_me:$LINENO: result: not using lib directory suffix" >&5 +echo "${ECHO_T}not using lib directory suffix" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define KDELIBSUFF "" +_ACEOF + + else + if test "$libdir" = '${exec_prefix}/lib'; then + libdir="$libdir${kdelibsuff}" + libdir="$libdir" + fi + +cat >>confdefs.h <<_ACEOF +#define KDELIBSUFF "${kdelibsuff}" +_ACEOF + + { echo "$as_me:$LINENO: result: using lib directory suffix $kdelibsuff" >&5 +echo "${ECHO_T}using lib directory suffix $kdelibsuff" >&6; } + fi + +# Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + +{ 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_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && break + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done + +fi + +SED=$lt_cv_path_SED +{ echo "$as_me:$LINENO: result: $SED" >&5 +echo "${ECHO_T}$SED" >&6; } + +{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Extract the first word of "grep ggrep" to use in msg output +if test -z "$GREP"; then +set dummy grep ggrep; ac_prog_name=$2 +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_GREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + # Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_GREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +GREP="$ac_cv_path_GREP" +if test -z "$GREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_GREP=$GREP +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +echo "${ECHO_T}$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } +if test "${ac_cv_path_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_path_EGREP="$GREP -E" + else + # Extract the first word of "egrep" to use in msg output +if test -z "$EGREP"; then +set dummy egrep; ac_prog_name=$2 +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_EGREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + # Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_EGREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +EGREP="$ac_cv_path_EGREP" +if test -z "$EGREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_EGREP=$EGREP +fi + + + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +echo $ECHO_N "checking for ld used by $CC... $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. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { 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 + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +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. +case `$LD -v 2>&1 &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 +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' + +{ 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 + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + 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 + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + esac + fi + done + IFS="$lt_save_ifs" + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi +fi +{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 +echo "${ECHO_T}$lt_cv_path_NM" >&6; } +NM="$lt_cv_path_NM" + +{ 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 extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +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*) + lt_cv_deplibs_check_method=pass_all + ;; + +mingw* | pw32*) + # win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='win32_libid' + ;; + +darwin* | rhapsody*) + # this will be overwritten by pass_all, but leave it in just in case + 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=`/System/Library/Frameworks/System.framework/System` + ;; + *) # Darwin 1.3 on + lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' + ;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +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_file_magic_cmd=/usr/bin/file + case "$host_cpu" in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +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*) + case $host_cpu in + alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* ) + lt_cv_deplibs_check_method=pass_all ;; + # the debian people say, arm and glibc 2.3.1 works for them with pass_all + arm* ) + 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]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +nto-qnx*) + lt_cv_deplibs_check_method=unknown + ;; + +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 + ;; + +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 + ;; + +sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +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 +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$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 + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line 8230 "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 + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > 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.o`" in + *32-bit*) + LINUX_64_MODE="32" + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + LINUX_64_MODE="64" + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { 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 { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 + +need_locks="$enable_libtool_lock" + + + +{ 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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; 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 core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >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 +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 core.conftest.* 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 { as_var=$as_ac_Header; eval "test \"\${$as_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. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; 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 core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +for ac_header in dlfcn.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; 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 core 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 { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.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;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&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 + +ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +if test -n "$ac_tool_prefix"; then + for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn + 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_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$F77"; then + ac_cv_prog_F77="$F77" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_F77="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +F77=$ac_cv_prog_F77 +if test -n "$F77"; then + { echo "$as_me:$LINENO: result: $F77" >&5 +echo "${ECHO_T}$F77" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$F77" && break + done +fi +if test -z "$F77"; then + ac_ct_F77=$F77 + for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn +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_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_F77"; then + ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_F77="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_F77=$ac_cv_prog_ac_ct_F77 +if test -n "$ac_ct_F77"; then + { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 +echo "${ECHO_T}$ac_ct_F77" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_F77" && break +done + + if test "x$ac_ct_F77" = x; then + F77="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + F77=$ac_ct_F77 + fi +fi + + +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +rm -f a.out + +# If we don't use `.F' as extension, the preprocessor is not run on the +# input file. (Note that this only needs to work for GNU compilers.) +ac_save_ext=$ac_ext +ac_ext=F +{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; } +if test "${ac_cv_f77_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF + program main +#ifndef __GNUC__ + choke me +#endif + + end +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; 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 core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_f77_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; } +ac_ext=$ac_save_ext +ac_test_FFLAGS=${FFLAGS+set} +ac_save_FFLAGS=$FFLAGS +FFLAGS= +{ echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 +echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_f77_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + FFLAGS=-g +cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_f77_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_prog_f77_g=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 +echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; } +if test "$ac_test_FFLAGS" = set; then + FFLAGS=$ac_save_FFLAGS +elif test $ac_cv_prog_f77_g = yes; then + if test "x$ac_cv_f77_compiler_gnu" = xyes; then + FFLAGS="-g -O2" + else + FFLAGS="-g" + fi +else + if test "x$ac_cv_f77_compiler_gnu" = xyes; then + FFLAGS="-O2" + else + FFLAGS= + fi +fi + +G77=`test $ac_compiler_gnu = yes && echo yes` +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 + + + +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! + +# find the maximum length of command line arguments +{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 +echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; } +if test "${lt_cv_sys_max_cmd_len+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + i=0 + testring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + *) + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while (test "X"`$CONFIG_SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \ + = "XX$testring") >/dev/null 2>&1 && + new_result=`expr "X$testring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + testring=$testring$testring + done + testring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 +echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } +else + { echo "$as_me:$LINENO: result: none" >&5 +echo "${ECHO_T}none" >&6; } +fi + + + + +# 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 from $compiler object" >&5 +echo $ECHO_N "checking command to parse $NM output from $compiler object... $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_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (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 + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_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 $build_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. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGISTW]' ;; +esac + +# 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 grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' 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_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#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/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { (eval echo "$as_me:$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="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -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 + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { 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 + +{ echo "$as_me:$LINENO: checking for objdir" >&5 +echo $ECHO_N "checking for objdir... $ECHO_C" >&6; } +if test "${lt_cv_objdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 +echo "${ECHO_T}$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +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' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_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" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { echo "$as_me:$LINENO: result: $AR" >&5 +echo "${ECHO_T}$AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ 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_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 +echo "${ECHO_T}$ac_ct_AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { 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 + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { 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 + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + + +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 "$LTCC" && LTCC=$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 "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# 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 + +# 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_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&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="$lt_save_ifs" + MAGIC_CMD="$lt_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_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&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="$lt_save_ifs" + MAGIC_CMD="$lt_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 + +enable_dlopen=yes +enable_win32_dll=no + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then + withval=$with_pic; pic_mode="$withval" +else + pic_mode=default +fi + +test -z "$pic_mode" && pic_mode=default + +# Use C for the default configuration in the libtool script +tagname= +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}\n' + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# +# Check for any special shared library compilation flags. +# +lt_prog_cc_shlib= +if test "$GCC" = no; then + case $host_os in + sco3.2v5*) + lt_prog_cc_shlib='-belf' + ;; + esac +fi +if test -n "$lt_prog_cc_shlib"; then + { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5 +echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;} + if echo "$old_CC $old_CFLAGS " | grep "[ ]$lt_prog_cc_shlib[ ]" >/dev/null; then : + else + { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5 +echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;} + lt_cv_prog_cc_can_build_shared=no + fi +fi + + +# +# Check to make sure the static flag actually works. +# +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_prog_compiler_static" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; 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 + # Append any errors to the config.log. + cat conftest.err 1>&5 + else + lt_prog_compiler_static_works=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; } + +if test x"$lt_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag=' -fno-builtin' + + +{ 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; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:9971: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:9975: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s conftest.err; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + +lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + +{ 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 "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + 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_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | 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_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + linux*) + case $CC in + icc* | ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + sco3.2v5*) + lt_prog_compiler_pic='-Kpic' + lt_prog_compiler_static='-dn' + ;; + + solaris*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:10204: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:10208: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s conftest.err; then + lt_prog_compiler_pic_works=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; } + +if test x"$lt_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi +case "$host_os" in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ 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_prog_compiler_c_o+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + # 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 . + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:10271: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:10275: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s out/conftest.err; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . + $rm conftest* out/* + rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { 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 + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag= + enable_shared_with_static_runtimes=no + 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_libdir_flag_spec= + hardcode_libdir_flag_spec_ld= + hardcode_libdir_separator= + hardcode_direct=no + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + link_all_deplibs=unknown + hardcode_automatic=no + module_cmds= + module_expsym_cmds= + 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 extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms="_GLOBAL_OFFSET_TABLE_" + # 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/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + 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 + 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 + + # 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't use + # them. + ld_shlibs=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + allow_undefined_flag=no + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris* | sysv5*) + if $LD -v 2>&1 | grep '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 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${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 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${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' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + 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 + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + + # KDE requires run time linking. Make it the default. + aix_use_runtimelinking=yes + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + + if test "$GCC" = yes; then + case $host_os in aix4.012|aix4.012.*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + 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 + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='-qmkshrobj ${wl}-G' + else + shared_flag='-qmkshrobj' + fi + fi + fi + + # Let the compiler handle the export list. + always_export_symbols=no + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >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 { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_cmds="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag" + archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + 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 { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + # -bexpall does not export symbols beginning with underscore (_) + always_export_symbols=yes + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec=' ' + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds it's shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + + bsdi4*) + export_dynamic_flag_spec=-rdynamic + ;; + + 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=no + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $compiler_flags $libobjs `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"`' + enable_shared_with_static_runtimes=yes + ;; + + darwin* | rhapsody*) + if test "$GXX" = yes ; then + archive_cmds_need_lc=no + case "$host_os" in + rhapsody* | darwin1.[012]) + allow_undefined_flag='-Wl,-undefined -Wl,suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.012) + allow_undefined_flag='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + ;; + 10.*) + allow_undefined_flag='-Wl,-undefined -Wl,dynamic_lookup' + ;; + esac + fi + ;; + esac + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_cmds='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' + else + archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring' + fi + module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + whole_archive_flag_spec='-all_load $convenience' + link_all_deplibs=yes + else + ld_shlibs=no + fi + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + freebsd1*) + ld_shlibs=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd*) + archive_cmds='$CC -shared -o $lib $compiler_flags $libobjs $deplibs' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10* | hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*|ia64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + ;; + *) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs' + ;; + esac + else + case "$host_cpu" in + hppa*64*|ia64*) + archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' + ;; + *) + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec_ld='+b $libdir' + hardcode_libdir_separator=: + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + ia64*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=no + hardcode_shlibpath_var=no + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + *) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + 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_ld='-rpath $libdir' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + 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 $compiler_flags $libobjs $deplibs' + 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 $compiler_flags $libobjs $deplibs' + 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 $compiler_flags $libobjs $deplibs$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} $compiler_flags $libobjs $deplibs ${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} $compiler_flags $libobjs $deplibs ${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 "%s %s\\n" -exported_symbol "\$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 + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ;; + + solaris*) + no_undefined_flag=' -z text' + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp' + else + 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' + fi + 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 $compiler_flags $libobjs $deplibs' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4.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 + ;; + + sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) + no_undefined_flag='${wl}-z ${wl}text' + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + else + archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + fi + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + 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 + ;; + + *) + 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 + +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 + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { 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; } + $rm conftest* + printf "$lt_simple_compile_test_code" > 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); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { (eval echo "$as_me:$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 + archive_cmds_need_lc=no + else + archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 +echo "${ECHO_T}$archive_cmds_need_lc" >&6; } + ;; + esac + fi + ;; +esac + +{ 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= +shrext=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +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}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + 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}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi4*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext='$(test .$module = .yes && echo .so || echo .dylib)' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd*-gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +freebsd*) + objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.01* | freebsdelf3.01*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + *) # from 3.2 on + 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}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case "$host_cpu" in + ia64*) + shrext='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + libsuff= + if test "x$LINUX_64_MODE" = x64; then + # Some platforms are per default 64-bit, so there's no /lib64 + if test -d /lib64; then + libsuff=64 + fi + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}" + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +sco3.2v5*) + version_type=osf + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + 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 + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +{ 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 " || \ + test "X$hardcode_automatic"="Xyes" ; 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 "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action" >&5 +echo "${ECHO_T}$hardcode_action" >&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 + +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 +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + { 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 + ;; + *) + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + ;; + esac +fi + +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + { 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +/* 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 +#endif + +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +/* 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 +#endif + +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 + + +# Report which librarie types wil actually be built +{ 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 + ;; + darwin* | rhapsody*) + if test "$GCC" = yes; then + archive_cmds_need_lc=no + case "$host_os" in + rhapsody* | darwin1.[012]) + allow_undefined_flag='-Wl,-undefined -Wl,suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.012) + allow_undefined_flag='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + ;; + 10.*) + allow_undefined_flag='-Wl,-undefined -Wl,dynamic_lookup' + ;; + esac + fi + ;; + esac + output_verbose_link_cmd='echo' + archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + whole_archive_flag_spec='-all_load $convenience' + link_all_deplibs=yes + else + ld_shlibs=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; } + +# The else 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 + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # 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 AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler \ + CC \ + LD \ + lt_prog_compiler_wl \ + lt_prog_compiler_pic \ + lt_prog_compiler_static \ + lt_prog_compiler_no_builtin_flag \ + export_dynamic_flag_spec \ + thread_safe_flag_spec \ + whole_archive_flag_spec \ + enable_shared_with_static_runtimes \ + old_archive_cmds \ + old_archive_from_new_cmds \ + predep_objects \ + postdep_objects \ + predeps \ + postdeps \ + compiler_lib_search_path \ + archive_cmds \ + archive_expsym_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + old_archive_from_expsyms_cmds \ + allow_undefined_flag \ + no_undefined_flag \ + export_symbols_cmds \ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ + hardcode_automatic \ + module_cmds \ + module_expsym_cmds \ + lt_cv_prog_compiler_c_o \ + exclude_expsyms \ + include_expsyms; do + + case $var in + old_archive_cmds | \ + old_archive_from_new_cmds | \ + archive_cmds | \ + archive_expsym_cmds | \ + module_cmds | \ + module_expsym_cmds | \ + old_archive_from_expsyms_cmds | \ + export_symbols_cmds | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_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 + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="${ofile}T" + trap "$rm \"$cfgfile\"; exit 1" 1 2 15 + $rm -f "$cfgfile" + { echo "$as_me:$LINENO: creating $ofile" >&5 +echo "$as_me: creating $ofile" >&6;} + + cat <<__EOF__ >> "$cfgfile" +#! $SHELL + +# `$echo "$cfgfile" | 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, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# 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 program 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 + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### 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=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# 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 + +# A C compiler. +LTCC=$lt_LTCC + +# A language-specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU C compiler? +with_gcc=$GCC + +# An ERE matcher. +EGREP=$lt_EGREP + +# 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_lt_prog_compiler_wl + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext='$shrext' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# 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_lt_prog_compiler_static + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_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 used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path + +# 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_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# 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 + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic + +# 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 >> "$cfgfile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || \ + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +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 + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + +# Check whether --with-tags was given. +if test "${with_tags+set}" = set; then + withval=$with_tags; tagnames="$withval" +fi + + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 +echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 +echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} + else + { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 +echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} + fi + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in + "") ;; + *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 +echo "$as_me: error: invalid tag name: $tagname" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 +echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} + { (exit 1); exit 1; }; } + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && test "X$CXX" != "Xno"; then + ac_ext=cpp +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 + + + + +archive_cmds_need_lc_CXX=no +allow_undefined_flag_CXX= +always_export_symbols_CXX=no +archive_expsym_cmds_CXX= +export_dynamic_flag_spec_CXX= +hardcode_direct_CXX=no +hardcode_libdir_flag_spec_CXX= +hardcode_libdir_flag_spec_ld_CXX= +hardcode_libdir_separator_CXX= +hardcode_minus_L_CXX=no +hardcode_automatic_CXX=no +module_cmds_CXX= +module_expsym_cmds_CXX= +link_all_deplibs_CXX=unknown +old_archive_cmds_CXX=$old_archive_cmds +no_undefined_flag_CXX= +whole_archive_flag_spec_CXX= +enable_shared_with_static_runtimes_CXX=no + +# Dependencies to place before and after the object being linked: +predep_objects_CXX= +postdep_objects_CXX= +predeps_CXX= +postdeps_CXX= +compiler_lib_search_path_CXX= + +# Source file extension for C++ test sources. +ac_ext=cc + +# Object file extension for compiled C++ test sources. +objext=o +objext_CXX=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(int, char *) { return(0); }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_LD=$LD +lt_save_GCC=$GCC +GCC=$GXX +lt_save_with_gnu_ld=$with_gnu_ld +lt_save_path_LD=$lt_cv_path_LD +if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx +else + unset lt_cv_prog_gnu_ld +fi +if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX +else + unset lt_cv_path_LD +fi +test -z "${LDCXX+set}" || LD=$LDCXX +CC=${CXX-"c++"} +compiler=$CC +compiler_CXX=$CC +cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' +else + lt_prog_compiler_no_builtin_flag_CXX= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +echo $ECHO_N "checking for ld used by $CC... $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. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { 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 + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +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. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + archive_cmds_CXX='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ + grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_CXX= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + archive_cmds_CXX='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + +else + GXX=no + with_gnu_ld=no + wlarc= +fi + +# PORTME: fill in a description of your system's C++ link characteristics +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } +ld_shlibs_CXX=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + 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 + # KDE requires run time linking. Make it the default. + aix_use_runtimelinking=yes + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_CXX='' + hardcode_direct_CXX=yes + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + + if test "$GXX" = yes; then + case $host_os in aix4.012|aix4.012.*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct_CXX=yes + else + # We have old collect2 + hardcode_direct_CXX=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_CXX=yes + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_libdir_separator_CXX= + fi + esac + shared_flag='-shared' + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='-qmkshrobj ${wl}-G' + else + shared_flag='-qmkshrobj' + fi + fi + fi + + # Let the compiler handle the export list. + always_export_symbols_CXX=no + 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_CXX='-berok' + # Determine the default libpath from the value encoded in an empty executable. + 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 { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + + archive_cmds_CXX="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag" + archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_CXX="-z nodefs" + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + 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 { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_CXX=' ${wl}-bernotok' + allow_undefined_flag_CXX=' ${wl}-berok' + # -bexpall does not export symbols beginning with underscore (_) + always_export_symbols_CXX=yes + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX=' ' + archive_cmds_need_lc_CXX=yes + # This is similar to how AIX traditionally builds it's shared libraries. + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + allow_undefined_flag_CXX=no + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + else + ld_shlibs_CXX=no + fi + ;; + + darwin* | rhapsody*) + if test "$GXX" = yes; then + archive_cmds_need_lc_CXX=no + case "$host_os" in + rhapsody* | darwin1.[012]) + allow_undefined_flag_CXX='-Wl,-undefined -Wl,suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag_CXX='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.012) + allow_undefined_flag_CXX='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + ;; + 10.*) + allow_undefined_flag_CXX='-Wl,-undefined -Wl,dynamic_lookup' + ;; + esac + fi + ;; + esac + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' + else + archive_cmds_CXX='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring' + fi + module_cmds_CXX='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' + + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + hardcode_direct_CXX=no + hardcode_automatic_CXX=yes + hardcode_shlibpath_var_CXX=unsupported + whole_archive_flag_spec_CXX='-all_load $convenience' + link_all_deplibs_CXX=yes + else + ld_shlibs_CXX=no + fi + ;; + + dgux*) + case $cc_basename in + ec++) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + ghcx) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + freebsd12*) + # C++ shared libraries reported to be fairly broken before switch to ELF + ld_shlibs_CXX=no + ;; + freebsd-elf*) + archive_cmds_need_lc_CXX=no + ;; + freebsd*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs_CXX=yes + ;; + gnu*) + ;; + hpux9*) + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='${wl}-E' + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC) + archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + case "$host_cpu" in + hppa*64*) + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec_ld_CXX='+b $libdir' + hardcode_libdir_separator_CXX=: + ;; + ia64*) + hardcode_libdir_flag_spec_CXX='-L$libdir' + ;; + *) + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='${wl}-E' + ;; + esac + fi + case "$host_cpu" in + hppa*64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + ;; + ia64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + *) + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC) + case "$host_cpu" in + hppa*64*|ia64*) + archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + ;; + *) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case "$host_cpu" in + ia64*|hppa*64*) + archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + irix5* | irix6*) + case $cc_basename in + CC) + # SGI C++ + archive_cmds_CXX='$CC -shared -all -multigot $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + archive_cmds_CXX='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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_CXX='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + link_all_deplibs_CXX=yes + ;; + esac + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + ;; + linux*) + case $cc_basename in + KCC) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' + archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc) + # Intel C++ + with_gnu_ld=yes + archive_cmds_need_lc_CXX=no + archive_cmds_CXX='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + cxx) + # Compaq C++ + archive_cmds_CXX='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + m88k*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + mvs*) + case $cc_basename in + cxx) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + osf3*) + case $cc_basename in + KCC) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx) + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + osf4* | osf5*) + case $cc_basename in + KCC) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' + ;; + RCC) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx) + allow_undefined_flag_CXX=' -expect_unresolved \*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~ + $rm $lib.exp' + + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + sco*) + archive_cmds_need_lc_CXX=no + case $cc_basename in + CC) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + lcc) + # Lucid + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC) + # Sun C++ 4.2, 5.x and Centerline C++ + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' + archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' + + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_shlibpath_var_CXX=no + case $host_os in + solaris2.0-5 | solaris2.0-5.*) ;; + *) + # The C++ compiler is used as linker so we must use $wl + # flag to pass the commands to the underlying system + # linker. + # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + link_all_deplibs_CXX=yes + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[LR]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + gcx) + # Green Hills C++ Compiler + archive_cmds_CXX='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + fi + + hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' + fi + ;; + esac + ;; + sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) + archive_cmds_need_lc_CXX=no + ;; + tandem*) + case $cc_basename in + NCC) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; +esac +{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 +echo "${ECHO_T}$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +GCC_CXX="$GXX" +LD_CXX="$LD" + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... + +cat > conftest.$ac_ext <&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + # The `*' in the case matches for architectures that use `case' in + # $output_verbose_cmd can trigger glob expansion during the loop + # eval without this substitution. + output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`" + + for p in `eval $output_verbose_link_cmd`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" \ + || test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p in + -L* | -R*) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$compiler_lib_search_path_CXX"; then + compiler_lib_search_path_CXX="${prev}${p}" + else + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$postdeps_CXX"; then + postdeps_CXX="${prev}${p}" + else + postdeps_CXX="${postdeps_CXX} ${prev}${p}" + fi + fi + ;; + + *.$objext|*.$libext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$predep_objects_CXX"; then + predep_objects_CXX="$p" + else + predep_objects_CXX="$predep_objects_CXX $p" + fi + else + if test -z "$postdep_objects_CXX"; then + postdep_objects_CXX="$p" + else + postdep_objects_CXX="$postdep_objects_CXX $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling CXX test program" +fi + +$rm -f confest.$objext + +case " $postdeps_CXX " in +*" -lc "*) archive_cmds_need_lc_CXX=no ;; +esac + +lt_prog_compiler_wl_CXX= +lt_prog_compiler_pic_CXX= +lt_prog_compiler_static_CXX= + +{ 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; } + + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + fi + ;; + 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_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | os2* | pw32*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_CXX='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + lt_prog_compiler_pic_CXX= + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_CXX=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + else + lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68) + # Green Hills C++ Compiler + # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++) + lt_prog_compiler_pic_CXX='-KPIC' + ;; + ghcx) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + freebsd*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" + if test "$host_cpu" != ia64; then + lt_prog_compiler_pic_CXX='+Z' + fi + ;; + aCC) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_CXX='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux*) + case $cc_basename in + KCC) + # KAI C++ Compiler + lt_prog_compiler_wl_CXX='--backend -Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + ;; + icpc) + # Intel C++ + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-static' + ;; + cxx) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx) + lt_prog_compiler_pic_CXX='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC) + lt_prog_compiler_wl_CXX='--backend -Wl,' + ;; + RCC) + # Rational C++ 2.4.1 + lt_prog_compiler_pic_CXX='-pic' + ;; + cxx) + # Digital/Compaq C++ + lt_prog_compiler_wl_CXX='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + sco*) + case $cc_basename in + CC) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + *) + ;; + esac + ;; + solaris*) + case $cc_basename in + CC) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + gcx) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC) + # Sun C++ 4.x + lt_prog_compiler_pic_CXX='-pic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + lcc) + # Lucid + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC) + # NonStop-UX NCC 3.20 + lt_prog_compiler_pic_CXX='-KPIC' + ;; + *) + ;; + esac + ;; + unixware*) + ;; + vxworks*) + ;; + *) + lt_prog_compiler_can_build_shared_CXX=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_CXX"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works_CXX=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:14616: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:14620: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s conftest.err; then + lt_prog_compiler_pic_works_CXX=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; } + +if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then + case $lt_prog_compiler_pic_CXX in + "" | " "*) ;; + *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; + esac +else + lt_prog_compiler_pic_CXX= + lt_prog_compiler_can_build_shared_CXX=no +fi + +fi +case "$host_os" in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_CXX= + ;; + *) + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" + ;; +esac + +{ 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_prog_compiler_c_o_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + # 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 . + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:14683: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:14687: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s out/conftest.err; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . + $rm conftest* out/* + rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_CXX" = 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 + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + export_symbols_cmds_CXX="$ltdll_cmds" + ;; + cygwin* | mingw*) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + +{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 +echo "${ECHO_T}$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_CXX" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_CXX=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_CXX 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; } + $rm conftest* + printf "$lt_simple_compile_test_code" > 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); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc_CXX=no + else + archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 +echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; } + ;; + esac + fi + ;; +esac + +{ 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= +shrext=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +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}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + 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}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi4*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext='$(test .$module = .yes && echo .so || echo .dylib)' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd*-gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +freebsd*) + objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.01* | freebsdelf3.01*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + *) # from 3.2 on + 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}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case "$host_cpu" in + ia64*) + shrext='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + libsuff= + if test "x$LINUX_64_MODE" = x64; then + # Some platforms are per default 64-bit, so there's no /lib64 + if test -d /lib64; then + libsuff=64 + fi + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}" + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +sco3.2v5*) + version_type=osf + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + 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 + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +{ 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_CXX= +if test -n "$hardcode_libdir_flag_spec_CXX" || \ + test -n "$runpath_var CXX" || \ + test "X$hardcode_automatic_CXX"="Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct_CXX" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && + test "$hardcode_minus_L_CXX" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_CXX=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_CXX=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_CXX=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 +echo "${ECHO_T}$hardcode_action_CXX" >&6; } + +if test "$hardcode_action_CXX" = 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 + +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 +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + { 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 + ;; + *) + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + ;; + esac +fi + +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + { 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +/* 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 +#endif + +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +/* 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 +#endif + +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 + + +# The else 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 + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # 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 AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_CXX \ + CC_CXX \ + LD_CXX \ + lt_prog_compiler_wl_CXX \ + lt_prog_compiler_pic_CXX \ + lt_prog_compiler_static_CXX \ + lt_prog_compiler_no_builtin_flag_CXX \ + export_dynamic_flag_spec_CXX \ + thread_safe_flag_spec_CXX \ + whole_archive_flag_spec_CXX \ + enable_shared_with_static_runtimes_CXX \ + old_archive_cmds_CXX \ + old_archive_from_new_cmds_CXX \ + predep_objects_CXX \ + postdep_objects_CXX \ + predeps_CXX \ + postdeps_CXX \ + compiler_lib_search_path_CXX \ + archive_cmds_CXX \ + archive_expsym_cmds_CXX \ + postinstall_cmds_CXX \ + postuninstall_cmds_CXX \ + old_archive_from_expsyms_cmds_CXX \ + allow_undefined_flag_CXX \ + no_undefined_flag_CXX \ + export_symbols_cmds_CXX \ + hardcode_libdir_flag_spec_CXX \ + hardcode_libdir_flag_spec_ld_CXX \ + hardcode_libdir_separator_CXX \ + hardcode_automatic_CXX \ + module_cmds_CXX \ + module_expsym_cmds_CXX \ + lt_cv_prog_compiler_c_o_CXX \ + exclude_expsyms_CXX \ + include_expsyms_CXX; do + + case $var in + old_archive_cmds_CXX | \ + old_archive_from_new_cmds_CXX | \ + archive_cmds_CXX | \ + archive_expsym_cmds_CXX | \ + module_cmds_CXX | \ + module_expsym_cmds_CXX | \ + old_archive_from_expsyms_cmds_CXX | \ + export_symbols_cmds_CXX | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_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 + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# 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=$archive_cmds_need_lc_CXX + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX + +# 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 + +# A C compiler. +LTCC=$lt_LTCC + +# A language-specific compiler. +CC=$lt_compiler_CXX + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_CXX + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_CXX + +# 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_lt_prog_compiler_wl_CXX + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext='$shrext' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX + +# 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_lt_prog_compiler_static_CXX + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX + +# 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_CXX +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_CXX + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_CXX + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_CXX + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_CXX + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_CXX + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_CXX + +# 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_CXX + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX + +# 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_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# 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_CXX + +# 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_CXX + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_CXX + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_CXX + +# 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_CXX + +# 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_CXX" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX + +# 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_CXX + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +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 + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +with_gnu_ld=$lt_save_with_gnu_ld +lt_cv_path_LDCXX=$lt_cv_path_LD +lt_cv_path_LD=$lt_save_path_LD +lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld +lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld + + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + +ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu + + +archive_cmds_need_lc_F77=no +allow_undefined_flag_F77= +always_export_symbols_F77=no +archive_expsym_cmds_F77= +export_dynamic_flag_spec_F77= +hardcode_direct_F77=no +hardcode_libdir_flag_spec_F77= +hardcode_libdir_flag_spec_ld_F77= +hardcode_libdir_separator_F77= +hardcode_minus_L_F77=no +hardcode_automatic_F77=no +module_cmds_F77= +module_expsym_cmds_F77= +link_all_deplibs_F77=unknown +old_archive_cmds_F77=$old_archive_cmds +no_undefined_flag_F77= +whole_archive_flag_spec_F77= +enable_shared_with_static_runtimes_F77=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +objext_F77=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code=" subroutine t\n return\n end\n" + +# Code to be used in simple link tests +lt_simple_link_test_code=" program t\n end\n" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${F77-"f77"} +compiler=$CC +compiler_F77=$CC +cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` + +{ 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*) + test "$enable_shared" = yes && enable_static=no + ;; +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; } + +test "$ld_shlibs_F77" = no && can_build_shared=no + +GCC_F77="$G77" +LD_F77="$LD" + +lt_prog_compiler_wl_F77= +lt_prog_compiler_pic_F77= +lt_prog_compiler_static_F77= + +{ 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 "$GCC" = yes; then + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_static_F77='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_F77='-Bstatic' + fi + ;; + + 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_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + 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_prog_compiler_pic_F77='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_F77='-fno-common' + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared_F77=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_F77=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_F77='-fPIC' + ;; + esac + ;; + + *) + lt_prog_compiler_pic_F77='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl_F77='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_F77='-Bstatic' + else + lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + 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_prog_compiler_pic_F77='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl_F77='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_F77='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static_F77='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl_F77='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static_F77='-non_shared' + ;; + + newsos6) + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + linux*) + case $CC in + icc* | ecc*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-static' + ;; + ccc*) + lt_prog_compiler_wl_F77='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static_F77='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl_F77='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static_F77='-non_shared' + ;; + + sco3.2v5*) + lt_prog_compiler_pic_F77='-Kpic' + lt_prog_compiler_static_F77='-dn' + ;; + + solaris*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + sunos4*) + lt_prog_compiler_wl_F77='-Qoption ld ' + lt_prog_compiler_pic_F77='-PIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic_F77='-Kconform_pic' + lt_prog_compiler_static_F77='-Bstatic' + fi + ;; + + uts4*) + lt_prog_compiler_pic_F77='-pic' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared_F77=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_F77"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works_F77=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_F77" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:16907: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:16911: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s conftest.err; then + lt_prog_compiler_pic_works_F77=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; } + +if test x"$lt_prog_compiler_pic_works_F77" = xyes; then + case $lt_prog_compiler_pic_F77 in + "" | " "*) ;; + *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; + esac +else + lt_prog_compiler_pic_F77= + lt_prog_compiler_can_build_shared_F77=no +fi + +fi +case "$host_os" in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_F77= + ;; + *) + lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" + ;; +esac + +{ 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_prog_compiler_c_o_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_F77=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + # 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 . + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:16974: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:16978: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s out/conftest.err; then + lt_cv_prog_compiler_c_o_F77=yes + fi + fi + chmod u+w . + $rm conftest* out/* + rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_F77" = 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 + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag_F77= + enable_shared_with_static_runtimes_F77=no + archive_cmds_F77= + archive_expsym_cmds_F77= + old_archive_From_new_cmds_F77= + old_archive_from_expsyms_cmds_F77= + export_dynamic_flag_spec_F77= + whole_archive_flag_spec_F77= + thread_safe_flag_spec_F77= + hardcode_libdir_flag_spec_F77= + hardcode_libdir_flag_spec_ld_F77= + hardcode_libdir_separator_F77= + hardcode_direct_F77=no + hardcode_minus_L_F77=no + hardcode_shlibpath_var_F77=unsupported + link_all_deplibs_F77=unknown + hardcode_automatic_F77=no + module_cmds_F77= + module_expsym_cmds_F77= + always_export_symbols_F77=no + export_symbols_cmds_F77='$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_F77= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms_F77="_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_F77=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/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs_F77=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 + fi + ;; + + amigaos*) + archive_cmds_F77='$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_F77='-L$libdir' + hardcode_minus_L_F77=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't use + # them. + ld_shlibs_F77=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_F77=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_F77='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_F77=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_F77='-L$libdir' + allow_undefined_flag_F77=no + always_export_symbols_F77=no + enable_shared_with_static_runtimes_F77=yes + export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris* | sysv5*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs_F77=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 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_F77=no + fi + ;; + + sunos4*) + archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_F77=no + fi + ;; + esac + + if test "$ld_shlibs_F77" = yes; then + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_F77='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_F77= + fi + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag_F77=unsupported + always_export_symbols_F77=yes + archive_expsym_cmds_F77='$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_F77=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_F77=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 + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + + # KDE requires run time linking. Make it the default. + aix_use_runtimelinking=yes + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_F77='' + hardcode_direct_F77=yes + hardcode_libdir_separator_F77=':' + link_all_deplibs_F77=yes + + if test "$GCC" = yes; then + case $host_os in aix4.012|aix4.012.*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct_F77=yes + else + # We have old collect2 + hardcode_direct_F77=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_F77=yes + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_libdir_separator_F77= + fi + esac + shared_flag='-shared' + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='-qmkshrobj ${wl}-G' + else + shared_flag='-qmkshrobj' + fi + fi + fi + + # Let the compiler handle the export list. + always_export_symbols_F77=no + 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_F77='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_cmds_F77="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag" + archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_F77="-z nodefs" + archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_F77=' ${wl}-bernotok' + allow_undefined_flag_F77=' ${wl}-berok' + # -bexpall does not export symbols beginning with underscore (_) + always_export_symbols_F77=yes + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_F77=' ' + archive_cmds_need_lc_F77=yes + # This is similar to how AIX traditionally builds it's shared libraries. + archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds_F77='$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_F77='-L$libdir' + hardcode_minus_L_F77=yes + # see comment about different semantics on the GNU ld section + ld_shlibs_F77=no + ;; + + bsdi4*) + export_dynamic_flag_spec_F77=-rdynamic + ;; + + 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_F77=' ' + allow_undefined_flag_F77=no + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds_F77='$CC -o $lib $compiler_flags $libobjs `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_F77='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes_F77=yes + ;; + + darwin* | rhapsody*) + if test "$GXX" = yes ; then + archive_cmds_need_lc_F77=no + case "$host_os" in + rhapsody* | darwin1.[012]) + allow_undefined_flag_F77='-Wl,-undefined -Wl,suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag_F77='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.012) + allow_undefined_flag_F77='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + ;; + 10.*) + allow_undefined_flag_F77='-Wl,-undefined -Wl,dynamic_lookup' + ;; + esac + fi + ;; + esac + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_cmds_F77='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' + else + archive_cmds_F77='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring' + fi + module_cmds_F77='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + hardcode_direct_F77=no + hardcode_automatic_F77=yes + hardcode_shlibpath_var_F77=unsupported + whole_archive_flag_spec_F77='-all_load $convenience' + link_all_deplibs_F77=yes + else + ld_shlibs_F77=no + fi + ;; + + dgux*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_shlibpath_var_F77=no + ;; + + freebsd1*) + ld_shlibs_F77=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_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes + hardcode_minus_L_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd*) + archive_cmds_F77='$CC -shared -o $lib $compiler_flags $libobjs $deplibs' + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + hardcode_direct_F77=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + export_dynamic_flag_spec_F77='${wl}-E' + ;; + + hpux10* | hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*|ia64*) + archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + ;; + *) + archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs' + ;; + esac + else + case "$host_cpu" in + hppa*64*|ia64*) + archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' + ;; + *) + archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*) + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec_ld_F77='+b $libdir' + hardcode_libdir_separator_F77=: + hardcode_direct_F77=no + hardcode_shlibpath_var_F77=no + ;; + ia64*) + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_direct_F77=no + hardcode_shlibpath_var_F77=no + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + ;; + *) + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + hardcode_direct_F77=yes + export_dynamic_flag_spec_F77='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_F77='$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_ld_F77='-rpath $libdir' + fi + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_F77=: + link_all_deplibs_F77=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + newsos6) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_F77=: + hardcode_shlibpath_var_F77=no + ;; + + openbsd*) + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds_F77='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs' + hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' + export_dynamic_flag_spec_F77='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_F77='-R$libdir' + ;; + *) + archive_cmds_F77='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs' + hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_minus_L_F77=yes + allow_undefined_flag_F77=unsupported + archive_cmds_F77='$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 $compiler_flags $libobjs $deplibs$output_objdir/$libname.def' + old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_F77='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${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_F77=' -expect_unresolved \*' + archive_cmds_F77='$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_F77='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_F77=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_F77='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${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_F77='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag_F77=' -expect_unresolved \*' + archive_cmds_F77='$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_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$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_F77='-rpath $libdir' + fi + hardcode_libdir_separator_F77=: + ;; + + sco3.2v5*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_F77=no + export_dynamic_flag_spec_F77='${wl}-Bexport' + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ;; + + solaris*) + no_undefined_flag_F77=' -z text' + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp' + else + archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds_F77='$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' + fi + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_shlibpath_var_F77=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; + esac + link_all_deplibs_F77=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_F77='$CC -G ${wl}-h $soname -o $lib $compiler_flags $libobjs $deplibs' + else + archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_direct_F77=yes + hardcode_minus_L_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds_F77='$CC -r -o $output$reload_objs' + hardcode_direct_F77=no + ;; + motorola) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var_F77=no + ;; + + sysv4.3*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_F77=no + export_dynamic_flag_spec_F77='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_F77=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs_F77=yes + fi + ;; + + sysv4.2uw2*) + archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes + hardcode_minus_L_F77=no + hardcode_shlibpath_var_F77=no + hardcode_runpath_var=yes + runpath_var=LD_RUN_PATH + ;; + + sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) + no_undefined_flag_F77='${wl}-z ${wl}text' + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + else + archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + fi + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var_F77=no + ;; + + sysv5*) + no_undefined_flag_F77=' -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_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds_F77='$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_F77= + hardcode_shlibpath_var_F77=no + runpath_var='LD_RUN_PATH' + ;; + + uts4*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_shlibpath_var_F77=no + ;; + + *) + ld_shlibs_F77=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 +echo "${ECHO_T}$ld_shlibs_F77" >&6; } +test "$ld_shlibs_F77" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_F77" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_F77=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_F77 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; } + $rm conftest* + printf "$lt_simple_compile_test_code" > 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); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_F77 + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_F77 + allow_undefined_flag_F77= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc_F77=no + else + archive_cmds_need_lc_F77=yes + fi + allow_undefined_flag_F77=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 +echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; } + ;; + esac + fi + ;; +esac + +{ 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= +shrext=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +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}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + 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}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi4*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext='$(test .$module = .yes && echo .so || echo .dylib)' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd*-gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +freebsd*) + objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.01* | freebsdelf3.01*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + *) # from 3.2 on + 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}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case "$host_cpu" in + ia64*) + shrext='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + libsuff= + if test "x$LINUX_64_MODE" = x64; then + # Some platforms are per default 64-bit, so there's no /lib64 + if test -d /lib64; then + libsuff=64 + fi + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}" + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +sco3.2v5*) + version_type=osf + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + 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 + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +{ 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_F77= +if test -n "$hardcode_libdir_flag_spec_F77" || \ + test -n "$runpath_var F77" || \ + test "X$hardcode_automatic_F77"="Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct_F77" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && + test "$hardcode_minus_L_F77" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_F77=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_F77=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_F77=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 +echo "${ECHO_T}$hardcode_action_F77" >&6; } + +if test "$hardcode_action_F77" = 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 + +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 +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + { 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 + ;; + *) + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + ;; + esac +fi + + + +# The else 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 + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # 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 AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_F77 \ + CC_F77 \ + LD_F77 \ + lt_prog_compiler_wl_F77 \ + lt_prog_compiler_pic_F77 \ + lt_prog_compiler_static_F77 \ + lt_prog_compiler_no_builtin_flag_F77 \ + export_dynamic_flag_spec_F77 \ + thread_safe_flag_spec_F77 \ + whole_archive_flag_spec_F77 \ + enable_shared_with_static_runtimes_F77 \ + old_archive_cmds_F77 \ + old_archive_from_new_cmds_F77 \ + predep_objects_F77 \ + postdep_objects_F77 \ + predeps_F77 \ + postdeps_F77 \ + compiler_lib_search_path_F77 \ + archive_cmds_F77 \ + archive_expsym_cmds_F77 \ + postinstall_cmds_F77 \ + postuninstall_cmds_F77 \ + old_archive_from_expsyms_cmds_F77 \ + allow_undefined_flag_F77 \ + no_undefined_flag_F77 \ + export_symbols_cmds_F77 \ + hardcode_libdir_flag_spec_F77 \ + hardcode_libdir_flag_spec_ld_F77 \ + hardcode_libdir_separator_F77 \ + hardcode_automatic_F77 \ + module_cmds_F77 \ + module_expsym_cmds_F77 \ + lt_cv_prog_compiler_c_o_F77 \ + exclude_expsyms_F77 \ + include_expsyms_F77; do + + case $var in + old_archive_cmds_F77 | \ + old_archive_from_new_cmds_F77 | \ + archive_cmds_F77 | \ + archive_expsym_cmds_F77 | \ + module_cmds_F77 | \ + module_expsym_cmds_F77 | \ + old_archive_from_expsyms_cmds_F77 | \ + export_symbols_cmds_F77 | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_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 + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# 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=$archive_cmds_need_lc_F77 + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 + +# 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 + +# A C compiler. +LTCC=$lt_LTCC + +# A language-specific compiler. +CC=$lt_compiler_F77 + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_F77 + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_F77 + +# 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_lt_prog_compiler_wl_F77 + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext='$shrext' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_F77 +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 + +# 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_lt_prog_compiler_static_F77 + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 + +# 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_F77 +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_F77 + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_F77 +archive_expsym_cmds=$lt_archive_expsym_cmds_F77 +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_F77 +module_expsym_cmds=$lt_module_expsym_cmds_F77 + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_F77 + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_F77 + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_F77 + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_F77 + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_F77 + +# 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_F77 + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_F77 + +# 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_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# 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_F77 + +# 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_F77 + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_F77 + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_F77 + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_F77 + +# 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_F77 + +# 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_F77" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_F77 + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_F77 + +# 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_F77 + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_F77 + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +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 + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +objext_GCJ=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String argv) {}; }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${GCJ-"gcj"} +compiler=$CC +compiler_GCJ=$CC + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +archive_cmds_need_lc_GCJ=no + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... + +lt_prog_compiler_no_builtin_flag_GCJ= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' + + +{ 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; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:18942: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:18946: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s conftest.err; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" +else + : +fi + +fi + +lt_prog_compiler_wl_GCJ= +lt_prog_compiler_pic_GCJ= +lt_prog_compiler_static_GCJ= + +{ 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 "$GCC" = yes; then + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_static_GCJ='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_GCJ='-Bstatic' + fi + ;; + + 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_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + 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_prog_compiler_pic_GCJ='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_GCJ='-fno-common' + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared_GCJ=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_GCJ=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_GCJ='-fPIC' + ;; + esac + ;; + + *) + lt_prog_compiler_pic_GCJ='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl_GCJ='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_GCJ='-Bstatic' + else + lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + 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_prog_compiler_pic_GCJ='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl_GCJ='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_GCJ='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl_GCJ='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static_GCJ='-non_shared' + ;; + + newsos6) + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + linux*) + case $CC in + icc* | ecc*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-static' + ;; + ccc*) + lt_prog_compiler_wl_GCJ='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static_GCJ='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl_GCJ='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static_GCJ='-non_shared' + ;; + + sco3.2v5*) + lt_prog_compiler_pic_GCJ='-Kpic' + lt_prog_compiler_static_GCJ='-dn' + ;; + + solaris*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + sunos4*) + lt_prog_compiler_wl_GCJ='-Qoption ld ' + lt_prog_compiler_pic_GCJ='-PIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic_GCJ='-Kconform_pic' + lt_prog_compiler_static_GCJ='-Bstatic' + fi + ;; + + uts4*) + lt_prog_compiler_pic_GCJ='-pic' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared_GCJ=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_GCJ"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works_GCJ=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_GCJ" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:19175: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:19179: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s conftest.err; then + lt_prog_compiler_pic_works_GCJ=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; } + +if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then + case $lt_prog_compiler_pic_GCJ in + "" | " "*) ;; + *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; + esac +else + lt_prog_compiler_pic_GCJ= + lt_prog_compiler_can_build_shared_GCJ=no +fi + +fi +case "$host_os" in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_GCJ= + ;; + *) + lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" + ;; +esac + +{ 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_prog_compiler_c_o_GCJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_GCJ=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + # 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 . + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:19242: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:19246: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s out/conftest.err; then + lt_cv_prog_compiler_c_o_GCJ=yes + fi + fi + chmod u+w . + $rm conftest* out/* + rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_GCJ" = 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 + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag_GCJ= + enable_shared_with_static_runtimes_GCJ=no + archive_cmds_GCJ= + archive_expsym_cmds_GCJ= + old_archive_From_new_cmds_GCJ= + old_archive_from_expsyms_cmds_GCJ= + export_dynamic_flag_spec_GCJ= + whole_archive_flag_spec_GCJ= + thread_safe_flag_spec_GCJ= + hardcode_libdir_flag_spec_GCJ= + hardcode_libdir_flag_spec_ld_GCJ= + hardcode_libdir_separator_GCJ= + hardcode_direct_GCJ=no + hardcode_minus_L_GCJ=no + hardcode_shlibpath_var_GCJ=unsupported + link_all_deplibs_GCJ=unknown + hardcode_automatic_GCJ=no + module_cmds_GCJ= + module_expsym_cmds_GCJ= + always_export_symbols_GCJ=no + export_symbols_cmds_GCJ='$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_GCJ= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms_GCJ="_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_GCJ=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/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs_GCJ=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 + fi + ;; + + amigaos*) + archive_cmds_GCJ='$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_GCJ='-L$libdir' + hardcode_minus_L_GCJ=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't use + # them. + ld_shlibs_GCJ=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_GCJ=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_GCJ='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_GCJ='-L$libdir' + allow_undefined_flag_GCJ=no + always_export_symbols_GCJ=no + enable_shared_with_static_runtimes_GCJ=yes + export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris* | sysv5*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs_GCJ=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 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + + sunos4*) + archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + esac + + if test "$ld_shlibs_GCJ" = yes; then + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_GCJ= + fi + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag_GCJ=unsupported + always_export_symbols_GCJ=yes + archive_expsym_cmds_GCJ='$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_GCJ=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_GCJ=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 + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + + # KDE requires run time linking. Make it the default. + aix_use_runtimelinking=yes + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_GCJ='' + hardcode_direct_GCJ=yes + hardcode_libdir_separator_GCJ=':' + link_all_deplibs_GCJ=yes + + if test "$GCC" = yes; then + case $host_os in aix4.012|aix4.012.*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct_GCJ=yes + else + # We have old collect2 + hardcode_direct_GCJ=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_GCJ=yes + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_libdir_separator_GCJ= + fi + esac + shared_flag='-shared' + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='-qmkshrobj ${wl}-G' + else + shared_flag='-qmkshrobj' + fi + fi + fi + + # Let the compiler handle the export list. + always_export_symbols_GCJ=no + 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_GCJ='-berok' + # Determine the default libpath from the value encoded in an empty executable. + 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 { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_cmds_GCJ="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag" + archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_GCJ="-z nodefs" + archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + 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 { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_GCJ=' ${wl}-bernotok' + allow_undefined_flag_GCJ=' ${wl}-berok' + # -bexpall does not export symbols beginning with underscore (_) + always_export_symbols_GCJ=yes + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_GCJ=' ' + archive_cmds_need_lc_GCJ=yes + # This is similar to how AIX traditionally builds it's shared libraries. + archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds_GCJ='$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_GCJ='-L$libdir' + hardcode_minus_L_GCJ=yes + # see comment about different semantics on the GNU ld section + ld_shlibs_GCJ=no + ;; + + bsdi4*) + export_dynamic_flag_spec_GCJ=-rdynamic + ;; + + 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_GCJ=' ' + allow_undefined_flag_GCJ=no + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds_GCJ='$CC -o $lib $compiler_flags $libobjs `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_GCJ='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes_GCJ=yes + ;; + + darwin* | rhapsody*) + if test "$GXX" = yes ; then + archive_cmds_need_lc_GCJ=no + case "$host_os" in + rhapsody* | darwin1.[012]) + allow_undefined_flag_GCJ='-Wl,-undefined -Wl,suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag_GCJ='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.012) + allow_undefined_flag_GCJ='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + ;; + 10.*) + allow_undefined_flag_GCJ='-Wl,-undefined -Wl,dynamic_lookup' + ;; + esac + fi + ;; + esac + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_cmds_GCJ='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' + else + archive_cmds_GCJ='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring' + fi + module_cmds_GCJ='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + hardcode_direct_GCJ=no + hardcode_automatic_GCJ=yes + hardcode_shlibpath_var_GCJ=unsupported + whole_archive_flag_spec_GCJ='-all_load $convenience' + link_all_deplibs_GCJ=yes + else + ld_shlibs_GCJ=no + fi + ;; + + dgux*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_shlibpath_var_GCJ=no + ;; + + freebsd1*) + ld_shlibs_GCJ=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_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes + hardcode_minus_L_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd*) + archive_cmds_GCJ='$CC -shared -o $lib $compiler_flags $libobjs $deplibs' + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + hardcode_direct_GCJ=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-E' + ;; + + hpux10* | hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*|ia64*) + archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + ;; + *) + archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs' + ;; + esac + else + case "$host_cpu" in + hppa*64*|ia64*) + archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' + ;; + *) + archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*) + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' + hardcode_libdir_separator_GCJ=: + hardcode_direct_GCJ=no + hardcode_shlibpath_var_GCJ=no + ;; + ia64*) + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_direct_GCJ=no + hardcode_shlibpath_var_GCJ=no + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + ;; + *) + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + hardcode_direct_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_GCJ='$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_ld_GCJ='-rpath $libdir' + fi + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + link_all_deplibs_GCJ=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + newsos6) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + hardcode_shlibpath_var_GCJ=no + ;; + + openbsd*) + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs' + hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' + export_dynamic_flag_spec_GCJ='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_GCJ='-R$libdir' + ;; + *) + archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs' + hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_minus_L_GCJ=yes + allow_undefined_flag_GCJ=unsupported + archive_cmds_GCJ='$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 $compiler_flags $libobjs $deplibs$output_objdir/$libname.def' + old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${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_GCJ=' -expect_unresolved \*' + archive_cmds_GCJ='$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_GCJ='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${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_GCJ='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag_GCJ=' -expect_unresolved \*' + archive_cmds_GCJ='$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_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$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_GCJ='-rpath $libdir' + fi + hardcode_libdir_separator_GCJ=: + ;; + + sco3.2v5*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_GCJ=no + export_dynamic_flag_spec_GCJ='${wl}-Bexport' + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ;; + + solaris*) + no_undefined_flag_GCJ=' -z text' + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp' + else + archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds_GCJ='$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' + fi + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_shlibpath_var_GCJ=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; + esac + link_all_deplibs_GCJ=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_GCJ='$CC -G ${wl}-h $soname -o $lib $compiler_flags $libobjs $deplibs' + else + archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_direct_GCJ=yes + hardcode_minus_L_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds_GCJ='$CC -r -o $output$reload_objs' + hardcode_direct_GCJ=no + ;; + motorola) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var_GCJ=no + ;; + + sysv4.3*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_GCJ=no + export_dynamic_flag_spec_GCJ='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_GCJ=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs_GCJ=yes + fi + ;; + + sysv4.2uw2*) + archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes + hardcode_minus_L_GCJ=no + hardcode_shlibpath_var_GCJ=no + hardcode_runpath_var=yes + runpath_var=LD_RUN_PATH + ;; + + sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) + no_undefined_flag_GCJ='${wl}-z ${wl}text' + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + else + archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + fi + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var_GCJ=no + ;; + + sysv5*) + no_undefined_flag_GCJ=' -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_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds_GCJ='$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_GCJ= + hardcode_shlibpath_var_GCJ=no + runpath_var='LD_RUN_PATH' + ;; + + uts4*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_shlibpath_var_GCJ=no + ;; + + *) + ld_shlibs_GCJ=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 +echo "${ECHO_T}$ld_shlibs_GCJ" >&6; } +test "$ld_shlibs_GCJ" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_GCJ" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_GCJ=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_GCJ 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; } + $rm conftest* + printf "$lt_simple_compile_test_code" > 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); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_GCJ + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ + allow_undefined_flag_GCJ= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc_GCJ=no + else + archive_cmds_need_lc_GCJ=yes + fi + allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 +echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; } + ;; + esac + fi + ;; +esac + +{ 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= +shrext=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +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}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + 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}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi4*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext='$(test .$module = .yes && echo .so || echo .dylib)' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd*-gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +freebsd*) + objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.01* | freebsdelf3.01*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + *) # from 3.2 on + 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}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case "$host_cpu" in + ia64*) + shrext='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + libsuff= + if test "x$LINUX_64_MODE" = x64; then + # Some platforms are per default 64-bit, so there's no /lib64 + if test -d /lib64; then + libsuff=64 + fi + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}" + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +sco3.2v5*) + version_type=osf + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + 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 + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +{ 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_GCJ= +if test -n "$hardcode_libdir_flag_spec_GCJ" || \ + test -n "$runpath_var GCJ" || \ + test "X$hardcode_automatic_GCJ"="Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct_GCJ" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && + test "$hardcode_minus_L_GCJ" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_GCJ=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_GCJ=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_GCJ=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 +echo "${ECHO_T}$hardcode_action_GCJ" >&6; } + +if test "$hardcode_action_GCJ" = 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 + +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 +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + { 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 + ;; + *) + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + ;; + esac +fi + +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + { 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +/* 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 +#endif + +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +/* 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 +#endif + +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 + + +# The else 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 + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # 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 AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_GCJ \ + CC_GCJ \ + LD_GCJ \ + lt_prog_compiler_wl_GCJ \ + lt_prog_compiler_pic_GCJ \ + lt_prog_compiler_static_GCJ \ + lt_prog_compiler_no_builtin_flag_GCJ \ + export_dynamic_flag_spec_GCJ \ + thread_safe_flag_spec_GCJ \ + whole_archive_flag_spec_GCJ \ + enable_shared_with_static_runtimes_GCJ \ + old_archive_cmds_GCJ \ + old_archive_from_new_cmds_GCJ \ + predep_objects_GCJ \ + postdep_objects_GCJ \ + predeps_GCJ \ + postdeps_GCJ \ + compiler_lib_search_path_GCJ \ + archive_cmds_GCJ \ + archive_expsym_cmds_GCJ \ + postinstall_cmds_GCJ \ + postuninstall_cmds_GCJ \ + old_archive_from_expsyms_cmds_GCJ \ + allow_undefined_flag_GCJ \ + no_undefined_flag_GCJ \ + export_symbols_cmds_GCJ \ + hardcode_libdir_flag_spec_GCJ \ + hardcode_libdir_flag_spec_ld_GCJ \ + hardcode_libdir_separator_GCJ \ + hardcode_automatic_GCJ \ + module_cmds_GCJ \ + module_expsym_cmds_GCJ \ + lt_cv_prog_compiler_c_o_GCJ \ + exclude_expsyms_GCJ \ + include_expsyms_GCJ; do + + case $var in + old_archive_cmds_GCJ | \ + old_archive_from_new_cmds_GCJ | \ + archive_cmds_GCJ | \ + archive_expsym_cmds_GCJ | \ + module_cmds_GCJ | \ + module_expsym_cmds_GCJ | \ + old_archive_from_expsyms_cmds_GCJ | \ + export_symbols_cmds_GCJ | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_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 + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# 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=$archive_cmds_need_lc_GCJ + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ + +# 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 + +# A C compiler. +LTCC=$lt_LTCC + +# A language-specific compiler. +CC=$lt_compiler_GCJ + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_GCJ + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_GCJ + +# 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_lt_prog_compiler_wl_GCJ + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext='$shrext' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_GCJ +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ + +# 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_lt_prog_compiler_static_GCJ + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ + +# 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_GCJ +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_GCJ + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_GCJ +archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_GCJ +module_expsym_cmds=$lt_module_expsym_cmds_GCJ + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_GCJ + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_GCJ + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_GCJ + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_GCJ + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ + +# 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_GCJ + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_GCJ + +# 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_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# 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_GCJ + +# 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_GCJ + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_GCJ + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_GCJ + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_GCJ + +# 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_GCJ + +# 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_GCJ" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_GCJ + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_GCJ + +# 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_GCJ + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_GCJ + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +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 + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + else + tagname="" + fi + ;; + + RC) + + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +objext_RC=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${RC-"windres"} +compiler=$CC +compiler_RC=$CC +lt_cv_prog_compiler_c_o_RC=yes + +# The else 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 + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # 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 AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_RC \ + CC_RC \ + LD_RC \ + lt_prog_compiler_wl_RC \ + lt_prog_compiler_pic_RC \ + lt_prog_compiler_static_RC \ + lt_prog_compiler_no_builtin_flag_RC \ + export_dynamic_flag_spec_RC \ + thread_safe_flag_spec_RC \ + whole_archive_flag_spec_RC \ + enable_shared_with_static_runtimes_RC \ + old_archive_cmds_RC \ + old_archive_from_new_cmds_RC \ + predep_objects_RC \ + postdep_objects_RC \ + predeps_RC \ + postdeps_RC \ + compiler_lib_search_path_RC \ + archive_cmds_RC \ + archive_expsym_cmds_RC \ + postinstall_cmds_RC \ + postuninstall_cmds_RC \ + old_archive_from_expsyms_cmds_RC \ + allow_undefined_flag_RC \ + no_undefined_flag_RC \ + export_symbols_cmds_RC \ + hardcode_libdir_flag_spec_RC \ + hardcode_libdir_flag_spec_ld_RC \ + hardcode_libdir_separator_RC \ + hardcode_automatic_RC \ + module_cmds_RC \ + module_expsym_cmds_RC \ + lt_cv_prog_compiler_c_o_RC \ + exclude_expsyms_RC \ + include_expsyms_RC; do + + case $var in + old_archive_cmds_RC | \ + old_archive_from_new_cmds_RC | \ + archive_cmds_RC | \ + archive_expsym_cmds_RC | \ + module_cmds_RC | \ + module_expsym_cmds_RC | \ + old_archive_from_expsyms_cmds_RC | \ + export_symbols_cmds_RC | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_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 + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# 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=$archive_cmds_need_lc_RC + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC + +# 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 + +# A C compiler. +LTCC=$lt_LTCC + +# A language-specific compiler. +CC=$lt_compiler_RC + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_RC + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_RC + +# 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_lt_prog_compiler_wl_RC + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext='$shrext' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_RC +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC + +# 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_lt_prog_compiler_static_RC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC + +# 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_RC +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_RC + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_RC +archive_expsym_cmds=$lt_archive_expsym_cmds_RC +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_RC +module_expsym_cmds=$lt_module_expsym_cmds_RC + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_RC + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_RC + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_RC + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_RC + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_RC + +# 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_RC + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_RC + +# 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_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# 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_RC + +# 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_RC + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_RC + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_RC + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_RC + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_RC + +# 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_RC + +# 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_RC" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_RC + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_RC + +# 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_RC + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_RC + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +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 + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + ;; + + *) + { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 +echo "$as_me: error: Unsupported tag name: $tagname" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 +echo "$as_me: error: unable to update list of available tagged configurations." >&2;} + { (exit 1); exit 1; }; } + fi +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 --silent' + +# Prevent multiple expansion + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +LIBTOOL_SHELL="/bin/sh ./libtool" +# LIBTOOL="$LIBTOOL --silent" +KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_NO_UNDEFINED) \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)" + + +# we patch configure quite some so we better keep that consistent for incremental runs +AUTOCONF='$(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure' + + + +{ 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 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 + + + + + + # 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 -n "`$ac_dir/$ac_word --version 2>&1 | grep 'GNU gettext'`"; 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="msgfmt" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test -n "$MSGFMT"; 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 + + # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 +IFS=$as_save_IFS + + 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 + + + + if test -z "`$GMSGFMT --version 2>&1 | grep 'GNU gettext'`"; then + { echo "$as_me:$LINENO: result: found msgfmt program is not GNU msgfmt; ignore it" >&5 +echo "${ECHO_T}found msgfmt program is not GNU msgfmt; ignore it" >&6; } + GMSGFMT=":" + fi + MSGFMT=$GMSGFMT + + + + # 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 -n "$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 + + + if test "$XGETTEXT" != ":"; then + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + { echo "$as_me:$LINENO: result: found xgettext programs is not GNU xgettext; ignore it" >&5 +echo "${ECHO_T}found xgettext programs is not GNU xgettext; ignore it" >&6; } + XGETTEXT=":" + fi + fi + + + + + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="`echo $CXXFLAGS | sed s/-fno-exceptions//`" + + { echo "$as_me:$LINENO: checking if C++ programs can be compiled" >&5 +echo $ECHO_N "checking if C++ programs can be compiled... $ECHO_C" >&6; } + if test "${kde_cv_stl_works+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 +using namespace std; + +int +main () +{ + + string astring="Hallo Welt."; + astring.erase(0, 6); // now astring is "Welt" + return 0; + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + kde_cv_stl_works=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + kde_cv_stl_works=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi + + + { echo "$as_me:$LINENO: result: $kde_cv_stl_works" >&5 +echo "${ECHO_T}$kde_cv_stl_works" >&6; } + + if test "$kde_cv_stl_works" = "yes"; then + # back compatible + +cat >>confdefs.h <<_ACEOF +#define HAVE_SGI_STL 1 +_ACEOF + + else + { { echo "$as_me:$LINENO: error: Your Installation isn't able to compile simple C++ programs. +Check config.log for details - if you're using a Linux distribution you might miss +a package named similar to libstdc++-dev." >&5 +echo "$as_me: error: Your Installation isn't able to compile simple C++ programs. +Check config.log for details - if you're using a Linux distribution you might miss +a package named similar to libstdc++-dev." >&2;} + { (exit 1); exit 1; }; } + fi + + CXXFLAGS="$ac_save_CXXFLAGS" + 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 strlcat" >&5 +echo $ECHO_N "checking for strlcat... $ECHO_C" >&6; } +if test "${kde_cv_func_strlcat+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + +save_CXXFLAGS="$CXXFLAGS" +kde_safe_LIBS="$LIBS" +LIBS="$LIBS $X_EXTRA_LIBS" +if test "$GXX" = "yes"; then +CXXFLAGS="$CXXFLAGS -pedantic-errors" +fi +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 () +{ + + char buf[20]; + buf[0]='\0'; + strlcat(buf, "KDE function test", sizeof(buf)); + + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + kde_cv_func_strlcat=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + kde_cv_func_strlcat=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +CXXFLAGS="$save_CXXFLAGS" +LIBS="$kde_safe_LIBS" +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: $kde_cv_func_strlcat" >&5 +echo "${ECHO_T}$kde_cv_func_strlcat" >&6; } + +{ echo "$as_me:$LINENO: checking if strlcat needs custom prototype" >&5 +echo $ECHO_N "checking if strlcat needs custom prototype... $ECHO_C" >&6; } +if test "${kde_cv_proto_strlcat+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +if test "x$kde_cv_func_strlcat" = xyes; then + kde_cv_proto_strlcat=no +else + case "strlcat" in + setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat) + kde_cv_proto_strlcat="yes - in libkdefakes" + ;; + *) + kde_cv_proto_strlcat=unknown + ;; + esac +fi + +if test "x$kde_cv_proto_strlcat" = xunknown; then + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + kde_safe_libs=$LIBS + LIBS="$LIBS $X_EXTRA_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + +#include + + +extern "C" unsigned long strlcat(char*, const char*, unsigned long); + +int +main () +{ + + char buf[20]; + buf[0]='\0'; + strlcat(buf, "KDE function test", sizeof(buf)); + + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + kde_cv_func_strlcat=yes + kde_cv_proto_strlcat=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + kde_cv_proto_strlcat="strlcat unavailable" + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$kde_safe_libs +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 + +fi + +{ echo "$as_me:$LINENO: result: $kde_cv_proto_strlcat" >&5 +echo "${ECHO_T}$kde_cv_proto_strlcat" >&6; } + +if test "x$kde_cv_func_strlcat" = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_STRLCAT 1 +_ACEOF + + +fi +if test "x$kde_cv_proto_strlcat" = xno; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_STRLCAT_PROTO 1 +_ACEOF + +fi + + + + + + + +{ echo "$as_me:$LINENO: checking for strlcpy" >&5 +echo $ECHO_N "checking for strlcpy... $ECHO_C" >&6; } +if test "${kde_cv_func_strlcpy+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + +save_CXXFLAGS="$CXXFLAGS" +kde_safe_LIBS="$LIBS" +LIBS="$LIBS $X_EXTRA_LIBS" +if test "$GXX" = "yes"; then +CXXFLAGS="$CXXFLAGS -pedantic-errors" +fi +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 () +{ + + char buf[20]; + strlcpy(buf, "KDE function test", sizeof(buf)); + + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + kde_cv_func_strlcpy=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + kde_cv_func_strlcpy=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +CXXFLAGS="$save_CXXFLAGS" +LIBS="$kde_safe_LIBS" +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: $kde_cv_func_strlcpy" >&5 +echo "${ECHO_T}$kde_cv_func_strlcpy" >&6; } + +{ echo "$as_me:$LINENO: checking if strlcpy needs custom prototype" >&5 +echo $ECHO_N "checking if strlcpy needs custom prototype... $ECHO_C" >&6; } +if test "${kde_cv_proto_strlcpy+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +if test "x$kde_cv_func_strlcpy" = xyes; then + kde_cv_proto_strlcpy=no +else + case "strlcpy" in + setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat) + kde_cv_proto_strlcpy="yes - in libkdefakes" + ;; + *) + kde_cv_proto_strlcpy=unknown + ;; + esac +fi + +if test "x$kde_cv_proto_strlcpy" = xunknown; then + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + kde_safe_libs=$LIBS + LIBS="$LIBS $X_EXTRA_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + +#include + + +extern "C" unsigned long strlcpy(char*, const char*, unsigned long); + +int +main () +{ + + char buf[20]; + strlcpy(buf, "KDE function test", sizeof(buf)); + + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + kde_cv_func_strlcpy=yes + kde_cv_proto_strlcpy=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + kde_cv_proto_strlcpy="strlcpy unavailable" + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$kde_safe_libs +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 + +fi + +{ echo "$as_me:$LINENO: result: $kde_cv_proto_strlcpy" >&5 +echo "${ECHO_T}$kde_cv_proto_strlcpy" >&6; } + +if test "x$kde_cv_func_strlcpy" = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_STRLCPY 1 +_ACEOF + + +fi +if test "x$kde_cv_proto_strlcpy" = xno; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_STRLCPY_PROTO 1 +_ACEOF + +fi + + + + + + + { echo "$as_me:$LINENO: checking for main in -lutil" >&5 +echo $ECHO_N "checking for main in -lutil... $ECHO_C" >&6; } +if test "${ac_cv_lib_util_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lutil $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 () +{ +return main (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_util_main=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_util_main=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_util_main" >&5 +echo "${ECHO_T}$ac_cv_lib_util_main" >&6; } +if test $ac_cv_lib_util_main = yes; then + LIBUTIL="-lutil" +fi + + { echo "$as_me:$LINENO: checking for main in -lcompat" >&5 +echo $ECHO_N "checking for main in -lcompat... $ECHO_C" >&6; } +if test "${ac_cv_lib_compat_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcompat $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 () +{ +return main (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_compat_main=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_compat_main=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_compat_main" >&5 +echo "${ECHO_T}$ac_cv_lib_compat_main" >&6; } +if test $ac_cv_lib_compat_main = yes; then + LIBCOMPAT="-lcompat" +fi + + kde_have_crypt= + { echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5 +echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6; } +if test "${ac_cv_lib_crypt_crypt+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcrypt $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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char crypt (); +int +main () +{ +return crypt (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_crypt_crypt=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_crypt_crypt=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5 +echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6; } +if test $ac_cv_lib_crypt_crypt = yes; then + LIBCRYPT="-lcrypt"; kde_have_crypt=yes +else + { echo "$as_me:$LINENO: checking for crypt in -lc" >&5 +echo $ECHO_N "checking for crypt in -lc... $ECHO_C" >&6; } +if test "${ac_cv_lib_c_crypt+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc $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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char crypt (); +int +main () +{ +return crypt (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_c_crypt=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_c_crypt=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_c_crypt" >&5 +echo "${ECHO_T}$ac_cv_lib_c_crypt" >&6; } +if test $ac_cv_lib_c_crypt = yes; then + kde_have_crypt=yes +else + + { echo "$as_me:$LINENO: WARNING: you have no crypt in either libcrypt or libc. +You should install libcrypt from another source or configure with PAM +support" >&5 +echo "$as_me: WARNING: you have no crypt in either libcrypt or libc. +You should install libcrypt from another source or configure with PAM +support" >&2;} + kde_have_crypt=no + +fi + +fi + + + if test $kde_have_crypt = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_CRYPT 1 +_ACEOF + + fi + + { echo "$as_me:$LINENO: checking for socklen_t" >&5 +echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6; } + if test "${kde_cv_socklen_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + ac_ext=cpp +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 + + kde_cv_socklen_t=no + 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 () +{ + + socklen_t len; + getpeername(0,0,&len); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + + kde_cv_socklen_t=yes + kde_cv_socklen_t_equiv=socklen_t + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core 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 + + +fi + + { echo "$as_me:$LINENO: result: $kde_cv_socklen_t" >&5 +echo "${ECHO_T}$kde_cv_socklen_t" >&6; } + if test $kde_cv_socklen_t = no; then + { echo "$as_me:$LINENO: checking for socklen_t equivalent for socket functions" >&5 +echo $ECHO_N "checking for socklen_t equivalent for socket functions... $ECHO_C" >&6; } + if test "${kde_cv_socklen_t_equiv+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + kde_cv_socklen_t_equiv=int + ac_ext=cpp +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 + + for t in int size_t unsigned long "unsigned long"; do + 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 () +{ + + $t len; + getpeername(0,0,&len); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + + kde_cv_socklen_t_equiv="$t" + break + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi + + { echo "$as_me:$LINENO: result: $kde_cv_socklen_t_equiv" >&5 +echo "${ECHO_T}$kde_cv_socklen_t_equiv" >&6; } + fi + +cat >>confdefs.h <<_ACEOF +#define kde_socklen_t $kde_cv_socklen_t_equiv +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define ksize_t $kde_cv_socklen_t_equiv +_ACEOF + + + { echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5 +echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6; } +if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet $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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dnet_dnet_ntoa=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dnet_dnet_ntoa=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 +echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6; } +if test $ac_cv_lib_dnet_dnet_ntoa = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + { echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5 +echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6; } +if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet_stub $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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dnet_stub_dnet_ntoa=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dnet_stub_dnet_ntoa=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 +echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } +if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +fi + + fi + { echo "$as_me:$LINENO: checking for inet_ntoa" >&5 +echo $ECHO_N "checking for inet_ntoa... $ECHO_C" >&6; } +if test "${ac_cv_func_inet_ntoa+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 inet_ntoa to an innocuous variant, in case declares inet_ntoa. + For example, HP-UX 11i declares gettimeofday. */ +#define inet_ntoa innocuous_inet_ntoa + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char inet_ntoa (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef inet_ntoa + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char inet_ntoa (); +/* 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_inet_ntoa || defined __stub___inet_ntoa +choke me +#endif + +int +main () +{ +return inet_ntoa (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_inet_ntoa=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_inet_ntoa=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_inet_ntoa" >&5 +echo "${ECHO_T}$ac_cv_func_inet_ntoa" >&6; } + + if test $ac_cv_func_inet_ntoa = no; then + { echo "$as_me:$LINENO: checking for inet_ntoa in -lnsl" >&5 +echo $ECHO_N "checking for inet_ntoa in -lnsl... $ECHO_C" >&6; } +if test "${ac_cv_lib_nsl_inet_ntoa+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char inet_ntoa (); +int +main () +{ +return inet_ntoa (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_nsl_inet_ntoa=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_nsl_inet_ntoa=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_inet_ntoa" >&5 +echo "${ECHO_T}$ac_cv_lib_nsl_inet_ntoa" >&6; } +if test $ac_cv_lib_nsl_inet_ntoa = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +fi + + fi + { echo "$as_me:$LINENO: checking for connect" >&5 +echo $ECHO_N "checking for connect... $ECHO_C" >&6; } +if test "${ac_cv_func_connect+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 connect to an innocuous variant, in case declares connect. + For example, HP-UX 11i declares gettimeofday. */ +#define connect innocuous_connect + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char connect (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef connect + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +/* 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_connect || defined __stub___connect +choke me +#endif + +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_connect=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_connect=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5 +echo "${ECHO_T}$ac_cv_func_connect" >&6; } + + if test $ac_cv_func_connect = no; then + { echo "$as_me:$LINENO: checking for connect in -lsocket" >&5 +echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6; } +if test "${ac_cv_lib_socket_connect+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $X_EXTRA_LIBS $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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_socket_connect=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_socket_connect=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5 +echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6; } +if test $ac_cv_lib_socket_connect = yes; then + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +fi + + fi + + { echo "$as_me:$LINENO: checking for remove" >&5 +echo $ECHO_N "checking for remove... $ECHO_C" >&6; } +if test "${ac_cv_func_remove+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 remove to an innocuous variant, in case declares remove. + For example, HP-UX 11i declares gettimeofday. */ +#define remove innocuous_remove + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char remove (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef remove + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char remove (); +/* 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_remove || defined __stub___remove +choke me +#endif + +int +main () +{ +return remove (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_remove=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_remove=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5 +echo "${ECHO_T}$ac_cv_func_remove" >&6; } + + if test $ac_cv_func_remove = no; then + { echo "$as_me:$LINENO: checking for remove in -lposix" >&5 +echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6; } +if test "${ac_cv_lib_posix_remove+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix $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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char remove (); +int +main () +{ +return remove (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_posix_remove=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_posix_remove=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5 +echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6; } +if test $ac_cv_lib_posix_remove = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + { echo "$as_me:$LINENO: checking for shmat" >&5 +echo $ECHO_N "checking for shmat... $ECHO_C" >&6; } +if test "${ac_cv_func_shmat+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 shmat to an innocuous variant, in case declares shmat. + For example, HP-UX 11i declares gettimeofday. */ +#define shmat innocuous_shmat + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char shmat (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef shmat + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shmat (); +/* 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_shmat || defined __stub___shmat +choke me +#endif + +int +main () +{ +return shmat (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_shmat=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_shmat=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5 +echo "${ECHO_T}$ac_cv_func_shmat" >&6; } +if test $ac_cv_func_shmat = yes; then + : +else + { echo "$as_me:$LINENO: checking for shmat in -lipc" >&5 +echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6; } +if test "${ac_cv_lib_ipc_shmat+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lipc $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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shmat (); +int +main () +{ +return shmat (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_ipc_shmat=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_ipc_shmat=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5 +echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6; } +if test $ac_cv_lib_ipc_shmat = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +fi + +fi + + + # more headers that need to be explicitly included on darwin + + +for ac_header in sys/types.h stdint.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; 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 core 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 { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.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;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&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 + + + # sys/bitypes.h is needed for uint32_t and friends on Tru64 + +for ac_header in sys/bitypes.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; 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 core 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 { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.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;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&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 + + + # darwin requires a poll emulation library + { echo "$as_me:$LINENO: checking for poll in -lpoll" >&5 +echo $ECHO_N "checking for poll in -lpoll... $ECHO_C" >&6; } +if test "${ac_cv_lib_poll_poll+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpoll $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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char poll (); +int +main () +{ +return poll (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_poll_poll=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_poll_poll=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_poll_poll" >&5 +echo "${ECHO_T}$ac_cv_lib_poll_poll" >&6; } +if test $ac_cv_lib_poll_poll = yes; then + LIB_POLL="-lpoll" +fi + + + # for some image handling on Mac OS X + +for ac_header in Carbon/Carbon.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; 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 core 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 { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.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;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&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 + + + # CoreAudio framework + if test "${ac_cv_header_CoreAudio_CoreAudio_h+set}" = set; then + { echo "$as_me:$LINENO: checking for CoreAudio/CoreAudio.h" >&5 +echo $ECHO_N "checking for CoreAudio/CoreAudio.h... $ECHO_C" >&6; } +if test "${ac_cv_header_CoreAudio_CoreAudio_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_CoreAudio_CoreAudio_h" >&5 +echo "${ECHO_T}$ac_cv_header_CoreAudio_CoreAudio_h" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking CoreAudio/CoreAudio.h usability" >&5 +echo $ECHO_N "checking CoreAudio/CoreAudio.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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; 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 core 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 CoreAudio/CoreAudio.h presence" >&5 +echo $ECHO_N "checking CoreAudio/CoreAudio.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 { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.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: CoreAudio/CoreAudio.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: CoreAudio/CoreAudio.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: CoreAudio/CoreAudio.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: CoreAudio/CoreAudio.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: CoreAudio/CoreAudio.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: CoreAudio/CoreAudio.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: CoreAudio/CoreAudio.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: CoreAudio/CoreAudio.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: CoreAudio/CoreAudio.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: CoreAudio/CoreAudio.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: CoreAudio/CoreAudio.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: CoreAudio/CoreAudio.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: CoreAudio/CoreAudio.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: CoreAudio/CoreAudio.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: CoreAudio/CoreAudio.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: CoreAudio/CoreAudio.h: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for CoreAudio/CoreAudio.h" >&5 +echo $ECHO_N "checking for CoreAudio/CoreAudio.h... $ECHO_C" >&6; } +if test "${ac_cv_header_CoreAudio_CoreAudio_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_CoreAudio_CoreAudio_h=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_CoreAudio_CoreAudio_h" >&5 +echo "${ECHO_T}$ac_cv_header_CoreAudio_CoreAudio_h" >&6; } + +fi +if test $ac_cv_header_CoreAudio_CoreAudio_h = yes; then + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_COREAUDIO 1 +_ACEOF + + FRAMEWORK_COREAUDIO="-Xlinker -framework -Xlinker CoreAudio" + +fi + + + + + { echo "$as_me:$LINENO: checking if res_init needs -lresolv" >&5 +echo $ECHO_N "checking if res_init needs -lresolv... $ECHO_C" >&6; } + kde_libs_safe="$LIBS" + LIBS="$LIBS $X_EXTRA_LIBS -lresolv" + 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 () +{ + + res_init(); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + + LIBRESOLV="-lresolv" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_RES_INIT 1 +_ACEOF + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$kde_libs_safe + + + +{ echo "$as_me:$LINENO: checking for res_init" >&5 +echo $ECHO_N "checking for res_init... $ECHO_C" >&6; } +if test "${kde_cv_func_res_init+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + +save_CXXFLAGS="$CXXFLAGS" +kde_safe_LIBS="$LIBS" +LIBS="$LIBS $X_EXTRA_LIBS" +if test "$GXX" = "yes"; then +CXXFLAGS="$CXXFLAGS -pedantic-errors" +fi +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 () +{ + +res_init() + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + kde_cv_func_res_init=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + kde_cv_func_res_init=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +CXXFLAGS="$save_CXXFLAGS" +LIBS="$kde_safe_LIBS" +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: $kde_cv_func_res_init" >&5 +echo "${ECHO_T}$kde_cv_func_res_init" >&6; } + +{ echo "$as_me:$LINENO: checking if res_init needs custom prototype" >&5 +echo $ECHO_N "checking if res_init needs custom prototype... $ECHO_C" >&6; } +if test "${kde_cv_proto_res_init+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +if test "x$kde_cv_func_res_init" = xyes; then + kde_cv_proto_res_init=no +else + case "res_init" in + setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat) + kde_cv_proto_res_init="yes - in libkdefakes" + ;; + *) + kde_cv_proto_res_init=unknown + ;; + esac +fi + +if test "x$kde_cv_proto_res_init" = xunknown; then + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + kde_safe_libs=$LIBS + LIBS="$LIBS $X_EXTRA_LIBS" + 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 + + +extern "C" int res_init(void); + +int +main () +{ + +res_init() + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + kde_cv_func_res_init=yes + kde_cv_proto_res_init=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + kde_cv_proto_res_init="res_init unavailable" + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$kde_safe_libs +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 + +fi + +{ echo "$as_me:$LINENO: result: $kde_cv_proto_res_init" >&5 +echo "${ECHO_T}$kde_cv_proto_res_init" >&6; } + +if test "x$kde_cv_func_res_init" = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_RES_INIT 1 +_ACEOF + + +fi +if test "x$kde_cv_proto_res_init" = xno; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_RES_INIT_PROTO 1 +_ACEOF + +fi + + + + + + + + LIBSOCKET="$X_EXTRA_LIBS" + + + { echo "$as_me:$LINENO: checking for killpg in -lucb" >&5 +echo $ECHO_N "checking for killpg in -lucb... $ECHO_C" >&6; } +if test "${ac_cv_lib_ucb_killpg+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lucb $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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char killpg (); +int +main () +{ +return killpg (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_ucb_killpg=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_ucb_killpg=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_ucb_killpg" >&5 +echo "${ECHO_T}$ac_cv_lib_ucb_killpg" >&6; } +if test $ac_cv_lib_ucb_killpg = yes; then + LIBUCB="-lucb" +fi + + + case $host in *-*-lynxos* ) + { echo "$as_me:$LINENO: checking LynxOS header file wrappers" >&5 +echo $ECHO_N "checking LynxOS header file wrappers... $ECHO_C" >&6; } + CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__" + { echo "$as_me:$LINENO: result: disabled" >&5 +echo "${ECHO_T}disabled" >&6; } + { echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5 +echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6; } +if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_bsd_gethostbyname=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_bsd_gethostbyname=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6; } +if test $ac_cv_lib_bsd_gethostbyname = yes; then + LIBSOCKET="-lbsd" +fi + ;; + esac + + { echo "$as_me:$LINENO: checking for int" >&5 +echo $ECHO_N "checking for int... $ECHO_C" >&6; } +if test "${ac_cv_type_int+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 +typedef int ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_int=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_int=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 +echo "${ECHO_T}$ac_cv_type_int" >&6; } + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ echo "$as_me:$LINENO: checking size of int" >&5 +echo $ECHO_N "checking size of int... $ECHO_C" >&6; } +if test "${ac_cv_sizeof_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +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 + typedef int ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + 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 + typedef int ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + 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 + typedef int ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=-1 ac_mid=-1 + while :; do + 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 + typedef int ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo= ac_hi= +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + 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 + typedef int ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr '(' $ac_mid ')' + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_int=$ac_lo;; +'') if test "$ac_cv_type_int" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (int) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (int) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_int=0 + fi ;; +esac +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 + typedef int ac__type_sizeof_; +static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } +static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (((long int) (sizeof (ac__type_sizeof_))) < 0) + { + long int i = longval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%ld\n", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%lu\n", i); + } + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_int=`cat conftest.val` +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 ) +if test "$ac_cv_type_int" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (int) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (int) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_int=0 + fi +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.val +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5 +echo "${ECHO_T}$ac_cv_sizeof_int" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT $ac_cv_sizeof_int +_ACEOF + + { echo "$as_me:$LINENO: checking for short" >&5 +echo $ECHO_N "checking for short... $ECHO_C" >&6; } +if test "${ac_cv_type_short+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 +typedef short ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_short=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_short=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5 +echo "${ECHO_T}$ac_cv_type_short" >&6; } + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ echo "$as_me:$LINENO: checking size of short" >&5 +echo $ECHO_N "checking size of short... $ECHO_C" >&6; } +if test "${ac_cv_sizeof_short+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +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 + typedef short ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + 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 + typedef short ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + 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 + typedef short ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=-1 ac_mid=-1 + while :; do + 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 + typedef short ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo= ac_hi= +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + 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 + typedef short ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr '(' $ac_mid ')' + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_short=$ac_lo;; +'') if test "$ac_cv_type_short" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (short) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (short) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_short=0 + fi ;; +esac +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 + typedef short ac__type_sizeof_; +static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } +static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (((long int) (sizeof (ac__type_sizeof_))) < 0) + { + long int i = longval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%ld\n", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%lu\n", i); + } + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_short=`cat conftest.val` +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 ) +if test "$ac_cv_type_short" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (short) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (short) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_short=0 + fi +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.val +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5 +echo "${ECHO_T}$ac_cv_sizeof_short" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_SHORT $ac_cv_sizeof_short +_ACEOF + + { echo "$as_me:$LINENO: checking for long" >&5 +echo $ECHO_N "checking for long... $ECHO_C" >&6; } +if test "${ac_cv_type_long+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 +typedef long ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_long=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_long=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 +echo "${ECHO_T}$ac_cv_type_long" >&6; } + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ echo "$as_me:$LINENO: checking size of long" >&5 +echo $ECHO_N "checking size of long... $ECHO_C" >&6; } +if test "${ac_cv_sizeof_long+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +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 + typedef long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + 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 + typedef long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + 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 + typedef long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=-1 ac_mid=-1 + while :; do + 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 + typedef long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo= ac_hi= +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + 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 + typedef long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr '(' $ac_mid ')' + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_long=$ac_lo;; +'') if test "$ac_cv_type_long" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (long) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (long) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_long=0 + fi ;; +esac +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 + typedef long ac__type_sizeof_; +static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } +static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (((long int) (sizeof (ac__type_sizeof_))) < 0) + { + long int i = longval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%ld\n", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%lu\n", i); + } + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_long=`cat conftest.val` +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 ) +if test "$ac_cv_type_long" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (long) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (long) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_long=0 + fi +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.val +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 +echo "${ECHO_T}$ac_cv_sizeof_long" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG $ac_cv_sizeof_long +_ACEOF + + { echo "$as_me:$LINENO: checking for char *" >&5 +echo $ECHO_N "checking for char *... $ECHO_C" >&6; } +if test "${ac_cv_type_char_p+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 +typedef char * ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_char_p=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_char_p=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_char_p" >&5 +echo "${ECHO_T}$ac_cv_type_char_p" >&6; } + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ echo "$as_me:$LINENO: checking size of char *" >&5 +echo $ECHO_N "checking size of char *... $ECHO_C" >&6; } +if test "${ac_cv_sizeof_char_p+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +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 + typedef char * ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + 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 + typedef char * ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + 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 + typedef char * ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=-1 ac_mid=-1 + while :; do + 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 + typedef char * ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo= ac_hi= +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + 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 + typedef char * ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr '(' $ac_mid ')' + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_char_p=$ac_lo;; +'') if test "$ac_cv_type_char_p" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (char *) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (char *) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_char_p=0 + fi ;; +esac +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 + typedef char * ac__type_sizeof_; +static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } +static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (((long int) (sizeof (ac__type_sizeof_))) < 0) + { + long int i = longval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%ld\n", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%lu\n", i); + } + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_char_p=`cat conftest.val` +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 ) +if test "$ac_cv_type_char_p" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (char *) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (char *) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_char_p=0 + fi +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.val +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_char_p" >&5 +echo "${ECHO_T}$ac_cv_sizeof_char_p" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_CHAR_P $ac_cv_sizeof_char_p +_ACEOF + + + +{ 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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + 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 + +LIBDL="-ldl" +ac_cv_have_dlfcn=yes + +fi + + +{ echo "$as_me:$LINENO: checking for shl_unload in -ldld" >&5 +echo $ECHO_N "checking for shl_unload in -ldld... $ECHO_C" >&6; } +if test "${ac_cv_lib_dld_shl_unload+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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_unload (); +int +main () +{ +return shl_unload (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dld_shl_unload=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_shl_unload=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_unload" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_shl_unload" >&6; } +if test $ac_cv_lib_dld_shl_unload = yes; then + +LIBDL="-ldld" +ac_cv_have_shload=yes + +fi + + + + + + + + { echo "$as_me:$LINENO: checking for size_t" >&5 +echo $ECHO_N "checking for size_t... $ECHO_C" >&6; } +if test "${ac_cv_type_size_t+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 +typedef size_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_size_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_size_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 +echo "${ECHO_T}$ac_cv_type_size_t" >&6; } + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ echo "$as_me:$LINENO: checking size of size_t" >&5 +echo $ECHO_N "checking size of size_t... $ECHO_C" >&6; } +if test "${ac_cv_sizeof_size_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +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 + typedef size_t ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + 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 + typedef size_t ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + 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 + typedef size_t ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=-1 ac_mid=-1 + while :; do + 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 + typedef size_t ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo= ac_hi= +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + 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 + typedef size_t ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr '(' $ac_mid ')' + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_size_t=$ac_lo;; +'') if test "$ac_cv_type_size_t" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (size_t) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (size_t) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_size_t=0 + fi ;; +esac +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 + typedef size_t ac__type_sizeof_; +static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } +static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (((long int) (sizeof (ac__type_sizeof_))) < 0) + { + long int i = longval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%ld\n", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%lu\n", i); + } + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_size_t=`cat conftest.val` +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 ) +if test "$ac_cv_type_size_t" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (size_t) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (size_t) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_size_t=0 + fi +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.val +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_size_t" >&5 +echo "${ECHO_T}$ac_cv_sizeof_size_t" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t +_ACEOF + + + { echo "$as_me:$LINENO: checking for unsigned long" >&5 +echo $ECHO_N "checking for unsigned long... $ECHO_C" >&6; } +if test "${ac_cv_type_unsigned_long+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 +typedef unsigned long ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_unsigned_long=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_unsigned_long=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long" >&5 +echo "${ECHO_T}$ac_cv_type_unsigned_long" >&6; } + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ echo "$as_me:$LINENO: checking size of unsigned long" >&5 +echo $ECHO_N "checking size of unsigned long... $ECHO_C" >&6; } +if test "${ac_cv_sizeof_unsigned_long+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +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 + typedef unsigned long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + 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 + typedef unsigned long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + 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 + typedef unsigned long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=-1 ac_mid=-1 + while :; do + 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 + typedef unsigned long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo= ac_hi= +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + 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 + typedef unsigned long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr '(' $ac_mid ')' + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_unsigned_long=$ac_lo;; +'') if test "$ac_cv_type_unsigned_long" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (unsigned long) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (unsigned long) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_unsigned_long=0 + fi ;; +esac +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 + typedef unsigned long ac__type_sizeof_; +static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } +static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (((long int) (sizeof (ac__type_sizeof_))) < 0) + { + long int i = longval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%ld\n", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%lu\n", i); + } + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_unsigned_long=`cat conftest.val` +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 ) +if test "$ac_cv_type_unsigned_long" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (unsigned long) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (unsigned long) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_unsigned_long=0 + fi +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.val +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_unsigned_long" >&5 +echo "${ECHO_T}$ac_cv_sizeof_unsigned_long" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UNSIGNED_LONG $ac_cv_sizeof_unsigned_long +_ACEOF + + + + { echo "$as_me:$LINENO: checking sizeof size_t == sizeof unsigned long" >&5 +echo $ECHO_N "checking sizeof size_t == sizeof unsigned long... $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. */ + +int +main () +{ + + #if SIZEOF_SIZE_T != SIZEOF_UNSIGNED_LONG + choke me + #endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + { { echo "$as_me:$LINENO: error: + Apparently on your system our assumption sizeof size_t == sizeof unsigned long + does not apply. Please mail kde-devel@kde.org with a description of your system! + " >&5 +echo "$as_me: error: + Apparently on your system our assumption sizeof size_t == sizeof unsigned long + does not apply. Please mail kde-devel@kde.org with a description of your system! + " >&2;} + { (exit 1); exit 1; }; } + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + +# darwin needs this to initialize the environment + +for ac_header in crt_externs.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; 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 core 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 { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.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;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&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 _NSGetEnviron" >&5 +echo $ECHO_N "checking for _NSGetEnviron... $ECHO_C" >&6; } +if test "${ac_cv_func__NSGetEnviron+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 _NSGetEnviron to an innocuous variant, in case declares _NSGetEnviron. + For example, HP-UX 11i declares gettimeofday. */ +#define _NSGetEnviron innocuous__NSGetEnviron + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char _NSGetEnviron (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef _NSGetEnviron + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char _NSGetEnviron (); +/* 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__NSGetEnviron || defined __stub____NSGetEnviron +choke me +#endif + +int +main () +{ +return _NSGetEnviron (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func__NSGetEnviron=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func__NSGetEnviron=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func__NSGetEnviron" >&5 +echo "${ECHO_T}$ac_cv_func__NSGetEnviron" >&6; } +if test $ac_cv_func__NSGetEnviron = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_NSGETENVIRON 1 +_ACEOF + +fi + + + + + + + + + + +for ac_func in vsnprintf snprintf +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 { as_var=$as_ac_var; eval "test \"\${$as_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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $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 +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&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 + + + + + + + + + +# Check whether --enable-embedded was given. +if test "${enable_embedded+set}" = set; then + enableval=$enable_embedded; kde_use_qt_emb=$enableval +else + kde_use_qt_emb=no + +fi + + +# Check whether --enable-qtopia was given. +if test "${enable_qtopia+set}" = set; then + enableval=$enable_qtopia; kde_use_qt_emb_palm=$enableval +else + kde_use_qt_emb_palm=no + +fi + + +# Check whether --enable-mac was given. +if test "${enable_mac+set}" = set; then + enableval=$enable_mac; kde_use_qt_mac=$enableval +else + kde_use_qt_mac=no + +fi + + +# used to disable x11-specific stuff on special platforms + if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then + include_x11_TRUE= + include_x11_FALSE='#' +else + include_x11_TRUE='#' + include_x11_FALSE= +fi + + +if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then + +{ echo "$as_me:$LINENO: checking for X" >&5 +echo $ECHO_N "checking for X... $ECHO_C" >&6; } + +if test "${kde_cv_have_x+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # One or both of the vars are not set, and there is no cached value. +if test "{$x_includes+set}" = set || test "$x_includes" = NONE; then + kde_x_includes=NO +else + kde_x_includes=$x_includes +fi +if test "{$x_libraries+set}" = set || test "$x_libraries" = NONE; then + kde_x_libraries=NO +else + kde_x_libraries=$x_libraries +fi + +# below we use the standard autoconf calls +ac_x_libraries=$kde_x_libraries +ac_x_includes=$kde_x_includes + + + + +if test "$ac_x_includes" = NO; then + # Guess where to find include files, by looking for this one X11 .h file. + test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h + + # First, try using that file with no special directory specified. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$x_direct_test_include> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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 && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # We can compile using X headers with no special include directory. +ac_x_includes= +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Look for the header file in a standard set of common directories. +# Check X11 before X11Rn because it is often a symlink to the current release. + for ac_dir in \ + /usr/X11/include \ + /usr/X11R6/include \ + /usr/X11R5/include \ + /usr/X11R4/include \ + \ + /usr/include/X11 \ + /usr/include/X11R6 \ + /usr/include/X11R5 \ + /usr/include/X11R4 \ + \ + /usr/local/X11/include \ + /usr/local/X11R6/include \ + /usr/local/X11R5/include \ + /usr/local/X11R4/include \ + \ + /usr/local/include/X11 \ + /usr/local/include/X11R6 \ + /usr/local/include/X11R5 \ + /usr/local/include/X11R4 \ + \ + /usr/X386/include \ + /usr/x386/include \ + /usr/XFree86/include/X11 \ + \ + /usr/include \ + /usr/local/include \ + /usr/unsupported/include \ + /usr/athena/include \ + /usr/local/x11r5/include \ + /usr/lpp/Xamples/include \ + \ + /usr/openwin/include \ + /usr/openwin/share/include \ + ; \ + do + if test -r "$ac_dir/$x_direct_test_include"; then + ac_x_includes=$ac_dir + break + fi + done +fi + +rm -f conftest.err conftest.$ac_ext +fi # $ac_x_includes = NO + +if test "$ac_x_libraries" = NO; then + # Check for the libraries. + + test -z "$x_direct_test_library" && x_direct_test_library=Xt + test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc + + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS="$LIBS" + LIBS="-l$x_direct_test_library $LIBS" +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 () +{ +${x_direct_test_function}(1) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + LIBS="$ac_save_LIBS" +# We can link X programs with no special library path. +ac_x_libraries= +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + LIBS="$ac_save_LIBS" +# First see if replacing the include by lib works. +# Check X11 before X11Rn because it is often a symlink to the current release. +for ac_dir in `echo "$ac_x_includes" | sed s/include/lib${kdelibsuff}/` \ + /usr/X11/lib${kdelibsuff} \ + /usr/X11R6/lib${kdelibsuff} \ + /usr/X11R5/lib${kdelibsuff} \ + /usr/X11R4/lib${kdelibsuff} \ + \ + /usr/lib${kdelibsuff}/X11 \ + /usr/lib${kdelibsuff}/X11R6 \ + /usr/lib${kdelibsuff}/X11R5 \ + /usr/lib${kdelibsuff}/X11R4 \ + \ + /usr/local/X11/lib${kdelibsuff} \ + /usr/local/X11R6/lib${kdelibsuff} \ + /usr/local/X11R5/lib${kdelibsuff} \ + /usr/local/X11R4/lib${kdelibsuff} \ + \ + /usr/local/lib${kdelibsuff}/X11 \ + /usr/local/lib${kdelibsuff}/X11R6 \ + /usr/local/lib${kdelibsuff}/X11R5 \ + /usr/local/lib${kdelibsuff}/X11R4 \ + \ + /usr/X386/lib${kdelibsuff} \ + /usr/x386/lib${kdelibsuff} \ + /usr/XFree86/lib${kdelibsuff}/X11 \ + \ + /usr/lib${kdelibsuff} \ + /usr/local/lib${kdelibsuff} \ + /usr/unsupported/lib${kdelibsuff} \ + /usr/athena/lib${kdelibsuff} \ + /usr/local/x11r5/lib${kdelibsuff} \ + /usr/lpp/Xamples/lib${kdelibsuff} \ + /lib/usr/lib${kdelibsuff}/X11 \ + \ + /usr/openwin/lib${kdelibsuff} \ + /usr/openwin/share/lib${kdelibsuff} \ + ; \ +do + for ac_extension in a so sl; do + if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi # $ac_x_libraries = NO + +case "$host" in +mips-sgi-irix6*) + ;; +*-*-solaris*) + ;; +*) + rm -f -r conftest.dir +if mkdir conftest.dir; then + cd conftest.dir + cat >Imakefile <<'_ACEOF' +incroot: + @echo incroot='${INCROOT}' +usrlibdir: + @echo usrlibdir='${USRLIBDIR}' +libdir: + @echo libdir='${LIBDIR}' +_ACEOF + if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. + for ac_var in incroot usrlibdir libdir; do + eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" + done + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl; do + if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && + test -f "$ac_im_libdir/libX11.$ac_extension"; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case $ac_im_incroot in + /usr/include) ac_x_includes= ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; + esac + case $ac_im_usrlibdir in + /usr/lib | /lib) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; + esac + fi + cd .. + rm -f -r conftest.dir +fi + + if test -z "$ac_x_includes"; then + ac_x_includes="." + fi + if test -z "$ac_x_libraries"; then + ac_x_libraries="/usr/lib${kdelibsuff}" + fi +esac +#from now on we use our own again + +# when the user already gave --x-includes, we ignore +# what the standard autoconf macros told us. +if test "$kde_x_includes" = NO; then + kde_x_includes=$ac_x_includes +fi + +# for --x-libraries too +if test "$kde_x_libraries" = NO; then + kde_x_libraries=$ac_x_libraries +fi + +if test "$kde_x_includes" = NO; then + { { echo "$as_me:$LINENO: error: Can't find X includes. Please check your installation and add the correct paths!" >&5 +echo "$as_me: error: Can't find X includes. Please check your installation and add the correct paths!" >&2;} + { (exit 1); exit 1; }; } +fi + +if test "$kde_x_libraries" = NO; then + { { echo "$as_me:$LINENO: error: Can't find X libraries. Please check your installation and add the correct paths!" >&5 +echo "$as_me: error: Can't find X libraries. Please check your installation and add the correct paths!" >&2;} + { (exit 1); exit 1; }; } +fi + +# Record where we found X for the cache. +kde_cv_have_x="have_x=yes \ + kde_x_includes=$kde_x_includes kde_x_libraries=$kde_x_libraries" + +fi + +eval "$kde_cv_have_x" + +if test "$have_x" != yes; then + { echo "$as_me:$LINENO: result: $have_x" >&5 +echo "${ECHO_T}$have_x" >&6; } + no_x=yes +else + { echo "$as_me:$LINENO: result: libraries $kde_x_libraries, headers $kde_x_includes" >&5 +echo "${ECHO_T}libraries $kde_x_libraries, headers $kde_x_includes" >&6; } +fi + +if test -z "$kde_x_includes" || test "x$kde_x_includes" = xNONE; then + X_INCLUDES="" + x_includes="."; else + x_includes=$kde_x_includes + X_INCLUDES="-I$x_includes" +fi + +if test -z "$kde_x_libraries" || test "x$kde_x_libraries" = xNONE; then + X_LDFLAGS="" + x_libraries="/usr/lib"; else + x_libraries=$kde_x_libraries + X_LDFLAGS="-L$x_libraries" +fi +all_includes="$X_INCLUDES" +all_libraries="$X_LDFLAGS $LDFLAGS_AS_NEEDED $LDFLAGS_NEW_DTAGS" + +# Check for libraries that X11R6 Xt/Xaw programs need. +ac_save_LDFLAGS="$LDFLAGS" +LDFLAGS="$LDFLAGS $X_LDFLAGS" +# SM needs ICE to (dynamically) link under SunOS 4.x (so we have to +# check for ICE first), but we must link in the order -lSM -lICE or +# we get undefined symbols. So assume we have SM if we have ICE. +# These have to be linked with before -lX11, unlike the other +# libraries we check for below, so use a different variable. +# --interran@uluru.Stanford.EDU, kb@cs.umb.edu. +{ echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5 +echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6; } +if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lICE $X_EXTRA_LIBS $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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char IceConnectionNumber (); +int +main () +{ +return IceConnectionNumber (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_ICE_IceConnectionNumber=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_ICE_IceConnectionNumber=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 +echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6; } +if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then + LIBSM="-lSM -lICE" +fi + +LDFLAGS="$ac_save_LDFLAGS" + +LIB_X11='-lX11 $(LIBSOCKET)' + +{ echo "$as_me:$LINENO: checking for libXext" >&5 +echo $ECHO_N "checking for libXext... $ECHO_C" >&6; } +if test "${kde_cv_have_libXext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +kde_ldflags_safe="$LDFLAGS" +kde_libs_safe="$LIBS" + +LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS" +LIBS="-lXext -lX11 $LIBSOCKET" + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#ifdef STDC_HEADERS +# include +#endif + +int +main () +{ + +printf("hello Xext\n"); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + kde_cv_have_libXext=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + kde_cv_have_libXext=no + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + +LDFLAGS=$kde_ldflags_safe +LIBS=$kde_libs_safe + +fi + + +{ echo "$as_me:$LINENO: result: $kde_cv_have_libXext" >&5 +echo "${ECHO_T}$kde_cv_have_libXext" >&6; } + +if test "$kde_cv_have_libXext" = "no"; then + { { echo "$as_me:$LINENO: error: We need a working libXext to proceed. Since configure +can't find it itself, we stop here assuming that make wouldn't find +them either." >&5 +echo "$as_me: error: We need a working libXext to proceed. Since configure +can't find it itself, we stop here assuming that make wouldn't find +them either." >&2;} + { (exit 1); exit 1; }; } +fi + +LIB_XEXT="-lXext" +QTE_NORTTI="" + +elif test "$kde_use_qt_emb" = "yes"; then + CPPFLAGS=-DQWS + CXXFLAGS="$CXXFLAGS -fno-rtti" + QTE_NORTTI="-fno-rtti -DQWS" + X_PRE_LIBS="" + LIB_X11="" + LIB_XEXT="" + LIB_XRENDER="" + LIBSM="" + X_INCLUDES="" + X_LDFLAGS="" + x_includes="" + x_libraries="" +elif test "$kde_use_qt_mac" = "yes"; then + CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp" + CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp" + X_PRE_LIBS="" + LIB_X11="" + LIB_XEXT="" + LIB_XRENDER="" + LIBSM="" + X_INCLUDES="" + X_LDFLAGS="" + x_includes="" + x_libraries="" +fi + + + + + + + + + + + + + + LIBPTHREAD="" + + if test -n "$PTHREAD_LIBS"; then + if test "x$PTHREAD_LIBS" = "x-pthread" ; then + LIBPTHREAD="PTHREAD" + else + PTHREAD_LIBS_save="$PTHREAD_LIBS" + PTHREAD_LIBS=`echo "$PTHREAD_LIBS_save" | sed -e 's,^-l,,g'` + { echo "$as_me:$LINENO: checking for pthread_create in $PTHREAD_LIBS" >&5 +echo $ECHO_N "checking for pthread_create in $PTHREAD_LIBS... $ECHO_C" >&6; } + + kde_save_LDFLAGS="$LDFLAGS" + kde_save_LIBS="$LIBS" + LDFLAGS="$LDFLAGS $all_libraries" + case $host_os in + aix*) LDFLAGS="-brtl $LDFLAGS" + test "$GCC" = yes && LDFLAGS="-Wl,$LDFLAGS" + ;; + esac + as_ac_Lib=`echo "ac_cv_lib_$PTHREAD_LIBS''_pthread_create" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for pthread_create in -l$PTHREAD_LIBS" >&5 +echo $ECHO_N "checking for pthread_create in -l$PTHREAD_LIBS... $ECHO_C" >&6; } +if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-l$PTHREAD_LIBS $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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_create (); +int +main () +{ +return pthread_create (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_Lib=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Lib=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +ac_res=`eval echo '${'$as_ac_Lib'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Lib'}'` = yes; then + LIBPTHREAD="$PTHREAD_LIBS_save" +fi + + LDFLAGS="$kde_save_LDFLAGS" + LIBS="$kde_save_LIBS" + + PTHREAD_LIBS="$PTHREAD_LIBS_save" + fi + fi + + if test -z "$LIBPTHREAD"; then + { echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 +echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6; } +if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $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 GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_create (); +int +main () +{ +return pthread_create (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_pthread_pthread_create=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_pthread_pthread_create=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5 +echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6; } +if test $ac_cv_lib_pthread_pthread_create = yes; then + LIBPTHREAD="-lpthread" +fi + + fi + + if test -z "$LIBPTHREAD" ; then + { echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 +echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6; } + kde_safe_libs=$LIBS + LIBS="$LIBS -lpthread" + 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 () +{ +(void)pthread_create(0,0,0,0); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + LIBPTHREAD="-lpthread" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$kde_safe_libs + fi + + if test "x$LIBPTHREAD" = "xPTHREAD" ; then + LIBPTHREAD="" + fi + + + + + USE_THREADS="" + if test -z "$LIBPTHREAD"; then + +{ echo "$as_me:$LINENO: checking whether $CXX supports -pthread" >&5 +echo $ECHO_N "checking whether $CXX supports -pthread... $ECHO_C" >&6; } +kde_cache=`echo pthread | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -pthread" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + USE_THREADS="-D_THREAD_SAFE -pthread" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + fi + + + + case $host_os in + solaris*) + +{ echo "$as_me:$LINENO: checking whether $CXX supports -mt" >&5 +echo $ECHO_N "checking whether $CXX supports -mt... $ECHO_C" >&6; } +kde_cache=`echo mt | sed 'y% .=/+-,%____p__%'` +if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -mt" + 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; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_prog_cxx_$kde_cache=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS="$save_CXXFLAGS" + 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 + +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + USE_THREADS="-mt" +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + +fi + + CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4" + ;; + freebsd*) + CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE $PTHREAD_CFLAGS" + ;; + aix*) + CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" + LIBPTHREAD="$LIBPTHREAD -lc_r" + ;; + linux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" + if test "$CXX" = "KCC"; then + CXXFLAGS="$CXXFLAGS --thread_safe" + NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS --thread_safe" + fi + ;; + *) + ;; + esac + + + + +{ echo "$as_me:$LINENO: checking for extra includes" >&5 +echo $ECHO_N "checking for extra includes... $ECHO_C" >&6; } + +# Check whether --with-extra-includes was given. +if test "${with_extra_includes+set}" = set; then + withval=$with_extra_includes; kde_use_extra_includes="$withval" +else + kde_use_extra_includes=NONE + +fi + +kde_extra_includes= +if test -n "$kde_use_extra_includes" && \ + test "$kde_use_extra_includes" != "NONE"; then + + ac_save_ifs=$IFS + IFS=':' + for dir in $kde_use_extra_includes; do + kde_extra_includes="$kde_extra_includes $dir" + USER_INCLUDES="$USER_INCLUDES -I$dir" + done + IFS=$ac_save_ifs + kde_use_extra_includes="added" +else + kde_use_extra_includes="no" +fi + + +{ echo "$as_me:$LINENO: result: $kde_use_extra_includes" >&5 +echo "${ECHO_T}$kde_use_extra_includes" >&6; } + +kde_extra_libs= +{ echo "$as_me:$LINENO: checking for extra libs" >&5 +echo $ECHO_N "checking for extra libs... $ECHO_C" >&6; } + +# Check whether --with-extra-libs was given. +if test "${with_extra_libs+set}" = set; then + withval=$with_extra_libs; kde_use_extra_libs=$withval +else + kde_use_extra_libs=NONE + +fi + +if test -n "$kde_use_extra_libs" && \ + test "$kde_use_extra_libs" != "NONE"; then + + ac_save_ifs=$IFS + IFS=':' + for dir in $kde_use_extra_libs; do + kde_extra_libs="$kde_extra_libs $dir" + KDE_EXTRA_RPATH="$KDE_EXTRA_RPATH -R $dir" + USER_LDFLAGS="$USER_LDFLAGS -L$dir" + done + IFS=$ac_save_ifs + kde_use_extra_libs="added" +else + kde_use_extra_libs="no" +fi + + + +{ echo "$as_me:$LINENO: result: $kde_use_extra_libs" >&5 +echo "${ECHO_T}$kde_use_extra_libs" >&6; } + + + + +{ echo "$as_me:$LINENO: checking for libz" >&5 +echo $ECHO_N "checking for libz... $ECHO_C" >&6; } +if test "${ac_cv_lib_z+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +kde_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -lz $LIBSOCKET" +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" +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 () +{ + + char buf[42]; + gzFile f = (gzFile) 0; + /* this would segfault.. but we only link, don't run */ + (void) gzgets(f, buf, sizeof(buf)); + + return (zlibVersion() == ZLIB_VERSION); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "ac_cv_lib_z='-lz'" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "ac_cv_lib_z=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" + +fi +if test ! "$ac_cv_lib_z" = no; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_LIBZ 1 +_ACEOF + + LIBZ="$ac_cv_lib_z" + { echo "$as_me:$LINENO: result: $ac_cv_lib_z" >&5 +echo "${ECHO_T}$ac_cv_lib_z" >&6; } +else + { { echo "$as_me:$LINENO: error: not found. + Possibly configure picks up an outdated version + installed by XFree86. Remove it from your system. + + Check your installation and look into config.log" >&5 +echo "$as_me: error: not found. + Possibly configure picks up an outdated version + installed by XFree86. Remove it from your system. + + Check your installation and look into config.log" >&2;} + { (exit 1); exit 1; }; } + LIBZ="" +fi + + + + + +{ echo "$as_me:$LINENO: checking for libpng" >&5 +echo $ECHO_N "checking for libpng... $ECHO_C" >&6; } +if test "${ac_cv_lib_png+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +kde_save_LIBS="$LIBS" +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET" +else +LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm" +fi +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" + +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 () +{ + + png_structp png_ptr = png_create_read_struct( /* image ptr */ + PNG_LIBPNG_VER_STRING, 0, 0, 0 ); + return( png_ptr != 0 ); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "ac_cv_lib_png='-lpng $LIBZ -lm'" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "ac_cv_lib_png=no" + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" + +fi +if eval "test ! \"`echo $ac_cv_lib_png`\" = no"; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPNG 1 +_ACEOF + + LIBPNG="$ac_cv_lib_png" + + { echo "$as_me:$LINENO: result: $ac_cv_lib_png" >&5 +echo "${ECHO_T}$ac_cv_lib_png" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + LIBPNG="" + +fi + + + +{ echo "$as_me:$LINENO: checking for libjpeg6b" >&5 +echo $ECHO_N "checking for libjpeg6b... $ECHO_C" >&6; } +if test "${ac_cv_lib_jpeg_6b+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +ac_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -ljpeg6b -lm" +ac_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" +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. */ +struct jpeg_decompress_struct; +typedef struct jpeg_decompress_struct * j_decompress_ptr; +typedef int size_t; +#ifdef __cplusplus +extern "C" { +#endif + void jpeg_CreateDecompress(j_decompress_ptr cinfo, + int version, size_t structsize); +#ifdef __cplusplus +} +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + +int +main () +{ +jpeg_CreateDecompress(0L, 0, 0); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "ac_cv_lib_jpeg_6b=-ljpeg6b" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "ac_cv_lib_jpeg_6b=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS="$ac_save_LIBS" +CFLAGS="$ac_save_CFLAGS" + +fi + + +if eval "test ! \"`echo $ac_cv_lib_jpeg_6b`\" = no"; then + LIBJPEG="$ac_cv_lib_jpeg_6b" + { echo "$as_me:$LINENO: result: $ac_cv_lib_jpeg_6b" >&5 +echo "${ECHO_T}$ac_cv_lib_jpeg_6b" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + +{ echo "$as_me:$LINENO: checking for libjpeg" >&5 +echo $ECHO_N "checking for libjpeg... $ECHO_C" >&6; } +if test "${ac_cv_lib_jpeg_normal+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +ac_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -ljpeg -lm" +ac_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" +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. */ +struct jpeg_decompress_struct; +typedef struct jpeg_decompress_struct * j_decompress_ptr; +typedef int size_t; +#ifdef __cplusplus +extern "C" { +#endif + void jpeg_CreateDecompress(j_decompress_ptr cinfo, + int version, size_t structsize); +#ifdef __cplusplus +} +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + +int +main () +{ +jpeg_CreateDecompress(0L, 0, 0); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "ac_cv_lib_jpeg_normal=-ljpeg" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "ac_cv_lib_jpeg_normal=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS="$ac_save_LIBS" +CFLAGS="$ac_save_CFLAGS" + +fi + + +if eval "test ! \"`echo $ac_cv_lib_jpeg_normal`\" = no"; then + LIBJPEG="$ac_cv_lib_jpeg_normal" + { echo "$as_me:$LINENO: result: $ac_cv_lib_jpeg_normal" >&5 +echo "${ECHO_T}$ac_cv_lib_jpeg_normal" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + + LIBJPEG= + + +fi + + + +fi + + + +jpeg_incdirs="$includedir /usr/include /usr/local/include $kde_extra_includes" + +jpeg_incdir=NO +for i in $jpeg_incdirs; +do + for j in jpeglib.h; + do + echo "configure: 29753: $i/$j" >&5 + if test -r "$i/$j"; then + echo "taking that" >&5 + jpeg_incdir=$i + break 2 + fi + done +done + +test "x$jpeg_incdir" = xNO && jpeg_incdir= + +if test -n "$jpeg_incdir" && test -n "$LIBJPEG" ; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_LIBJPEG 1 +_ACEOF + +else + if test -n "$jpeg_incdir" || test -n "$LIBJPEG" ; then + { echo "$as_me:$LINENO: WARNING: +There is an installation error in jpeg support. You seem to have only one +of either the headers _or_ the libraries installed. You may need to either +provide correct --with-extra-... options, or the development package of +libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/ +Disabling JPEG support. +" >&5 +echo "$as_me: WARNING: +There is an installation error in jpeg support. You seem to have only one +of either the headers _or_ the libraries installed. You may need to either +provide correct --with-extra-... options, or the development package of +libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/ +Disabling JPEG support. +" >&2;} + else + { echo "$as_me:$LINENO: WARNING: libjpeg not found. disable JPEG support." >&5 +echo "$as_me: WARNING: libjpeg not found. disable JPEG support." >&2;} + fi + jpeg_incdir= + LIBJPEG= +fi + + + + + + + + { echo "$as_me:$LINENO: checking for perl" >&5 +echo $ECHO_N "checking for perl... $ECHO_C" >&6; } + if test -n "$PERL"; then + kde_cv_path="$PERL"; + else + kde_cache=`echo perl | sed 'y%./+-%__p_%'` + + if { as_var=kde_cv_path_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z ""; then dirs="$bindir $exec_prefix/bin $prefix/bin $dirs" + else dirs="$dirs $bindir $exec_prefix/bin $prefix/bin" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/perl"; then + if test -n "" + then + evalstr="$dir/perl 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/perl" + break + fi + else + kde_cv_path="$dir/perl" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + +fi + + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + + { { echo "$as_me:$LINENO: error: No Perl found in your $PATH. +We need perl to generate some code." >&5 +echo "$as_me: error: No Perl found in your $PATH. +We need perl to generate some code." >&2;} + { (exit 1); exit 1; }; } + + else + { echo "$as_me:$LINENO: result: $kde_cv_path" >&5 +echo "${ECHO_T}$kde_cv_path" >&6; } + PERL=$kde_cv_path + + fi + + + + + + + + + + +# Check whether --enable-mt was given. +if test "${enable_mt+set}" = set; then + enableval=$enable_mt; kde_use_qt_mt=$enableval +else + + if test $kde_qtver = 3; then + kde_use_qt_mt=yes + else + kde_use_qt_mt=no + fi + + +fi + + +USING_QT_MT="" + + +KDE_MT_LDFLAGS= +KDE_MT_LIBS= +if test "x$kde_use_qt_mt" = "xyes"; then + + + + if test -z "$LIBPTHREAD"; then + if test -z "$USE_THREADS"; then + kde_check_threading_default=no + else + kde_check_threading_default=yes + fi + else + kde_check_threading_default=yes + fi + # Check whether --enable-threading was given. +if test "${enable_threading+set}" = set; then + enableval=$enable_threading; kde_use_threading=$enableval +else + kde_use_threading=$kde_check_threading_default +fi + + if test "x$kde_use_threading" = "xyes"; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LIBPTHREAD 1 +_ACEOF + + fi + + if test "x$kde_use_threading" = "xyes"; then + CPPFLAGS="$USE_THREADS -DQT_THREAD_SUPPORT $CPPFLAGS" + KDE_MT_LDFLAGS="$USE_THREADS" + KDE_MT_LIBS="$LIBPTHREAD" + else + kde_use_qt_mt=no + fi +fi + + + +kde_qt_was_given=yes + +if test -z "$LIBQT_GLOB"; then + if test "x$kde_use_qt_emb" = "xyes"; then + LIBQT_GLOB="libqte.*" + else + LIBQT_GLOB="libqt.*" + fi +fi + +if test -z "$LIBQT"; then + if test "x$kde_use_qt_emb" = "xyes"; then + qtlib="qte" + else + qtlib="qt" + fi + + kde_int_qt="-l$qtlib" +else + kde_int_qt="$LIBQT" + kde_lib_qt_set=yes +fi + +if test -z "$LIBQPE"; then + if test "x$kde_use_qt_emb" = "xyes"; then + if test "x$kde_use_qt_emb_palm" = "xyes"; then + LIB_QPE="-lqpe" + else + LIB_QPE="" + fi + else + LIB_QPE="" + fi +fi + + +if test "x$kde_use_qt_mt" = "xyes"; then + if test -z "$LIBQT"; then + LIBQT="-l$qtlib-mt" + kde_int_qt="-l$qtlib-mt" + else + LIBQT="$qtlib-mt" + kde_int_qt="$qtlib-mt" + fi + LIBQT_GLOB="lib$qtlib-mt.*" + USING_QT_MT="using -mt" +else + LIBQT="-l$qtlib" +fi + +if test $kde_qtver != 1; then + + + + LIBQT="$LIBQT $LIBPNG $LIBJPEG" +fi + +if test $kde_qtver = 3; then + + LIBQT="$LIBQT $LIBDL" +fi + +{ echo "$as_me:$LINENO: checking for Qt" >&5 +echo $ECHO_N "checking for Qt... $ECHO_C" >&6; } + +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET" +fi +ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO +qt_libraries="" +qt_includes="" + +# Check whether --with-qt-dir was given. +if test "${with_qt_dir+set}" = set; then + withval=$with_qt_dir; ac_qt_includes="$withval"/include + ac_qt_libraries="$withval"/lib${kdelibsuff} + ac_qt_bindir="$withval"/bin + +fi + + + +# Check whether --with-qt-includes was given. +if test "${with_qt_includes+set}" = set; then + withval=$with_qt_includes; + ac_qt_includes="$withval" + +fi + + +kde_qt_libs_given=no + + +# Check whether --with-qt-libraries was given. +if test "${with_qt_libraries+set}" = set; then + withval=$with_qt_libraries; ac_qt_libraries="$withval" + kde_qt_libs_given=yes + +fi + + +if test "${ac_cv_have_qt+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + #try to guess Qt locations + +qt_incdirs="" +for dir in $kde_qt_dirs; do + qt_incdirs="$qt_incdirs $dir/include $dir" +done +qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/include/qt3 $x_includes" +if test ! "$ac_qt_includes" = "NO"; then + qt_incdirs="$ac_qt_includes $qt_incdirs" +fi + +if test "$kde_qtver" != "1"; then + kde_qt_header=qstyle.h +else + kde_qt_header=qglobal.h +fi + + +qt_incdir=NO +for i in $qt_incdirs; +do + for j in $kde_qt_header; + do + echo "configure: 30061: $i/$j" >&5 + if test -r "$i/$j"; then + echo "taking that" >&5 + qt_incdir=$i + break 2 + fi + done +done + +ac_qt_includes="$qt_incdir" + +qt_libdirs="" +for dir in $kde_qt_dirs; do + qt_libdirs="$qt_libdirs $dir/lib${kdelibsuff} $dir" +done +qt_libdirs="$QTLIB $qt_libdirs /usr/X11R6/lib /usr/lib /usr/local/qt/lib $x_libraries" +if test ! "$ac_qt_libraries" = "NO"; then + qt_libdir=$ac_qt_libraries +else + qt_libdirs="$ac_qt_libraries $qt_libdirs" + # if the Qt was given, the chance is too big that libqt.* doesn't exist + qt_libdir=NONE + for dir in $qt_libdirs; do + try="ls -1 $dir/${LIBQT_GLOB}" + if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried $dir" >&5 ; fi + done +fi +for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do + if test -e "$a"; then + LIBQT="$LIBQT ${kde_int_qt}_incremental" + break + fi +done + +ac_qt_libraries="$qt_libdir" + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + + +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes" +LDFLAGS="$LDFLAGS -L$qt_libdir $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS" +LIBS="$LIBS $LIBQT $KDE_MT_LIBS" + + + +cat > conftest.$ac_ext < +#include +EOF +if test "$kde_qtver" = "2"; then +cat >> conftest.$ac_ext < +#include +#include +EOF + +if test $kde_qtsubver -gt 0; then +cat >> conftest.$ac_ext <> conftest.$ac_ext < +#include +#include +EOF +fi + +echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext +cat >> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest; then + rm -f conftest* +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_qt_libraries="NO" +fi +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +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 "$ac_qt_includes" = NO || test "$ac_qt_libraries" = NO; then + ac_cv_have_qt="have_qt=no" + ac_qt_notfound="" + missing_qt_mt="" + if test "$ac_qt_includes" = NO; then + if test "$ac_qt_libraries" = NO; then + ac_qt_notfound="(headers and libraries)"; + else + ac_qt_notfound="(headers)"; + fi + else + if test "x$kde_use_qt_mt" = "xyes"; then + missing_qt_mt=" +Make sure that you have compiled Qt with thread support!" + ac_qt_notfound="(library $qtlib-mt)"; + else + ac_qt_notfound="(library $qtlib)"; + fi + fi + + { { echo "$as_me:$LINENO: error: Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation! +For more details about this problem, look at the end of config.log.$missing_qt_mt" >&5 +echo "$as_me: error: Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation! +For more details about this problem, look at the end of config.log.$missing_qt_mt" >&2;} + { (exit 1); exit 1; }; } +else + have_qt="yes" +fi + +fi + + +eval "$ac_cv_have_qt" + +if test "$have_qt" != yes; then + { echo "$as_me:$LINENO: result: $have_qt" >&5 +echo "${ECHO_T}$have_qt" >&6; }; +else + ac_cv_have_qt="have_qt=yes \ + ac_qt_includes=$ac_qt_includes ac_qt_libraries=$ac_qt_libraries" + { echo "$as_me:$LINENO: result: libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT" >&5 +echo "${ECHO_T}libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT" >&6; } + + qt_libraries="$ac_qt_libraries" + qt_includes="$ac_qt_includes" +fi + +if test ! "$kde_qt_libs_given" = "yes" && test ! "$kde_qtver" = 3; then + + +{ echo "$as_me:$LINENO: checking if Qt compiles without flags" >&5 +echo $ECHO_N "checking if Qt compiles without flags... $ECHO_C" >&6; } +if test "${kde_cv_qt_direct+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + +ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH +ac_LIBRARY_PATH="$LIBRARY_PATH" +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$qt_includes" +LDFLAGS="$LDFLAGS $X_LDFLAGS" +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBS="$LIBQT -lXext -lX11 $LIBSOCKET" +else +LIBS="$LIBQT $LIBSOCKET" +fi +LD_LIBRARY_PATH= +export LD_LIBRARY_PATH +LIBRARY_PATH= +export LIBRARY_PATH + + + +cat > conftest.$ac_ext < +#include +EOF +if test "$kde_qtver" = "2"; then +cat >> conftest.$ac_ext < +#include +#include +EOF + +if test $kde_qtsubver -gt 0; then +cat >> conftest.$ac_ext <> conftest.$ac_ext < +#include +#include +EOF +fi + +echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext +cat >> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest; then + kde_cv_qt_direct="yes" +else + kde_cv_qt_direct="no" + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 +fi + +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" +export LD_LIBRARY_PATH +LIBRARY_PATH="$ac_LIBRARY_PATH" +export LIBRARY_PATH +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 + + +if test "$kde_cv_qt_direct" = "yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + qt_libraries= +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + +fi + +fi + + + + +if test "$qt_includes" = "$x_includes" || test -z "$qt_includes"; then + QT_INCLUDES="" +else + QT_INCLUDES="-I$qt_includes" + all_includes="$QT_INCLUDES $all_includes" +fi + +if test "$qt_libraries" = "$x_libraries" || test -z "$qt_libraries"; then + QT_LDFLAGS="" +else + QT_LDFLAGS="-L$qt_libraries" + all_libraries="$QT_LDFLAGS $all_libraries" +fi +test -z "$KDE_MT_LDFLAGS" || all_libraries="$all_libraries $KDE_MT_LDFLAGS" + + + + + + qt_bindirs="" + for dir in $kde_qt_dirs; do + qt_bindirs="$qt_bindirs $dir/bin $dir/src/moc" + done + qt_bindirs="$qt_bindirs /usr/bin /usr/X11R6/bin /usr/local/qt/bin" + if test ! "$ac_qt_bindir" = "NO"; then + qt_bindirs="$ac_qt_bindir $qt_bindirs" + fi + + + { echo "$as_me:$LINENO: checking for moc" >&5 +echo $ECHO_N "checking for moc... $ECHO_C" >&6; } + if test -n "$MOC"; then + kde_cv_path="$MOC"; + else + kde_cache=`echo moc | sed 'y%./+-%__p_%'` + + if { as_var=kde_cv_path_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z ""; then dirs="$qt_bindirs $dirs" + else dirs="$dirs $qt_bindirs" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/moc"; then + if test -n "" + then + evalstr="$dir/moc 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/moc" + break + fi + else + kde_cv_path="$dir/moc" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + +fi + + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + + { { echo "$as_me:$LINENO: error: No Qt meta object compiler (moc) found! +Please check whether you installed Qt correctly. +You need to have a running moc binary. +configure tried to run $ac_cv_path_moc and the test didn't +succeed. If configure shouldn't have tried this one, set +the environment variable MOC to the right one before running +configure. +" >&5 +echo "$as_me: error: No Qt meta object compiler (moc) found! +Please check whether you installed Qt correctly. +You need to have a running moc binary. +configure tried to run $ac_cv_path_moc and the test didn't +succeed. If configure shouldn't have tried this one, set +the environment variable MOC to the right one before running +configure. +" >&2;} + { (exit 1); exit 1; }; } + + else + { echo "$as_me:$LINENO: result: $kde_cv_path" >&5 +echo "${ECHO_T}$kde_cv_path" >&6; } + MOC=$kde_cv_path + + fi + + if test -z "$UIC_NOT_NEEDED"; then + + { echo "$as_me:$LINENO: checking for uic" >&5 +echo $ECHO_N "checking for uic... $ECHO_C" >&6; } + if test -n "$UIC_PATH"; then + kde_cv_path="$UIC_PATH"; + else + kde_cache=`echo uic | sed 'y%./+-%__p_%'` + + if { as_var=kde_cv_path_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z ""; then dirs="$qt_bindirs $dirs" + else dirs="$dirs $qt_bindirs" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/uic"; then + if test -n "" + then + evalstr="$dir/uic 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/uic" + break + fi + else + kde_cv_path="$dir/uic" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + +fi + + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + UIC_PATH="" + else + { echo "$as_me:$LINENO: result: $kde_cv_path" >&5 +echo "${ECHO_T}$kde_cv_path" >&6; } + UIC_PATH=$kde_cv_path + + fi + + if test -z "$UIC_PATH" ; then + + { echo "$as_me:$LINENO: WARNING: No Qt ui compiler (uic) found! +Please check whether you installed Qt correctly. +You need to have a running uic binary. +configure tried to run $ac_cv_path_uic and the test didn't +succeed. If configure shouldn't have tried this one, set +the environment variable UIC to the right one before running +configure. +" >&5 +echo "$as_me: WARNING: No Qt ui compiler (uic) found! +Please check whether you installed Qt correctly. +You need to have a running uic binary. +configure tried to run $ac_cv_path_uic and the test didn't +succeed. If configure shouldn't have tried this one, set +the environment variable UIC to the right one before running +configure. +" >&2;} + + exit 1 + else + UIC=$UIC_PATH + + if test $kde_qtver = 3; then + + { echo "$as_me:$LINENO: checking whether uic supports -L " >&5 +echo $ECHO_N "checking whether uic supports -L ... $ECHO_C" >&6; } + kde_cache=`echo L | sed 'y% .=/+-%____p_%'` + if { as_var=kde_cv_prog_uic_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.ui < +EOT + ac_uic_testrun="$UIC_PATH -L /nonexistent conftest.ui >/dev/null" + if { (eval echo "$as_me:$LINENO: \"$ac_uic_testrun\"") >&5 + (eval $ac_uic_testrun) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + eval "kde_cv_prog_uic_$kde_cache=yes" + else + eval "kde_cv_prog_uic_$kde_cache=no" + fi + rm -f conftest* + +fi + + + if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + ac_uic_supports_libpath=yes + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + ac_uic_supports_libpath=no + fi + + + { echo "$as_me:$LINENO: checking whether uic supports -nounload " >&5 +echo $ECHO_N "checking whether uic supports -nounload ... $ECHO_C" >&6; } + kde_cache=`echo nounload | sed 'y% .=/+-%____p_%'` + if { as_var=kde_cv_prog_uic_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.ui < +EOT + ac_uic_testrun="$UIC_PATH -nounload conftest.ui >/dev/null" + if { (eval echo "$as_me:$LINENO: \"$ac_uic_testrun\"") >&5 + (eval $ac_uic_testrun) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + eval "kde_cv_prog_uic_$kde_cache=yes" + else + eval "kde_cv_prog_uic_$kde_cache=no" + fi + rm -f conftest* + +fi + + + if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + ac_uic_supports_nounload=yes + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + : + ac_uic_supports_nounload=no + fi + + + if test x$ac_uic_supports_libpath = xyes; then + UIC="$UIC -L \$(kde_widgetdir)" + fi + if test x$ac_uic_supports_nounload = xyes; then + UIC="$UIC -nounload" + fi + fi + fi + else + UIC="echo uic not available: " + fi + + + + + UIC_TR="i18n" + if test $kde_qtver = 3; then + UIC_TR="tr2i18n" + fi + + + + + +if test -n "$LIBJPEG"; then +{ echo "$as_me:$LINENO: checking if Qt needs $LIBJPEG" >&5 +echo $ECHO_N "checking if Qt needs $LIBJPEG... $ECHO_C" >&6; } +if test "${kde_cv_qt_jpeg+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + +ac_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS $LIBQT" +LIBS=`echo $LIBS | sed "s/$LIBJPEG//"` +ac_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" +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 () +{ + + int argc; + char** argv; + QApplication app(argc, argv); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "kde_cv_qt_jpeg=no" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "kde_cv_qt_jpeg=yes" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS="$ac_save_LIBS" +CXXFLAGS="$ac_save_CXXFLAGS" +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 + +fi + + +if eval "test ! \"`echo $kde_cv_qt_jpeg`\" = no"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + LIBJPEG_QT='$(LIBJPEG)' +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + LIBJPEG_QT= +fi + + + +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM)' +else +LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG)' +fi +test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS" +for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do + if test -e "$a"; then + LIB_QT="$LIB_QT ${kde_int_qt}_incremental" + break + fi +done + + + + + + + + + + + + + +{ echo "$as_me:$LINENO: checking for rpath" >&5 +echo $ECHO_N "checking for rpath... $ECHO_C" >&6; } +# Check whether --enable-rpath was given. +if test "${enable_rpath+set}" = set; then + enableval=$enable_rpath; USE_RPATH=$enableval +else + USE_RPATH=yes +fi + + +if test -z "$KDE_RPATH" && test "$USE_RPATH" = "yes"; then + + KDE_RPATH="-R \$(libdir)" + + if test "$kde_libraries" != "$libdir"; then + KDE_RPATH="$KDE_RPATH -R \$(kde_libraries)" + fi + + if test -n "$qt_libraries"; then + KDE_RPATH="$KDE_RPATH -R \$(qt_libraries)" + fi + if test -n "$X_LDFLAGS"; then + X_RPATH="-R \$(x_libraries)" + KDE_RPATH="$KDE_RPATH $X_RPATH" + fi + if test -n "$KDE_EXTRA_RPATH"; then + KDE_RPATH="$KDE_RPATH \$(KDE_EXTRA_RPATH)" + fi +fi + + + +{ echo "$as_me:$LINENO: result: $USE_RPATH" >&5 +echo "${ECHO_T}$USE_RPATH" >&6; } + +{ echo "$as_me:$LINENO: checking for KDE" >&5 +echo $ECHO_N "checking for KDE... $ECHO_C" >&6; } + +if test "${prefix}" != NONE; then + kde_includes=${includedir} + +savex=$exec_prefix +test "x$exec_prefix" = xNONE && exec_prefix=$prefix +tmp=$includedir +while ac_kde_includes=`eval echo "$tmp"`; test "x$ac_kde_includes" != "x$tmp"; do tmp=$ac_kde_includes; done +exec_prefix=$savex + + + kde_libraries=${libdir} + +savex=$exec_prefix +test "x$exec_prefix" = xNONE && exec_prefix=$prefix +tmp=$libdir +while ac_kde_libraries=`eval echo "$tmp"`; test "x$ac_kde_libraries" != "x$tmp"; do tmp=$ac_kde_libraries; done +exec_prefix=$savex + + +else + ac_kde_includes= + ac_kde_libraries= + kde_libraries="" + kde_includes="" +fi + +if test "${ac_cv_have_kde+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + #try to guess kde locations + +if test "$kde_qtver" = 1; then + kde_check_header="ksock.h" + kde_check_lib="libkdecore.la" +else + kde_check_header="ksharedptr.h" + kde_check_lib="libkio.la" +fi + +if test -z ""; then + +kde_incdirs="$kde_libs_prefix/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes $qt_includes" +test -n "$KDEDIR" && kde_incdirs="$KDEDIR/include $KDEDIR/include/kde $KDEDIR $kde_incdirs" +kde_incdirs="$ac_kde_includes $kde_incdirs" + +kde_incdir=NO +for i in $kde_incdirs; +do + for j in $kde_check_header; + do + echo "configure: 30892: $i/$j" >&5 + if test -r "$i/$j"; then + echo "taking that" >&5 + kde_incdir=$i + break 2 + fi + done +done + +ac_kde_includes="$kde_incdir" + +if test -n "$ac_kde_includes" && test ! -r "$ac_kde_includes/$kde_check_header"; then + { { echo "$as_me:$LINENO: error: +in the prefix, you've chosen, are no KDE headers installed. This will fail. +So, check this please and use another prefix!" >&5 +echo "$as_me: error: +in the prefix, you've chosen, are no KDE headers installed. This will fail. +So, check this please and use another prefix!" >&2;} + { (exit 1); exit 1; }; } +fi + +kde_libdirs="$kde_libs_prefix/lib${kdelibsuff} /usr/lib/kde/lib${kdelibsuff} /usr/local/kde/lib${kdelibsuff} /usr/kde/lib${kdelibsuff} /usr/lib${kdelibsuff}/kde /usr/lib${kdelibsuff}/kde3 /usr/lib${kdelibsuff} /usr/X11R6/lib${kdelibsuff} /usr/local/lib${kdelibsuff} /opt/kde3/lib${kdelibsuff} /opt/kde/lib${kdelibsuff} /usr/X11R6/kde/lib${kdelibsuff}" +test -n "$KDEDIR" && kde_libdirs="$KDEDIR/lib${kdelibsuff} $KDEDIR $kde_libdirs" +kde_libdirs="$ac_kde_libraries $libdir $kde_libdirs" + +kde_libdir=NO +for i in $kde_libdirs; +do + for j in $kde_check_lib; + do + echo "configure: 30922: $i/$j" >&5 + if test -r "$i/$j"; then + echo "taking that" >&5 + kde_libdir=$i + break 2 + fi + done +done + +ac_kde_libraries="$kde_libdir" + +kde_widgetdir=NO + +kde_widgetdir=NO +for i in $kde_libdirs; +do + for j in "kde3/plugins/designer/kdewidgets.la"; + do + echo "configure: 30940: $i/$j" >&5 + if test -r "$i/$j"; then + echo "taking that" >&5 + kde_widgetdir=$i + break 2 + fi + done +done + + +if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then +{ { echo "$as_me:$LINENO: error: +in the prefix, you've chosen, are no KDE libraries installed. This will fail. +So, check this please and use another prefix!" >&5 +echo "$as_me: error: +in the prefix, you've chosen, are no KDE libraries installed. This will fail. +So, check this please and use another prefix!" >&2;} + { (exit 1); exit 1; }; } +fi + +if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/kde3/plugins/designer/kdewidgets.la"; then +{ { echo "$as_me:$LINENO: error: +I can't find the designer plugins. These are required and should have been installed +by kdelibs" >&5 +echo "$as_me: error: +I can't find the designer plugins. These are required and should have been installed +by kdelibs" >&2;} + { (exit 1); exit 1; }; } +fi + +if test -n "$kde_widgetdir"; then + kde_widgetdir="$kde_widgetdir/kde3/plugins/designer" +fi + + +if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO || test "$kde_widgetdir" = NO; then + ac_cv_have_kde="have_kde=no" +else + ac_cv_have_kde="have_kde=yes \ + ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries" +fi + +else + ac_cv_have_kde="have_kde=no" + +fi + +fi + +eval "$ac_cv_have_kde" + +if test "$have_kde" != "yes"; then + if test "${prefix}" = NONE; then + ac_kde_prefix="$ac_default_prefix" + else + ac_kde_prefix="$prefix" + fi + if test "$exec_prefix" = NONE; then + ac_kde_exec_prefix="$ac_kde_prefix" + { echo "$as_me:$LINENO: result: will be installed in $ac_kde_prefix" >&5 +echo "${ECHO_T}will be installed in $ac_kde_prefix" >&6; } + else + ac_kde_exec_prefix="$exec_prefix" + { echo "$as_me:$LINENO: result: will be installed in $ac_kde_prefix and $ac_kde_exec_prefix" >&5 +echo "${ECHO_T}will be installed in $ac_kde_prefix and $ac_kde_exec_prefix" >&6; } + fi + + kde_libraries="${libdir}" + kde_includes="${includedir}" + +else + ac_cv_have_kde="have_kde=yes \ + ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries" + { echo "$as_me:$LINENO: result: libraries $ac_kde_libraries, headers $ac_kde_includes" >&5 +echo "${ECHO_T}libraries $ac_kde_libraries, headers $ac_kde_includes" >&6; } + + kde_libraries="$ac_kde_libraries" + kde_includes="$ac_kde_includes" +fi + + + +if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then + KDE_INCLUDES="" +else + KDE_INCLUDES="-I$kde_includes" + all_includes="$KDE_INCLUDES $all_includes" +fi + +KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION" + +KDE_LDFLAGS="-L$kde_libraries" +if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then + all_libraries="$KDE_LDFLAGS $all_libraries" +fi + + + + + + +all_libraries="$all_libraries $USER_LDFLAGS" +all_includes="$all_includes $USER_INCLUDES" + + + +if test -z ""; then + + + +if test x$ac_uic_supports_libpath = xyes; then + +{ echo "$as_me:$LINENO: checking if UIC has KDE plugins available" >&5 +echo $ECHO_N "checking if UIC has KDE plugins available... $ECHO_C" >&6; } +if test "${kde_cv_uic_plugins+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +cat > actest.ui << EOF + +NewConnectionDialog + + + + testInput + + + + +EOF + + + +kde_cv_uic_plugins=no +kde_line="$UIC_PATH -L $kde_widgetdir" +if test x$ac_uic_supports_nounload = xyes; then + kde_line="$kde_line -nounload" +fi +kde_line="$kde_line -impl actest.h actest.ui > actest.cpp" +if { (eval echo "$as_me:$LINENO: \"$kde_line\"") >&5 + (eval $kde_line) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # if you're trying to debug this check and think it's incorrect, + # better check your installation. The check _is_ correct - your + # installation is not. + if test -f actest.cpp && grep klineedit actest.cpp > /dev/null; then + kde_cv_uic_plugins=yes + fi +fi +rm -f actest.ui actest.cpp + +fi + + +{ echo "$as_me:$LINENO: result: $kde_cv_uic_plugins" >&5 +echo "${ECHO_T}$kde_cv_uic_plugins" >&6; } +if test "$kde_cv_uic_plugins" != yes; then + { { echo "$as_me:$LINENO: error: +you need to install kdelibs first. + +If you did install kdelibs, then the Qt version that is picked up by +this configure is not the same version you used to compile kdelibs. +The Qt Plugin installed by kdelibs is *ONLY* loadable if its the +same Qt version, compiled with the same compiler and the same Qt +configuration settings. +" >&5 +echo "$as_me: error: +you need to install kdelibs first. + +If you did install kdelibs, then the Qt version that is picked up by +this configure is not the same version you used to compile kdelibs. +The Qt Plugin installed by kdelibs is *ONLY* loadable if its the +same Qt version, compiled with the same compiler and the same Qt +configuration settings. +" >&2;} + { (exit 1); exit 1; }; } +fi +fi + +fi + +ac_kde_libraries="$kde_libdir" + + + + + + # Check whether --enable-path-check was given. +if test "${enable_path_check+set}" = set; then + enableval=$enable_path_check; + if test "$enableval" = "no"; + then ac_use_path_checking="default" + else ac_use_path_checking="" + fi + +else + + if test "$kde_qtver" = 1; + then ac_use_path_checking="" + else ac_use_path_checking="default" + fi + + +fi + + + + + +{ echo "$as_me:$LINENO: checking for KDE paths" >&5 +echo $ECHO_N "checking for KDE paths... $ECHO_C" >&6; } +kde_result="" +kde_cached_paths=yes +if test "${kde_cv_all_paths+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + +if test "$ac_use_path_checking" = "default"; then + + if test -z "$kde_htmldir"; then + kde_htmldir='\${datadir}/doc/HTML' + fi + if test -z "$kde_appsdir"; then + kde_appsdir='\${datadir}/applnk' + fi + if test -z "$kde_icondir"; then + kde_icondir='\${datadir}/icons' + fi + if test -z "$kde_sounddir"; then + kde_sounddir='\${datadir}/sounds' + fi + if test -z "$kde_datadir"; then + kde_datadir='\${datadir}/apps' + fi + if test -z "$kde_locale"; then + kde_locale='\${datadir}/locale' + fi + if test -z "$kde_cgidir"; then + kde_cgidir='\${exec_prefix}/cgi-bin' + fi + if test -z "$kde_confdir"; then + kde_confdir='\${datadir}/config' + fi + if test -z "$kde_kcfgdir"; then + kde_kcfgdir='\${datadir}/config.kcfg' + fi + if test -z "$kde_mimedir"; then + kde_mimedir='\${datadir}/mimelnk' + fi + if test -z "$kde_toolbardir"; then + kde_toolbardir='\${datadir}/toolbar' + fi + if test -z "$kde_wallpaperdir"; then + kde_wallpaperdir='\${datadir}/wallpapers' + fi + if test -z "$kde_templatesdir"; then + kde_templatesdir='\${datadir}/templates' + fi + if test -z "$kde_bindir"; then + kde_bindir='\${exec_prefix}/bin' + fi + if test -z "$kde_servicesdir"; then + kde_servicesdir='\${datadir}/services' + fi + if test -z "$kde_servicetypesdir"; then + kde_servicetypesdir='\${datadir}/servicetypes' + fi + if test -z "$kde_moduledir"; then + if test "$kde_qtver" = "2"; then + kde_moduledir='\${libdir}/kde2' + else + kde_moduledir='\${libdir}/kde3' + fi + fi + if test -z "$kde_styledir"; then + kde_styledir='\${libdir}/kde3/plugins/styles' + fi + if test -z "$kde_widgetdir"; then + kde_widgetdir='\${libdir}/kde3/plugins/designer' + fi + if test -z "$xdg_appsdir"; then + xdg_appsdir='\${datadir}/applications/kde' + fi + if test -z "$xdg_menudir"; then + xdg_menudir='\${sysconfdir}/xdg/menus' + fi + if test -z "$xdg_directorydir"; then + xdg_directorydir='\${datadir}/desktop-directories' + fi + + + kde_cv_all_paths="kde_have_all_paths=\"yes\" \ + kde_htmldir=\"$kde_htmldir\" \ + kde_appsdir=\"$kde_appsdir\" \ + kde_icondir=\"$kde_icondir\" \ + kde_sounddir=\"$kde_sounddir\" \ + kde_datadir=\"$kde_datadir\" \ + kde_locale=\"$kde_locale\" \ + kde_cgidir=\"$kde_cgidir\" \ + kde_confdir=\"$kde_confdir\" \ + kde_kcfgdir=\"$kde_kcfgdir\" \ + kde_mimedir=\"$kde_mimedir\" \ + kde_toolbardir=\"$kde_toolbardir\" \ + kde_wallpaperdir=\"$kde_wallpaperdir\" \ + kde_templatesdir=\"$kde_templatesdir\" \ + kde_bindir=\"$kde_bindir\" \ + kde_servicesdir=\"$kde_servicesdir\" \ + kde_servicetypesdir=\"$kde_servicetypesdir\" \ + kde_moduledir=\"$kde_moduledir\" \ + kde_styledir=\"$kde_styledir\" \ + kde_widgetdir=\"$kde_widgetdir\" \ + xdg_appsdir=\"$xdg_appsdir\" \ + xdg_menudir=\"$xdg_menudir\" \ + xdg_directorydir=\"$xdg_directorydir\" \ + kde_result=defaults" + + +else + + if test $kde_qtver = 1; then + { echo "$as_me:$LINENO: result: compiling" >&5 +echo "${ECHO_T}compiling" >&6; } + + + { echo "$as_me:$LINENO: checking for KDE headers installed" >&5 +echo $ECHO_N "checking for KDE headers installed... $ECHO_C" >&6; } + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + +cat > conftest.$ac_ext < +#endif +#include +#include "confdefs.h" +#include + +int main() { + printf("kde_htmldir=\\"%s\\"\n", KApplication::kde_htmldir().data()); + printf("kde_appsdir=\\"%s\\"\n", KApplication::kde_appsdir().data()); + printf("kde_icondir=\\"%s\\"\n", KApplication::kde_icondir().data()); + printf("kde_sounddir=\\"%s\\"\n", KApplication::kde_sounddir().data()); + printf("kde_datadir=\\"%s\\"\n", KApplication::kde_datadir().data()); + printf("kde_locale=\\"%s\\"\n", KApplication::kde_localedir().data()); + printf("kde_cgidir=\\"%s\\"\n", KApplication::kde_cgidir().data()); + printf("kde_confdir=\\"%s\\"\n", KApplication::kde_configdir().data()); + printf("kde_mimedir=\\"%s\\"\n", KApplication::kde_mimedir().data()); + printf("kde_toolbardir=\\"%s\\"\n", KApplication::kde_toolbardir().data()); + printf("kde_wallpaperdir=\\"%s\\"\n", + KApplication::kde_wallpaperdir().data()); + printf("kde_bindir=\\"%s\\"\n", KApplication::kde_bindir().data()); + printf("kde_partsdir=\\"%s\\"\n", KApplication::kde_partsdir().data()); + printf("kde_servicesdir=\\"/tmp/dummy\\"\n"); + printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n"); + printf("kde_moduledir=\\"/tmp/dummy\\"\n"); + printf("kde_styledir=\\"/tmp/dummy\\"\n"); + printf("kde_widgetdir=\\"/tmp/dummy\\"\n"); + printf("xdg_appsdir=\\"/tmp/dummy\\"\n"); + printf("xdg_menudir=\\"/tmp/dummy\\"\n"); + printf("xdg_directorydir=\\"/tmp/dummy\\"\n"); + printf("kde_kcfgdir=\\"/tmp/dummy\\"\n"); + return 0; + } +EOF + + ac_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$all_includes $CPPFLAGS" + 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 + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + else + { { echo "$as_me:$LINENO: error: your system is not able to compile a small KDE application! +Check, if you installed the KDE header files correctly. +For more details about this problem, look at the end of config.log." >&5 +echo "$as_me: error: your system is not able to compile a small KDE application! +Check, if you installed the KDE header files correctly. +For more details about this problem, look at the end of config.log." >&2;} + { (exit 1); exit 1; }; } + fi + CPPFLAGS=$ac_save_CPPFLAGS + + 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 + + + + KDE_TEST_RPATH= + + if test -n "$USE_RPATH"; then + + if test -n "$kde_libraries"; then + KDE_TEST_RPATH="-R $kde_libraries" + fi + + if test -n "$qt_libraries"; then + KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries" + fi + + if test -n "$x_libraries"; then + KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries" + fi + + KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH" + fi + +{ echo "$as_me:$LINENO: checking for KDE libraries installed" >&5 +echo $ECHO_N "checking for KDE libraries installed... $ECHO_C" >&6; } +ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -lkdecore $LIBQT $KDE_TEST_RPATH 1>&5' + +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; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { { echo "$as_me:$LINENO: error: your system fails at linking a small KDE application! +Check, if your compiler is installed correctly and if you have used the +same compiler to compile Qt and kdelibs as you did use now. +For more details about this problem, look at the end of config.log." >&5 +echo "$as_me: error: your system fails at linking a small KDE application! +Check, if your compiler is installed correctly and if you have used the +same compiler to compile Qt and kdelibs as you did use now. +For more details about this problem, look at the end of config.log." >&2;} + { (exit 1); exit 1; }; } +fi + +if eval `KDEDIR= ./conftest 2>&5`; then + kde_result=done +else + kde_result=problems +fi + +KDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log +kde_have_all_paths=yes + + + kde_cv_all_paths="kde_have_all_paths=\"yes\" \ + kde_htmldir=\"$kde_htmldir\" \ + kde_appsdir=\"$kde_appsdir\" \ + kde_icondir=\"$kde_icondir\" \ + kde_sounddir=\"$kde_sounddir\" \ + kde_datadir=\"$kde_datadir\" \ + kde_locale=\"$kde_locale\" \ + kde_cgidir=\"$kde_cgidir\" \ + kde_confdir=\"$kde_confdir\" \ + kde_kcfgdir=\"$kde_kcfgdir\" \ + kde_mimedir=\"$kde_mimedir\" \ + kde_toolbardir=\"$kde_toolbardir\" \ + kde_wallpaperdir=\"$kde_wallpaperdir\" \ + kde_templatesdir=\"$kde_templatesdir\" \ + kde_bindir=\"$kde_bindir\" \ + kde_servicesdir=\"$kde_servicesdir\" \ + kde_servicetypesdir=\"$kde_servicetypesdir\" \ + kde_moduledir=\"$kde_moduledir\" \ + kde_styledir=\"$kde_styledir\" \ + kde_widgetdir=\"$kde_widgetdir\" \ + xdg_appsdir=\"$xdg_appsdir\" \ + xdg_menudir=\"$xdg_menudir\" \ + xdg_directorydir=\"$xdg_directorydir\" \ + kde_result=$kde_result" + + + + else + { { echo "$as_me:$LINENO: error: path checking not yet supported for KDE 2" >&5 +echo "$as_me: error: path checking not yet supported for KDE 2" >&2;} + { (exit 1); exit 1; }; } + fi + +fi + + kde_cached_paths=no + +fi + +eval "$kde_cv_all_paths" + if test -z "$kde_htmldir" || test -z "$kde_appsdir" || + test -z "$kde_icondir" || test -z "$kde_sounddir" || + test -z "$kde_datadir" || test -z "$kde_locale" || + test -z "$kde_cgidir" || test -z "$kde_confdir" || + test -z "$kde_kcfgdir" || + test -z "$kde_mimedir" || test -z "$kde_toolbardir" || + test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" || + test -z "$kde_bindir" || test -z "$kde_servicesdir" || + test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" || + test -z "$kde_styledir" || test -z "kde_widgetdir" || + test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" || + test "x$kde_have_all_paths" != "xyes"; then + kde_have_all_paths=no + fi + +if test "$kde_have_all_paths" = "no" && test "$kde_cached_paths" = "yes"; then + # wrong values were cached, may be, we can set better ones + kde_result= + kde_htmldir= kde_appsdir= kde_icondir= kde_sounddir= + kde_datadir= kde_locale= kde_cgidir= kde_confdir= kde_kcfgdir= + kde_mimedir= kde_toolbardir= kde_wallpaperdir= kde_templatesdir= + kde_bindir= kde_servicesdir= kde_servicetypesdir= kde_moduledir= + kde_have_all_paths= + kde_styledir= + kde_widgetdir= + xdg_appsdir = xdg_menudir= xdg_directorydir= + +if test "$ac_use_path_checking" = "default"; then + + if test -z "$kde_htmldir"; then + kde_htmldir='\${datadir}/doc/HTML' + fi + if test -z "$kde_appsdir"; then + kde_appsdir='\${datadir}/applnk' + fi + if test -z "$kde_icondir"; then + kde_icondir='\${datadir}/icons' + fi + if test -z "$kde_sounddir"; then + kde_sounddir='\${datadir}/sounds' + fi + if test -z "$kde_datadir"; then + kde_datadir='\${datadir}/apps' + fi + if test -z "$kde_locale"; then + kde_locale='\${datadir}/locale' + fi + if test -z "$kde_cgidir"; then + kde_cgidir='\${exec_prefix}/cgi-bin' + fi + if test -z "$kde_confdir"; then + kde_confdir='\${datadir}/config' + fi + if test -z "$kde_kcfgdir"; then + kde_kcfgdir='\${datadir}/config.kcfg' + fi + if test -z "$kde_mimedir"; then + kde_mimedir='\${datadir}/mimelnk' + fi + if test -z "$kde_toolbardir"; then + kde_toolbardir='\${datadir}/toolbar' + fi + if test -z "$kde_wallpaperdir"; then + kde_wallpaperdir='\${datadir}/wallpapers' + fi + if test -z "$kde_templatesdir"; then + kde_templatesdir='\${datadir}/templates' + fi + if test -z "$kde_bindir"; then + kde_bindir='\${exec_prefix}/bin' + fi + if test -z "$kde_servicesdir"; then + kde_servicesdir='\${datadir}/services' + fi + if test -z "$kde_servicetypesdir"; then + kde_servicetypesdir='\${datadir}/servicetypes' + fi + if test -z "$kde_moduledir"; then + if test "$kde_qtver" = "2"; then + kde_moduledir='\${libdir}/kde2' + else + kde_moduledir='\${libdir}/kde3' + fi + fi + if test -z "$kde_styledir"; then + kde_styledir='\${libdir}/kde3/plugins/styles' + fi + if test -z "$kde_widgetdir"; then + kde_widgetdir='\${libdir}/kde3/plugins/designer' + fi + if test -z "$xdg_appsdir"; then + xdg_appsdir='\${datadir}/applications/kde' + fi + if test -z "$xdg_menudir"; then + xdg_menudir='\${sysconfdir}/xdg/menus' + fi + if test -z "$xdg_directorydir"; then + xdg_directorydir='\${datadir}/desktop-directories' + fi + + + kde_cv_all_paths="kde_have_all_paths=\"yes\" \ + kde_htmldir=\"$kde_htmldir\" \ + kde_appsdir=\"$kde_appsdir\" \ + kde_icondir=\"$kde_icondir\" \ + kde_sounddir=\"$kde_sounddir\" \ + kde_datadir=\"$kde_datadir\" \ + kde_locale=\"$kde_locale\" \ + kde_cgidir=\"$kde_cgidir\" \ + kde_confdir=\"$kde_confdir\" \ + kde_kcfgdir=\"$kde_kcfgdir\" \ + kde_mimedir=\"$kde_mimedir\" \ + kde_toolbardir=\"$kde_toolbardir\" \ + kde_wallpaperdir=\"$kde_wallpaperdir\" \ + kde_templatesdir=\"$kde_templatesdir\" \ + kde_bindir=\"$kde_bindir\" \ + kde_servicesdir=\"$kde_servicesdir\" \ + kde_servicetypesdir=\"$kde_servicetypesdir\" \ + kde_moduledir=\"$kde_moduledir\" \ + kde_styledir=\"$kde_styledir\" \ + kde_widgetdir=\"$kde_widgetdir\" \ + xdg_appsdir=\"$xdg_appsdir\" \ + xdg_menudir=\"$xdg_menudir\" \ + xdg_directorydir=\"$xdg_directorydir\" \ + kde_result=defaults" + + +else + + if test $kde_qtver = 1; then + { echo "$as_me:$LINENO: result: compiling" >&5 +echo "${ECHO_T}compiling" >&6; } + + + { echo "$as_me:$LINENO: checking for KDE headers installed" >&5 +echo $ECHO_N "checking for KDE headers installed... $ECHO_C" >&6; } + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + +cat > conftest.$ac_ext < +#endif +#include +#include "confdefs.h" +#include + +int main() { + printf("kde_htmldir=\\"%s\\"\n", KApplication::kde_htmldir().data()); + printf("kde_appsdir=\\"%s\\"\n", KApplication::kde_appsdir().data()); + printf("kde_icondir=\\"%s\\"\n", KApplication::kde_icondir().data()); + printf("kde_sounddir=\\"%s\\"\n", KApplication::kde_sounddir().data()); + printf("kde_datadir=\\"%s\\"\n", KApplication::kde_datadir().data()); + printf("kde_locale=\\"%s\\"\n", KApplication::kde_localedir().data()); + printf("kde_cgidir=\\"%s\\"\n", KApplication::kde_cgidir().data()); + printf("kde_confdir=\\"%s\\"\n", KApplication::kde_configdir().data()); + printf("kde_mimedir=\\"%s\\"\n", KApplication::kde_mimedir().data()); + printf("kde_toolbardir=\\"%s\\"\n", KApplication::kde_toolbardir().data()); + printf("kde_wallpaperdir=\\"%s\\"\n", + KApplication::kde_wallpaperdir().data()); + printf("kde_bindir=\\"%s\\"\n", KApplication::kde_bindir().data()); + printf("kde_partsdir=\\"%s\\"\n", KApplication::kde_partsdir().data()); + printf("kde_servicesdir=\\"/tmp/dummy\\"\n"); + printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n"); + printf("kde_moduledir=\\"/tmp/dummy\\"\n"); + printf("kde_styledir=\\"/tmp/dummy\\"\n"); + printf("kde_widgetdir=\\"/tmp/dummy\\"\n"); + printf("xdg_appsdir=\\"/tmp/dummy\\"\n"); + printf("xdg_menudir=\\"/tmp/dummy\\"\n"); + printf("xdg_directorydir=\\"/tmp/dummy\\"\n"); + printf("kde_kcfgdir=\\"/tmp/dummy\\"\n"); + return 0; + } +EOF + + ac_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$all_includes $CPPFLAGS" + 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 + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + else + { { echo "$as_me:$LINENO: error: your system is not able to compile a small KDE application! +Check, if you installed the KDE header files correctly. +For more details about this problem, look at the end of config.log." >&5 +echo "$as_me: error: your system is not able to compile a small KDE application! +Check, if you installed the KDE header files correctly. +For more details about this problem, look at the end of config.log." >&2;} + { (exit 1); exit 1; }; } + fi + CPPFLAGS=$ac_save_CPPFLAGS + + 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 + + + + KDE_TEST_RPATH= + + if test -n "$USE_RPATH"; then + + if test -n "$kde_libraries"; then + KDE_TEST_RPATH="-R $kde_libraries" + fi + + if test -n "$qt_libraries"; then + KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries" + fi + + if test -n "$x_libraries"; then + KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries" + fi + + KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH" + fi + +{ echo "$as_me:$LINENO: checking for KDE libraries installed" >&5 +echo $ECHO_N "checking for KDE libraries installed... $ECHO_C" >&6; } +ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -lkdecore $LIBQT $KDE_TEST_RPATH 1>&5' + +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; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { { echo "$as_me:$LINENO: error: your system fails at linking a small KDE application! +Check, if your compiler is installed correctly and if you have used the +same compiler to compile Qt and kdelibs as you did use now. +For more details about this problem, look at the end of config.log." >&5 +echo "$as_me: error: your system fails at linking a small KDE application! +Check, if your compiler is installed correctly and if you have used the +same compiler to compile Qt and kdelibs as you did use now. +For more details about this problem, look at the end of config.log." >&2;} + { (exit 1); exit 1; }; } +fi + +if eval `KDEDIR= ./conftest 2>&5`; then + kde_result=done +else + kde_result=problems +fi + +KDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log +kde_have_all_paths=yes + + + kde_cv_all_paths="kde_have_all_paths=\"yes\" \ + kde_htmldir=\"$kde_htmldir\" \ + kde_appsdir=\"$kde_appsdir\" \ + kde_icondir=\"$kde_icondir\" \ + kde_sounddir=\"$kde_sounddir\" \ + kde_datadir=\"$kde_datadir\" \ + kde_locale=\"$kde_locale\" \ + kde_cgidir=\"$kde_cgidir\" \ + kde_confdir=\"$kde_confdir\" \ + kde_kcfgdir=\"$kde_kcfgdir\" \ + kde_mimedir=\"$kde_mimedir\" \ + kde_toolbardir=\"$kde_toolbardir\" \ + kde_wallpaperdir=\"$kde_wallpaperdir\" \ + kde_templatesdir=\"$kde_templatesdir\" \ + kde_bindir=\"$kde_bindir\" \ + kde_servicesdir=\"$kde_servicesdir\" \ + kde_servicetypesdir=\"$kde_servicetypesdir\" \ + kde_moduledir=\"$kde_moduledir\" \ + kde_styledir=\"$kde_styledir\" \ + kde_widgetdir=\"$kde_widgetdir\" \ + xdg_appsdir=\"$xdg_appsdir\" \ + xdg_menudir=\"$xdg_menudir\" \ + xdg_directorydir=\"$xdg_directorydir\" \ + kde_result=$kde_result" + + + + else + { { echo "$as_me:$LINENO: error: path checking not yet supported for KDE 2" >&5 +echo "$as_me: error: path checking not yet supported for KDE 2" >&2;} + { (exit 1); exit 1; }; } + fi + +fi + + eval "$kde_cv_all_paths" + if test -z "$kde_htmldir" || test -z "$kde_appsdir" || + test -z "$kde_icondir" || test -z "$kde_sounddir" || + test -z "$kde_datadir" || test -z "$kde_locale" || + test -z "$kde_cgidir" || test -z "$kde_confdir" || + test -z "$kde_kcfgdir" || + test -z "$kde_mimedir" || test -z "$kde_toolbardir" || + test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" || + test -z "$kde_bindir" || test -z "$kde_servicesdir" || + test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" || + test -z "$kde_styledir" || test -z "kde_widgetdir" || + test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" || + test "x$kde_have_all_paths" != "xyes"; then + kde_have_all_paths=no + fi + + kde_result="$kde_result (cache overridden)" +fi +if test "$kde_have_all_paths" = "no"; then + { { echo "$as_me:$LINENO: error: configure could not run a little KDE program to test the environment. +Since it had compiled and linked before, it must be a strange problem on your system. +Look at config.log for details. If you are not able to fix this, look at +http://www.kde.org/faq/installation.html or any www.kde.org mirror. +(If you're using an egcs version on Linux, you may update binutils!) +" >&5 +echo "$as_me: error: configure could not run a little KDE program to test the environment. +Since it had compiled and linked before, it must be a strange problem on your system. +Look at config.log for details. If you are not able to fix this, look at +http://www.kde.org/faq/installation.html or any www.kde.org mirror. +(If you're using an egcs version on Linux, you may update binutils!) +" >&2;} + { (exit 1); exit 1; }; } +else + rm -f conftest* + { echo "$as_me:$LINENO: result: $kde_result" >&5 +echo "${ECHO_T}$kde_result" >&6; } +fi + +bindir=$kde_bindir + + + +# Check whether --with-arts was given. +if test "${with_arts+set}" = set; then + withval=$with_arts; build_arts=$withval +else + build_arts=yes + +fi + + if test "$build_arts" '!=' "no"; then + include_ARTS_TRUE= + include_ARTS_FALSE='#' +else + include_ARTS_TRUE='#' + include_ARTS_FALSE= +fi + + if test "$build_arts" = "no"; then + +cat >>confdefs.h <<\_ACEOF +#define WITHOUT_ARTS 1 +_ACEOF + + fi + + + kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin" + test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs" + if test -n "$KDEDIRS"; then + kde_save_IFS=$IFS + IFS=: + for dir in $KDEDIRS; do + kde_default_bindirs="$dir/bin $kde_default_bindirs " + done + IFS=$kde_save_IFS + fi + + kde_default_bindirs="$exec_prefix/bin $prefix/bin $kde_libs_prefix/bin $kde_default_bindirs" + + { echo "$as_me:$LINENO: checking for dcopidl" >&5 +echo $ECHO_N "checking for dcopidl... $ECHO_C" >&6; } + if test -n "$DCOPIDL"; then + kde_cv_path="$DCOPIDL"; + else + kde_cache=`echo dcopidl | sed 'y%./+-%__p_%'` + + if { as_var=kde_cv_path_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z ""; then dirs="$kde_default_bindirs $dirs" + else dirs="$dirs $kde_default_bindirs" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/dcopidl"; then + if test -n "" + then + evalstr="$dir/dcopidl 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/dcopidl" + break + fi + else + kde_cv_path="$dir/dcopidl" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + +fi + + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + + { { echo "$as_me:$LINENO: error: The important program dcopidl was not found! +Please check whether you installed KDE correctly. +" >&5 +echo "$as_me: error: The important program dcopidl was not found! +Please check whether you installed KDE correctly. +" >&2;} + { (exit 1); exit 1; }; } + + else + { echo "$as_me:$LINENO: result: $kde_cv_path" >&5 +echo "${ECHO_T}$kde_cv_path" >&6; } + DCOPIDL=$kde_cv_path + + fi + + + { echo "$as_me:$LINENO: checking for dcopidl2cpp" >&5 +echo $ECHO_N "checking for dcopidl2cpp... $ECHO_C" >&6; } + if test -n "$DCOPIDL2CPP"; then + kde_cv_path="$DCOPIDL2CPP"; + else + kde_cache=`echo dcopidl2cpp | sed 'y%./+-%__p_%'` + + if { as_var=kde_cv_path_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z ""; then dirs="$kde_default_bindirs $dirs" + else dirs="$dirs $kde_default_bindirs" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/dcopidl2cpp"; then + if test -n "" + then + evalstr="$dir/dcopidl2cpp 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/dcopidl2cpp" + break + fi + else + kde_cv_path="$dir/dcopidl2cpp" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + +fi + + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + + { { echo "$as_me:$LINENO: error: The important program dcopidl2cpp was not found! +Please check whether you installed KDE correctly. +" >&5 +echo "$as_me: error: The important program dcopidl2cpp was not found! +Please check whether you installed KDE correctly. +" >&2;} + { (exit 1); exit 1; }; } + + else + { echo "$as_me:$LINENO: result: $kde_cv_path" >&5 +echo "${ECHO_T}$kde_cv_path" >&6; } + DCOPIDL2CPP=$kde_cv_path + + fi + + if test "$build_arts" '!=' "no"; then + + { echo "$as_me:$LINENO: checking for mcopidl" >&5 +echo $ECHO_N "checking for mcopidl... $ECHO_C" >&6; } + if test -n "$MCOPIDL"; then + kde_cv_path="$MCOPIDL"; + else + kde_cache=`echo mcopidl | sed 'y%./+-%__p_%'` + + if { as_var=kde_cv_path_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z ""; then dirs="$kde_default_bindirs $dirs" + else dirs="$dirs $kde_default_bindirs" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/mcopidl"; then + if test -n "" + then + evalstr="$dir/mcopidl 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/mcopidl" + break + fi + else + kde_cv_path="$dir/mcopidl" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + +fi + + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + + { { echo "$as_me:$LINENO: error: The important program mcopidl was not found! +Please check whether you installed aRts correctly or use +--without-arts to compile without aRts support (this will remove functionality). +" >&5 +echo "$as_me: error: The important program mcopidl was not found! +Please check whether you installed aRts correctly or use +--without-arts to compile without aRts support (this will remove functionality). +" >&2;} + { (exit 1); exit 1; }; } + + else + { echo "$as_me:$LINENO: result: $kde_cv_path" >&5 +echo "${ECHO_T}$kde_cv_path" >&6; } + MCOPIDL=$kde_cv_path + + fi + + + { echo "$as_me:$LINENO: checking for artsc-config" >&5 +echo $ECHO_N "checking for artsc-config... $ECHO_C" >&6; } + if test -n "$ARTSCCONFIG"; then + kde_cv_path="$ARTSCCONFIG"; + else + kde_cache=`echo artsc-config | sed 'y%./+-%__p_%'` + + if { as_var=kde_cv_path_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z ""; then dirs="$kde_default_bindirs $dirs" + else dirs="$dirs $kde_default_bindirs" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/artsc-config"; then + if test -n "" + then + evalstr="$dir/artsc-config 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/artsc-config" + break + fi + else + kde_cv_path="$dir/artsc-config" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + +fi + + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + + { { echo "$as_me:$LINENO: error: The important program artsc-config was not found! +Please check whether you installed aRts correctly or use +--without-arts to compile without aRts support (this will remove functionality). +" >&5 +echo "$as_me: error: The important program artsc-config was not found! +Please check whether you installed aRts correctly or use +--without-arts to compile without aRts support (this will remove functionality). +" >&2;} + { (exit 1); exit 1; }; } + + else + { echo "$as_me:$LINENO: result: $kde_cv_path" >&5 +echo "${ECHO_T}$kde_cv_path" >&6; } + ARTSCCONFIG=$kde_cv_path + + fi + + fi + + { echo "$as_me:$LINENO: checking for meinproc" >&5 +echo $ECHO_N "checking for meinproc... $ECHO_C" >&6; } + if test -n "$MEINPROC"; then + kde_cv_path="$MEINPROC"; + else + kde_cache=`echo meinproc | sed 'y%./+-%__p_%'` + + if { as_var=kde_cv_path_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z ""; then dirs="$kde_default_bindirs $dirs" + else dirs="$dirs $kde_default_bindirs" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/meinproc"; then + if test -n "" + then + evalstr="$dir/meinproc 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/meinproc" + break + fi + else + kde_cv_path="$dir/meinproc" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + +fi + + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + + else + { echo "$as_me:$LINENO: result: $kde_cv_path" >&5 +echo "${ECHO_T}$kde_cv_path" >&6; } + MEINPROC=$kde_cv_path + + fi + + + kde32ornewer=1 + kde33ornewer=1 + if test -n "$kde_qtver" && test "$kde_qtver" -lt 3; then + kde32ornewer= + kde33ornewer= + else + if test "$kde_qtver" = "3"; then + if test "$kde_qtsubver" -le 1; then + kde32ornewer= + fi + if test "$kde_qtsubver" -le 2; then + kde33ornewer= + fi + fi + fi + + if test -n "$kde32ornewer"; then + + { echo "$as_me:$LINENO: checking for kconfig_compiler" >&5 +echo $ECHO_N "checking for kconfig_compiler... $ECHO_C" >&6; } + if test -n "$KCONFIG_COMPILER"; then + kde_cv_path="$KCONFIG_COMPILER"; + else + kde_cache=`echo kconfig_compiler | sed 'y%./+-%__p_%'` + + if { as_var=kde_cv_path_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z ""; then dirs="$kde_default_bindirs $dirs" + else dirs="$dirs $kde_default_bindirs" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/kconfig_compiler"; then + if test -n "" + then + evalstr="$dir/kconfig_compiler 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/kconfig_compiler" + break + fi + else + kde_cv_path="$dir/kconfig_compiler" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + +fi + + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + + { { echo "$as_me:$LINENO: error: The important program kconfig_compiler was not found! +Please check whether you installed KDE correctly. +" >&5 +echo "$as_me: error: The important program kconfig_compiler was not found! +Please check whether you installed KDE correctly. +" >&2;} + { (exit 1); exit 1; }; } + + else + { echo "$as_me:$LINENO: result: $kde_cv_path" >&5 +echo "${ECHO_T}$kde_cv_path" >&6; } + KCONFIG_COMPILER=$kde_cv_path + + fi + + + { echo "$as_me:$LINENO: checking for dcopidlng" >&5 +echo $ECHO_N "checking for dcopidlng... $ECHO_C" >&6; } + if test -n "$DCOPIDLNG"; then + kde_cv_path="$DCOPIDLNG"; + else + kde_cache=`echo dcopidlng | sed 'y%./+-%__p_%'` + + if { as_var=kde_cv_path_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z ""; then dirs="$kde_default_bindirs $dirs" + else dirs="$dirs $kde_default_bindirs" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/dcopidlng"; then + if test -n "" + then + evalstr="$dir/dcopidlng 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/dcopidlng" + break + fi + else + kde_cv_path="$dir/dcopidlng" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + +fi + + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + + { { echo "$as_me:$LINENO: error: The important program dcopidlng was not found! +Please check whether you installed KDE correctly. +" >&5 +echo "$as_me: error: The important program dcopidlng was not found! +Please check whether you installed KDE correctly. +" >&2;} + { (exit 1); exit 1; }; } + + else + { echo "$as_me:$LINENO: result: $kde_cv_path" >&5 +echo "${ECHO_T}$kde_cv_path" >&6; } + DCOPIDLNG=$kde_cv_path + + fi + + fi + if test -n "$kde33ornewer"; then + + { echo "$as_me:$LINENO: checking for makekdewidgets" >&5 +echo $ECHO_N "checking for makekdewidgets... $ECHO_C" >&6; } + if test -n "$MAKEKDEWIDGETS"; then + kde_cv_path="$MAKEKDEWIDGETS"; + else + kde_cache=`echo makekdewidgets | sed 'y%./+-%__p_%'` + + if { as_var=kde_cv_path_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z ""; then dirs="$kde_default_bindirs $dirs" + else dirs="$dirs $kde_default_bindirs" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/makekdewidgets"; then + if test -n "" + then + evalstr="$dir/makekdewidgets 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/makekdewidgets" + break + fi + else + kde_cv_path="$dir/makekdewidgets" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + +fi + + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + + { { echo "$as_me:$LINENO: error: The important program makekdewidgets was not found! +Please check whether you installed KDE correctly. +" >&5 +echo "$as_me: error: The important program makekdewidgets was not found! +Please check whether you installed KDE correctly. +" >&2;} + { (exit 1); exit 1; }; } + + else + { echo "$as_me:$LINENO: result: $kde_cv_path" >&5 +echo "${ECHO_T}$kde_cv_path" >&6; } + MAKEKDEWIDGETS=$kde_cv_path + + fi + + + fi + + { echo "$as_me:$LINENO: checking for xmllint" >&5 +echo $ECHO_N "checking for xmllint... $ECHO_C" >&6; } + if test -n "$XMLLINT"; then + kde_cv_path="$XMLLINT"; + else + kde_cache=`echo xmllint | sed 'y%./+-%__p_%'` + + if { as_var=kde_cv_path_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z ""; then dirs="${prefix}/bin ${exec_prefix}/bin $dirs" + else dirs="$dirs ${prefix}/bin ${exec_prefix}/bin" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/xmllint"; then + if test -n "" + then + evalstr="$dir/xmllint 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/xmllint" + break + fi + else + kde_cv_path="$dir/xmllint" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + +fi + + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + XMLLINT="" + else + { echo "$as_me:$LINENO: result: $kde_cv_path" >&5 +echo "${ECHO_T}$kde_cv_path" >&6; } + XMLLINT=$kde_cv_path + + fi + + + if test -n "$MEINPROC" && test ! "$MEINPROC" = "compiled"; then + kde_sharedirs="/usr/share/kde /usr/local/share /usr/share /opt/kde3/share /opt/kde/share $prefix/share" + test -n "$KDEDIR" && kde_sharedirs="$KDEDIR/share $kde_sharedirs" + +KDE_XSL_STYLESHEET=NO +for i in $kde_sharedirs; +do + for j in apps/ksgmltools2/customization/kde-chunk.xsl; + do + echo "configure: 32454: $i/$j" >&5 + if test -r "$i/$j"; then + echo "taking that" >&5 + KDE_XSL_STYLESHEET=$i + break 2 + fi + done +done + + if test "$KDE_XSL_STYLESHEET" = "NO"; then + KDE_XSL_STYLESHEET="" + else + KDE_XSL_STYLESHEET="$KDE_XSL_STYLESHEET/apps/ksgmltools2/customization/kde-chunk.xsl" + fi + fi + + DCOP_DEPENDENCIES='$(DCOPIDL)' + if test -n "$kde32ornewer"; then + KCFG_DEPENDENCIES='$(KCONFIG_COMPILER)' + DCOP_DEPENDENCIES='$(DCOPIDL) $(DCOPIDLNG)' + + + + fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +kdeinitdir='$(kde_moduledir)' + + + +if test "$kde_qtver" = 1; then + kde_minidir="$kde_icondir/mini" +else +# for KDE 1 - this breaks KDE2 apps using minidir, but +# that's the plan ;-/ + kde_minidir="/dev/null" +fi + + + + + + +if test $kde_qtver = 3; then + LIB_KDECORE="-lkdecore" + + LIB_KDEUI="-lkdeui" + + LIB_KIO="-lkio" + + LIB_KJS="-lkjs" + + LIB_SMB="-lsmb" + + LIB_KAB="-lkab" + + LIB_KABC="-lkabc" + + LIB_KHTML="-lkhtml" + + LIB_KSPELL="-lkspell" + + LIB_KPARTS="-lkparts" + + LIB_KDEPRINT="-lkdeprint" + + LIB_KUTILS="-lkutils" + + LIB_KDEPIM="-lkdepim" + + LIB_KIMPROXY="-lkimproxy" + + LIB_KNEWSTUFF="-lknewstuff" + + LIB_KDNSSD="-lkdnssd" + +# these are for backward compatibility + LIB_KSYCOCA="-lkio" + + LIB_KFILE="-lkio" + +elif test $kde_qtver = 2; then + LIB_KDECORE="-lkdecore" + + LIB_KDEUI="-lkdeui" + + LIB_KIO="-lkio" + + LIB_KSYCOCA="-lksycoca" + + LIB_SMB="-lsmb" + + LIB_KFILE="-lkfile" + + LIB_KAB="-lkab" + + LIB_KHTML="-lkhtml" + + LIB_KSPELL="-lkspell" + + LIB_KPARTS="-lkparts" + + LIB_KDEPRINT="-lkdeprint" + +else + LIB_KDECORE="-lkdecore -lXext $(LIB_QT)" + + LIB_KDEUI="-lkdeui $(LIB_KDECORE)" + + LIB_KFM="-lkfm $(LIB_KDECORE)" + + LIB_KFILE="-lkfile $(LIB_KFM) $(LIB_KDEUI)" + + LIB_KAB="-lkab $(LIB_KIMGIO) $(LIB_KDECORE)" + +fi + + + + +CPPFLAGS="$CPPFLAGS -DQT_NO_ASCII_CAST -DQT_NO_COMPAT -DQT_CLEAN_NAMESPACE -Wall -I\$(top_srcdir)/ -I\$(top_srcdir)/bibletime -I\$(top_builddir)/bibletime" + +ac_use_static="NO" + +{ echo "$as_me:$LINENO: checking whether to use static linking" >&5 +echo $ECHO_N "checking whether to use static linking... $ECHO_C" >&6; } +# Check whether --enable-static-linking was given. +if test "${enable_static_linking+set}" = set; then + enableval=$enable_static_linking; USE_STATIC_LINKING=$enableval +else + USE_STATIC_LINKING="no" +fi + + +if test "$USE_STATIC_LINKING" = "yes"; then + BT_LDFLAGS="-all-static -Wl,-Bstatic"; + + CPPFLAGS="-DSTATIC_BUILD $CPPFLAGS"; + ac_use_static="YES"; +else + ac_use_static="NO"; +fi + +{ echo "$as_me:$LINENO: result: $USE_STATIC_LINKING" >&5 +echo "${ECHO_T}$USE_STATIC_LINKING" >&6; } + + + + +# Check whether --with-sword-dir was given. +if test "${with_sword_dir+set}" = set; then + withval=$with_sword_dir; + ac_sword_dir=$withval + +else + ac_sword_dir=/usr + +fi + + +# Check whether --enable-static-sword was given. +if test "${enable_static_sword+set}" = set; then + enableval=$enable_static_sword; ac_static_sword="YES" +else + ac_static_sword="$ac_use_static" + +fi + + +{ echo "$as_me:$LINENO: checking for Sword library files" >&5 +echo $ECHO_N "checking for Sword library files... $ECHO_C" >&6; } + +ac_sword_library_dirs="$ac_sword_dir/lib $exec_prefix/lib $prefix/lib /usr/lib /usr/lib64 /usr/lib/sword /usr/local/lib /usr/local/lib/sword /usr/local/sword/lib" + +if test "x$ac_static_sword" = "xYES"; then + SEARCH_LIBS="libsword.a"; +else + SEARCH_LIBS="libsword.so libsword.so.3 libsword.so.4 libsword.a"; +fi + + +if test "${ac_cv_sword_libdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +ac_cv_sword_libdir=NO +for i in $ac_sword_library_dirs; +do + for j in $SEARCH_LIBS; + do + echo "configure: 32673: $i/$j" >&5 + if test -r "$i/$j"; then + echo "taking that" >&5 + ac_cv_sword_libdir=$i + break 2 + fi + done +done + +fi + + +if test "x$ac_cv_sword_libdir" = "xNO"; then + { { echo "$as_me:$LINENO: error: SWORD library not found. Try to use configure with --with-sword-dir=/your/SWORD/path!" >&5 +echo "$as_me: error: SWORD library not found. Try to use configure with --with-sword-dir=/your/SWORD/path!" >&2;} + { (exit 1); exit 1; }; }; +fi + +if test "x$ac_static_sword" = "xYES"; then + LIB_SWORD="$ac_cv_sword_libdir/libsword.a"; +else + LIB_SWORD="-lsword"; +fi + + + +all_libraries="$all_libraries -L$ac_cv_sword_libdir" + +if test "x$ac_static_sword" = "xYES"; then + MESSAGE="static library $ac_cv_sword_libdir/libsword.a"; +else + MESSAGE="$ac_cv_sword_libdir"; +fi +{ echo "$as_me:$LINENO: result: $MESSAGE" >&5 +echo "${ECHO_T}$MESSAGE" >&6; } + +{ echo "$as_me:$LINENO: checking for Sword include files" >&5 +echo $ECHO_N "checking for Sword include files... $ECHO_C" >&6; } +ac_sword_include_dirs="$ac_sword_dir/include/sword $ac_sword_dir/include $exec_prefix/include $prefix/include /usr/include/sword /usr/include /usr/local/include/sword /usr/local/include /usr/local/sword/include /usr/local/sword/include/sword" + +if test "${ac_cv_sword_incdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +ac_cv_sword_incdir=NO +for i in $ac_sword_include_dirs; +do + for j in swmgr.h; + do + echo "configure: 32722: $i/$j" >&5 + if test -r "$i/$j"; then + echo "taking that" >&5 + ac_cv_sword_incdir=$i + break 2 + fi + done +done + +fi + + +if test "x$ac_cv_sword_incdir" = "xNO"; then + { { echo "$as_me:$LINENO: error: The Sword include file files were not found. +Please try to use configure with --with-sword-dir=/your/SWORD/path ! +" >&5 +echo "$as_me: error: The Sword include file files were not found. +Please try to use configure with --with-sword-dir=/your/SWORD/path ! +" >&2;} + { (exit 1); exit 1; }; } +fi + +SWORD_INCLUDES="-I$ac_cv_sword_incdir" + +all_includes="$all_includes -I$ac_cv_sword_incdir" + +{ echo "$as_me:$LINENO: result: $ac_cv_sword_incdir" >&5 +echo "${ECHO_T}$ac_cv_sword_incdir" >&6; } + + + + +{ echo "$as_me:$LINENO: checking for installed Sword version" >&5 +echo $ECHO_N "checking for installed Sword version... $ECHO_C" >&6; } + +if test "${ac_cv_installed_sword_version+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + +ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH +ac_LIBRARY_PATH="$LIBRARY_PATH" +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$" +LDFLAGS="$LDFLAGS -L$ac_cv_sword_libdir" +LIBS="$LIB_SWORD -lz" +LD_LIBRARY_PATH="$ac_cv_sword_libdir" +export LD_LIBRARY_PATH +LIBRARY_PATH= +export LIBRARY_PATH + +cat > conftest.$ac_ext < +#include + +#ifdef SWORD_NAMESPACE_START +using namespace sword; +#endif + +int main(int argc, char** argv) { + std::cout << SWVersion::currentVersion << std::endl; + return 0; +} +EOF + + +ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +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; then + if test -x conftest; then + eval ac_cv_installed_sword_version=`./conftest 2>&5` + fi +else + echo "configure: failed program was:" >&5 + { { echo "$as_me:$LINENO: error: Failed to compile the test program to check the Sword version! Please have a look at config.log! Report this to the BibleTime developers!" >&5 +echo "$as_me: error: Failed to compile the test program to check the Sword version! Please have a look at config.log! Report this to the BibleTime developers!" >&2;} + { (exit 1); exit 1; }; }; + cat conftest.$ac_ext >&5 +fi + +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" +export LD_LIBRARY_PATH +LIBRARY_PATH="$ac_LIBRARY_PATH" +export LIBRARY_PATH +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: $ac_cv_installed_sword_version" >&5 +echo "${ECHO_T}$ac_cv_installed_sword_version" >&6; } + + + + +{ echo "$as_me:$LINENO: checking whether your Sword installation is recent enough" >&5 +echo $ECHO_N "checking whether your Sword installation is recent enough... $ECHO_C" >&6; } + +if test "${ac_cv_sword_recent_version+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + +ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH +ac_LIBRARY_PATH="$LIBRARY_PATH" +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$" +LDFLAGS="$LDFLAGS -L$ac_cv_sword_libdir" +LIBS="$LIB_SWORD -lz" +LD_LIBRARY_PATH="$ac_cv_sword_libdir" +export LD_LIBRARY_PATH +LIBRARY_PATH= +export LIBRARY_PATH + +cat > conftest.$ac_ext < +#include + +#ifdef SWORD_NAMESPACE_START +using namespace sword; +#endif + + +int main(int argc, char** argv) { + if (argc == 2) { //compare required with installed Sword version + const char* requiredVersion( argv[1] ); + if ( (SWVersion( requiredVersion ) < SWVersion::currentVersion) || (SWVersion( requiredVersion ) == SWVersion::currentVersion) ) { + std::cout << "ok"; + return -1; + } + else { + std::cout << "not-ok"; + return -2; //version not recent enough + } + } + return 0; +} +EOF + +ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +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; then + if test -x conftest; then + eval ac_cv_sword_recent_version=`./conftest 1.5.9 2>&5` + fi +else + echo "configure: failed program was:" >&5 + { { echo "$as_me:$LINENO: error: Failed to compile the test program to check the Sword version! Please have a look at config.log! Report this to the BibleTime developers!" >&5 +echo "$as_me: error: Failed to compile the test program to check the Sword version! Please have a look at config.log! Report this to the BibleTime developers!" >&2;} + { (exit 1); exit 1; }; }; + cat conftest.$ac_ext >&5 +fi; + +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" +export LD_LIBRARY_PATH +LIBRARY_PATH="$ac_LIBRARY_PATH" +export LIBRARY_PATH +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 + + +if test "x$ac_cv_sword_recent_version" = "xok"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; }; +elif test "x$ac_cv_sword_recent_version" = "xnot-ok"; then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; }; + { { echo "$as_me:$LINENO: error: Your Sword installation is not recent enought! Please upgrade to version 1.5.9! Get the Sword library at www.crosswire.org." >&5 +echo "$as_me: error: Your Sword installation is not recent enought! Please upgrade to version 1.5.9! Get the Sword library at www.crosswire.org." >&2;} + { (exit 1); exit 1; }; }; +else + { { echo "$as_me:$LINENO: error: Invalid return code of the internal Sword version test program. Please submit a bugreport!" >&5 +echo "$as_me: error: Invalid return code of the internal Sword version test program. Please submit a bugreport!" >&2;} + { (exit 1); exit 1; }; }; +fi; + + + + + +# Check whether --with-clucene-dir was given. +if test "${with_clucene_dir+set}" = set; then + withval=$with_clucene_dir; + ac_clucene_dir=$withval + +else + ac_clucene_dir=/usr + +fi + + +# Check whether --enable-static-clucene was given. +if test "${enable_static_clucene+set}" = set; then + enableval=$enable_static_clucene; ac_static_clucene="YES" +else + ac_static_clucene="$ac_use_static" + +fi + + +{ echo "$as_me:$LINENO: checking for CLucene library files" >&5 +echo $ECHO_N "checking for CLucene library files... $ECHO_C" >&6; } +ac_clucene_library_dirs="$ac_clucene_dir/lib $exec_prefix/lib $prefix/lib /usr/lib /usr/lib64 /usr/local/lib" + +if test "x$ac_static_clucene" = "xYES"; then + SEARCH_LIBS="libclucene.a"; +else + SEARCH_LIBS="libclucene.so libclucene.so.0 libclucene.so.0.0.0 libcluene.a"; +fi + + +if test "${ac_cv_clucene_libdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +ac_cv_clucene_libdir=NO +for i in $ac_clucene_library_dirs; +do + for j in $SEARCH_LIBS; + do + echo "configure: 32992: $i/$j" >&5 + if test -r "$i/$j"; then + echo "taking that" >&5 + ac_cv_clucene_libdir=$i + break 2 + fi + done +done + +fi + + +if test "x$ac_cv_clucene_libdir" = "xNO"; then + { { echo "$as_me:$LINENO: error: CLucene library not found. Try to use configure with --with-clucene-dir=/path/to/clucene" >&5 +echo "$as_me: error: CLucene library not found. Try to use configure with --with-clucene-dir=/path/to/clucene" >&2;} + { (exit 1); exit 1; }; }; +fi + +if test "x$ac_static_clucene" = "xYES"; then + LIB_CLUCENE="$ac_cv_clucene_libdir/libclucene.a"; +else + LIB_CLUCENE="-lclucene"; +fi + + + +all_libraries="$all_libraries -L$ac_cv_clucene_libdir" + +if test "x$ac_static_clucene" = "xYES"; then + MESSAGE="static library $ac_cv_clucene_libdir/libclucene.a"; +else + MESSAGE="$ac_cv_clucene_libdir"; +fi +{ echo "$as_me:$LINENO: result: $MESSAGE" >&5 +echo "${ECHO_T}$MESSAGE" >&6; } + +{ echo "$as_me:$LINENO: checking for Clucene include files" >&5 +echo $ECHO_N "checking for Clucene include files... $ECHO_C" >&6; } +ac_clucene_include_dirs="$ac_clucene_dir/include $exec_prefix/include $prefix/include /usr/include /usr/local/include" + +if test "${ac_cv_clucene_incdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +ac_cv_clucene_incdir=NO +for i in $ac_clucene_include_dirs; +do + for j in CLucene.h; + do + echo "configure: 33041: $i/$j" >&5 + if test -r "$i/$j"; then + echo "taking that" >&5 + ac_cv_clucene_incdir=$i + break 2 + fi + done +done + +fi + + +if test "x$ac_cv_clucene_incdir" = "xNO"; then + { { echo "$as_me:$LINENO: error: The CLucene include file files were not found. +Please try to use configure with --with-clucene-dir=/path/to/clucene +" >&5 +echo "$as_me: error: The CLucene include file files were not found. +Please try to use configure with --with-clucene-dir=/path/to/clucene +" >&2;} + { (exit 1); exit 1; }; } +fi + +CLUCENE_INCLUDES="-I$ac_cv_clucene_incdir" + +all_includes="$all_includes -I$ac_cv_clucene_incdir -I$ac_cv_clucene_libdir -I$ac_cv_sword_incdir" #$ac_cv_clucene_libdir needed for Clucene/clucene-config.h + +{ echo "$as_me:$LINENO: result: $ac_cv_clucene_incdir" >&5 +echo "${ECHO_T}$ac_cv_clucene_incdir" >&6; } + + + + +{ echo "$as_me:$LINENO: checking for CLucene version" >&5 +echo $ECHO_N "checking for CLucene version... $ECHO_C" >&6; } + +if test "${ac_cv_installed_clucene_version+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=cpp +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 + +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + + +ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH +ac_LIBRARY_PATH="$LIBRARY_PATH" +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$" +LDFLAGS="$LDFLAGS -L$ac_cv_clucene_libdir -L$ac_cv_sword_libdir" +LIBS="$LIB_CLUCENE -lz -lsword" +LD_LIBRARY_PATH="$ac_cv_clucene_libdir" +export LD_LIBRARY_PATH +LIBRARY_PATH= +export LIBRARY_PATH + +cat > conftest.$ac_ext < +#include +#include + +int main(int argc, char* argv[]) { + if ( sword::SWVersion( _CL_VERSION ) >= sword::SWVersion( "0.9.16" ) ){ + std::cout << "ok"; + } + else{ + std::cout << "not-ok"; + } + return 0; +} +EOF + + +ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +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; then + if test -x conftest; then + eval ac_cv_installed_clucene_version=`./conftest 2>&5` + fi +else + echo "configure: failed program was:" >&5 + { { echo "$as_me:$LINENO: error: Failed to compile the test program to check the CLucene version! Please have a look at config.log! Report this to the BibleTime developers!" >&5 +echo "$as_me: error: Failed to compile the test program to check the CLucene version! Please have a look at config.log! Report this to the BibleTime developers!" >&2;} + { (exit 1); exit 1; }; }; + cat conftest.$ac_ext >&5 +fi + +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" +export LD_LIBRARY_PATH +LIBRARY_PATH="$ac_LIBRARY_PATH" +export LIBRARY_PATH +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 + + +if test "x$ac_cv_installed_clucene_version" = "xok"; then + { echo "$as_me:$LINENO: result: ok, version is recent enough" >&5 +echo "${ECHO_T}ok, version is recent enough" >&6; }; +elif test "x$ac_cv_installed_clucene_version" = "xnot-ok"; then + { echo "$as_me:$LINENO: result: installed" >&5 +echo "${ECHO_T}installed" >&6; }; + { { echo "$as_me:$LINENO: error: Your CLucene version is not recent enough! Please upgrade to version >= 0.9.16!" >&5 +echo "$as_me: error: Your CLucene version is not recent enough! Please upgrade to version >= 0.9.16!" >&2;} + { (exit 1); exit 1; }; }; +fi; + + + +# Check whether --enable-howto was given. +if test "${enable_howto+set}" = set; then + enableval=$enable_howto; +else + enable_howto=yes + +fi + +HOWTODIR="" +if test "x$enable_howto" = xyes; then + HOWTODIR="howto" +fi + + + +{ echo "$as_me:$LINENO: checking for the used Linux distribution" >&5 +echo $ECHO_N "checking for the used Linux distribution... $ECHO_C" >&6; } + + +# Check whether --with-distribution was given. +if test "${with_distribution+set}" = set; then + withval=$with_distribution; + ac_distribution=$withval + +else + ac_distribution=auto + +fi + + + +# Check whether --with-distribution-version was given. +if test "${with_distribution_version+set}" = set; then + withval=$with_distribution_version; + ac_distribution_version=$withval + +else + ac_distribution_version=auto + +fi + + + +# Check whether --with-rpm-prefix was given. +if test "${with_rpm_prefix+set}" = set; then + withval=$with_rpm_prefix; + ac_rpm_prefix=$withval + +else + ac_rpm_prefix=auto + +fi + + + +# Check whether --with-rpm-group was given. +if test "${with_rpm_group+set}" = set; then + withval=$with_rpm_group; + ac_rpm_group=$withval + +else + ac_rpm_group=auto + +fi + + +if test "$ac_distribution" != "auto"; then + DISTRIBUTION=$ac_distribution +fi + +if test "$ac_distribution" = "auto"; then +if test "${DISTRIBUTION+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +if test -f "/etc/SuSE-release"; then + DISTRIBUTION="SuSE" +elif test -f "/etc/mandrake-release"; then + DISTRIBUTION="Mandrake" +elif test -f "/etc/redhat-release"; then + DISTRIBUTION="Red Hat" +elif test -f "/etc/debian_version"; then + DISTRIBUTION="Debian" +fi + +fi + +fi + +if test "$ac_distribution_version" != "auto"; then + DISTRIBUTION_VERSION=$ac_distribution_version +fi +if test "$ac_distribution_version" = "auto"; then +if test "${DISTRIBUTION_VERSION+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +if test -f "/etc/SuSE-release" && test "$DISTRIBUTION" = "SuSE"; then + DISTRIBUTION_VERSION=`grep "VERSION =" /etc/SuSE-release | sed 's/VERSION = //'`; +elif test -f "/etc/mandrake-release" && test "$DISTRIBUTION" = "Mandrake"; then + DISTRIBUTION_VERSION=`grep "Mandrake" /etc/mandrake-release | sed 's/[a-zA-Z()]*//g' | awk '{print }'` +elif test -f "/etc/redhat-release" && test "$DISTRIBUTION" = "Red Hat"; then + DISTRIBUTION_VERSION=`grep "Red Hat" /etc/redhat-release | sed 's/[a-zA-Z()]*//g' | awk '{print }'` +elif test -f "/etc/debian_version" && test "$DISTRIBUTION" = "Debian"; then + DISTRIBUTION_VERSION=`cat /etc/debian_version` +fi + +fi + +fi + + +if test "$ac_rpm_prefix" != "auto"; then + RPM_PREFIX=$ac_rpm_prefix +fi +if test "$ac_rpm_prefix" = "auto"; then +if test "${RPM_PREFIX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +if test "$DISTRIBUTION" = "SuSE"; then + RPM_PREFIX="/opt/kde3" +elif test "$DISTRIBUTION" = "Mandrake"; then + RPM_PREFIX="/usr" +elif test "$DISTRIBUTION" = "Red Hat"; then + RPM_PREFIX="/usr" +elif test "$DISTRIBUTION" = "Debian"; then + RPM_PREFIX="/usr" +fi + +fi + +fi + +if test "$ac_rpm_group" != "auto"; then + RPM_GROUP=$ac_rpm_group +fi +if test "$ac_rpm_prefix" = "auto"; then +if test "${RPM_GROUP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +if test "$DISTRIBUTION" = "SuSE"; then + RPM_GROUP="X11/KDE/Applications" +elif test "$DISTRIBUTION" = "Mandrake"; then + RPM_GROUP="Graphical desktop/KDE" +elif test "$DISTRIBUTION" = "Red Hat"; then + RPM_GROUP="Graphical desktop/KDE" +elif test "$DISTRIBUTION" = "Debian"; then + RPM_GROUP="Graphical desktop/KDE" +fi + +fi + +fi + +if test -n "$DISTRIBUTION" && test "$DISTRIBUTION" != "unknown"; then + +cat >>confdefs.h <<_ACEOF +#define DISTRIBUTION ${DISTRIBUTION} +_ACEOF + +fi + +if test -n "$DISTRIBUTION_VERSION" && test "$DISTRIBUTION_VERSION" != "unknown"; then + +cat >>confdefs.h <<_ACEOF +#define DISTRIBUTION_VERSION ${DISTRIBUTION_VERSION} +_ACEOF + +fi + + + + + + +{ echo "$as_me:$LINENO: result: $DISTRIBUTION $DISTRIBUTION_VERSION" >&5 +echo "${ECHO_T}$DISTRIBUTION $DISTRIBUTION_VERSION" >&6; } + +{ echo "$as_me:$LINENO: checking for RPM installation prefix" >&5 +echo $ECHO_N "checking for RPM installation prefix... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $RPM_PREFIX" >&5 +echo "${ECHO_T}$RPM_PREFIX" >&6; } + +{ echo "$as_me:$LINENO: checking for the correct RPM group" >&5 +echo $ECHO_N "checking for the correct RPM group... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $RPM_GROUP" >&5 +echo "${ECHO_T}$RPM_GROUP" >&6; } + + + +ac_config_files="$ac_config_files README" + +ac_config_files="$ac_config_files INSTALL" + +ac_config_files="$ac_config_files bibletime.lsm" + +ac_config_files="$ac_config_files bibletime.spec" + +ac_config_files="$ac_config_files bibletime.desktop" + + + +DO_NOT_COMPILE="$DO_NOT_COMPILE CVS debian bsd-port admin" +TOPSUBDIRS="" + +if test ! -s $srcdir/subdirs; then + files=`cd $srcdir && ls -1` + dirs=`for i in $files; do if test -d $i; then echo $i; fi; done` + for i in $dirs; do + echo $i >> $srcdir/subdirs + done +fi + +ac_topsubdirs= +if test -s $srcdir/inst-apps; then + ac_topsubdirs="`cat $srcdir/inst-apps`" +elif test -s $srcdir/subdirs; then + ac_topsubdirs="`cat $srcdir/subdirs`" +fi + +for i in $ac_topsubdirs; do + { echo "$as_me:$LINENO: checking if $i should be compiled" >&5 +echo $ECHO_N "checking if $i should be compiled... $ECHO_C" >&6; } + if test -d $srcdir/$i; then + install_it="yes" + for j in $DO_NOT_COMPILE; do + if test $i = $j; then + install_it="no" + fi + done + else + install_it="no" + fi + { echo "$as_me:$LINENO: result: $install_it" >&5 +echo "${ECHO_T}$install_it" >&6; } + vari=`echo $i | sed -e 's,[-+.@],_,g'` + if test $install_it = "yes"; then + TOPSUBDIRS="$TOPSUBDIRS $i" + eval "$vari""_SUBDIR_included=yes" + else + eval "$vari""_SUBDIR_included=no" + fi +done + + + +ac_config_files="$ac_config_files Makefile" + +ac_config_files="$ac_config_files bibletime/Makefile" + +ac_config_files="$ac_config_files bibletime/backend/Makefile" + +ac_config_files="$ac_config_files bibletime/display-templates/Makefile" + +ac_config_files="$ac_config_files bibletime/frontend/Makefile" + +ac_config_files="$ac_config_files bibletime/frontend/display/Makefile" + +ac_config_files="$ac_config_files bibletime/frontend/displaywindow/Makefile" + +ac_config_files="$ac_config_files bibletime/frontend/keychooser/Makefile" + +ac_config_files="$ac_config_files bibletime/frontend/mainindex/Makefile" + +ac_config_files="$ac_config_files bibletime/frontend/searchdialog/Makefile" + +ac_config_files="$ac_config_files bibletime/frontend/util/Makefile" + +ac_config_files="$ac_config_files bibletime/pics/Makefile" + +ac_config_files="$ac_config_files bibletime/pics/16x16/Makefile" + +ac_config_files="$ac_config_files bibletime/pics/22x22/Makefile" + +ac_config_files="$ac_config_files bibletime/pics/32x32/Makefile" + +ac_config_files="$ac_config_files bibletime/pics/48x48/Makefile" + +ac_config_files="$ac_config_files bibletime/pics/64x64/Makefile" + +ac_config_files="$ac_config_files bibletime/util/Makefile" + +ac_config_files="$ac_config_files bibletime/xml/Makefile" + +ac_config_files="$ac_config_files docs/Makefile" + +ac_config_files="$ac_config_files docs/handbook/Makefile" + +ac_config_files="$ac_config_files docs/handbook/html/Makefile" + +ac_config_files="$ac_config_files docs/handbook/unicode/Makefile" + +ac_config_files="$ac_config_files docs/howto/Makefile" + +ac_config_files="$ac_config_files docs/howto/html/Makefile" + +ac_config_files="$ac_config_files docs/howto/unicode/Makefile" + +ac_config_files="$ac_config_files pot/Makefile" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { echo "$as_me:$LINENO: updating cache $cache_file" >&5 +echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +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 +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${unsermake_enable_pch_TRUE}" && test -z "${unsermake_enable_pch_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"unsermake_enable_pch\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"unsermake_enable_pch\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +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 "${include_x11_TRUE}" && test -z "${include_x11_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"include_x11\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"include_x11\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${include_ARTS_TRUE}" && test -z "${include_ARTS_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"include_ARTS\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"include_ARTS\" 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 more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# 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 + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +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) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# 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'` + +# CDPATH. +$as_unset CDPATH + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # 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 after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, 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 + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { 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 sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 + +# Save the log message, to keep $[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by $as_me, which was +generated by GNU Autoconf 2.61. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +ac_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 and configuration settings, 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="\\ +config.status +configured by $0, generated by GNU Autoconf 2.61, + with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2006 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +_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 + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --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;; + --he | --h) + # Conflict between --help and --header + { 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 ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { 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" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + CONFIG_SHELL=$SHELL + export CONFIG_SHELL + exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "README") CONFIG_FILES="$CONFIG_FILES README" ;; + "INSTALL") CONFIG_FILES="$CONFIG_FILES INSTALL" ;; + "bibletime.lsm") CONFIG_FILES="$CONFIG_FILES bibletime.lsm" ;; + "bibletime.spec") CONFIG_FILES="$CONFIG_FILES bibletime.spec" ;; + "bibletime.desktop") CONFIG_FILES="$CONFIG_FILES bibletime.desktop" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "bibletime/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/Makefile" ;; + "bibletime/backend/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/backend/Makefile" ;; + "bibletime/display-templates/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/display-templates/Makefile" ;; + "bibletime/frontend/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/frontend/Makefile" ;; + "bibletime/frontend/display/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/frontend/display/Makefile" ;; + "bibletime/frontend/displaywindow/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/frontend/displaywindow/Makefile" ;; + "bibletime/frontend/keychooser/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/frontend/keychooser/Makefile" ;; + "bibletime/frontend/mainindex/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/frontend/mainindex/Makefile" ;; + "bibletime/frontend/searchdialog/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/frontend/searchdialog/Makefile" ;; + "bibletime/frontend/util/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/frontend/util/Makefile" ;; + "bibletime/pics/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/pics/Makefile" ;; + "bibletime/pics/16x16/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/pics/16x16/Makefile" ;; + "bibletime/pics/22x22/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/pics/22x22/Makefile" ;; + "bibletime/pics/32x32/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/pics/32x32/Makefile" ;; + "bibletime/pics/48x48/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/pics/48x48/Makefile" ;; + "bibletime/pics/64x64/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/pics/64x64/Makefile" ;; + "bibletime/util/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/util/Makefile" ;; + "bibletime/xml/Makefile") CONFIG_FILES="$CONFIG_FILES bibletime/xml/Makefile" ;; + "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; + "docs/handbook/Makefile") CONFIG_FILES="$CONFIG_FILES docs/handbook/Makefile" ;; + "docs/handbook/html/Makefile") CONFIG_FILES="$CONFIG_FILES docs/handbook/html/Makefile" ;; + "docs/handbook/unicode/Makefile") CONFIG_FILES="$CONFIG_FILES docs/handbook/unicode/Makefile" ;; + "docs/howto/Makefile") CONFIG_FILES="$CONFIG_FILES docs/howto/Makefile" ;; + "docs/howto/html/Makefile") CONFIG_FILES="$CONFIG_FILES docs/howto/html/Makefile" ;; + "docs/howto/unicode/Makefile") CONFIG_FILES="$CONFIG_FILES docs/howto/unicode/Makefile" ;; + "pot/Makefile") CONFIG_FILES="$CONFIG_FILES pot/Makefile" ;; + + *) { { 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 against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +# +# Set up the sed scripts for 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 + +_ACEOF + + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +SHELL!$SHELL$ac_delim +PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim +PACKAGE_NAME!$PACKAGE_NAME$ac_delim +PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim +PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim +PACKAGE_STRING!$PACKAGE_STRING$ac_delim +PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim +exec_prefix!$exec_prefix$ac_delim +prefix!$prefix$ac_delim +program_transform_name!$program_transform_name$ac_delim +bindir!$bindir$ac_delim +sbindir!$sbindir$ac_delim +libexecdir!$libexecdir$ac_delim +datarootdir!$datarootdir$ac_delim +datadir!$datadir$ac_delim +sysconfdir!$sysconfdir$ac_delim +sharedstatedir!$sharedstatedir$ac_delim +localstatedir!$localstatedir$ac_delim +includedir!$includedir$ac_delim +oldincludedir!$oldincludedir$ac_delim +docdir!$docdir$ac_delim +infodir!$infodir$ac_delim +htmldir!$htmldir$ac_delim +dvidir!$dvidir$ac_delim +pdfdir!$pdfdir$ac_delim +psdir!$psdir$ac_delim +libdir!$libdir$ac_delim +localedir!$localedir$ac_delim +mandir!$mandir$ac_delim +DEFS!$DEFS$ac_delim +ECHO_C!$ECHO_C$ac_delim +ECHO_N!$ECHO_N$ac_delim +ECHO_T!$ECHO_T$ac_delim +LIBS!$LIBS$ac_delim +build_alias!$build_alias$ac_delim +host_alias!$host_alias$ac_delim +target_alias!$target_alias$ac_delim +build!$build$ac_delim +build_cpu!$build_cpu$ac_delim +build_vendor!$build_vendor$ac_delim +build_os!$build_os$ac_delim +host!$host$ac_delim +host_cpu!$host_cpu$ac_delim +host_vendor!$host_vendor$ac_delim +host_os!$host_os$ac_delim +target!$target$ac_delim +target_cpu!$target_cpu$ac_delim +target_vendor!$target_vendor$ac_delim +target_os!$target_os$ac_delim +INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim +INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim +INSTALL_DATA!$INSTALL_DATA$ac_delim +am__isrc!$am__isrc$ac_delim +CYGPATH_W!$CYGPATH_W$ac_delim +PACKAGE!$PACKAGE$ac_delim +VERSION!$VERSION$ac_delim +ACLOCAL!$ACLOCAL$ac_delim +AUTOCONF!$AUTOCONF$ac_delim +AUTOMAKE!$AUTOMAKE$ac_delim +AUTOHEADER!$AUTOHEADER$ac_delim +MAKEINFO!$MAKEINFO$ac_delim +install_sh!$install_sh$ac_delim +STRIP!$STRIP$ac_delim +INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim +mkdir_p!$mkdir_p$ac_delim +AWK!$AWK$ac_delim +SET_MAKE!$SET_MAKE$ac_delim +am__leading_dot!$am__leading_dot$ac_delim +AMTAR!$AMTAR$ac_delim +am__tar!$am__tar$ac_delim +am__untar!$am__untar$ac_delim +KDECONFIG!$KDECONFIG$ac_delim +kde_libs_prefix!$kde_libs_prefix$ac_delim +kde_libs_htmldir!$kde_libs_htmldir$ac_delim +CONF_FILES!$CONF_FILES$ac_delim +CC!$CC$ac_delim +CFLAGS!$CFLAGS$ac_delim +LDFLAGS!$LDFLAGS$ac_delim +CPPFLAGS!$CPPFLAGS$ac_delim +ac_ct_CC!$ac_ct_CC$ac_delim +EXEEXT!$EXEEXT$ac_delim +OBJEXT!$OBJEXT$ac_delim +DEPDIR!$DEPDIR$ac_delim +am__include!$am__include$ac_delim +am__quote!$am__quote$ac_delim +AMDEP_TRUE!$AMDEP_TRUE$ac_delim +AMDEP_FALSE!$AMDEP_FALSE$ac_delim +AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim +CCDEPMODE!$CCDEPMODE$ac_delim +am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim +am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim +CPP!$CPP$ac_delim +CXX!$CXX$ac_delim +CXXFLAGS!$CXXFLAGS$ac_delim +ac_ct_CXX!$ac_ct_CXX$ac_delim +CXXDEPMODE!$CXXDEPMODE$ac_delim +am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +CEOF$ac_eof +_ACEOF + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim +WOVERLOADED_VIRTUAL!$WOVERLOADED_VIRTUAL$ac_delim +HAVE_GCC_VISIBILITY!$HAVE_GCC_VISIBILITY$ac_delim +unsermake_enable_pch_TRUE!$unsermake_enable_pch_TRUE$ac_delim +unsermake_enable_pch_FALSE!$unsermake_enable_pch_FALSE$ac_delim +USE_EXCEPTIONS!$USE_EXCEPTIONS$ac_delim +USE_RTTI!$USE_RTTI$ac_delim +CXXCPP!$CXXCPP$ac_delim +NOOPT_CXXFLAGS!$NOOPT_CXXFLAGS$ac_delim +NOOPT_CFLAGS!$NOOPT_CFLAGS$ac_delim +ENABLE_PERMISSIVE_FLAG!$ENABLE_PERMISSIVE_FLAG$ac_delim +LDFLAGS_AS_NEEDED!$LDFLAGS_AS_NEEDED$ac_delim +LDFLAGS_NEW_DTAGS!$LDFLAGS_NEW_DTAGS$ac_delim +KDE_USE_FINAL_TRUE!$KDE_USE_FINAL_TRUE$ac_delim +KDE_USE_FINAL_FALSE!$KDE_USE_FINAL_FALSE$ac_delim +KDE_USE_CLOSURE_TRUE!$KDE_USE_CLOSURE_TRUE$ac_delim +KDE_USE_CLOSURE_FALSE!$KDE_USE_CLOSURE_FALSE$ac_delim +KDE_NO_UNDEFINED!$KDE_NO_UNDEFINED$ac_delim +KDE_USE_NMCHECK_TRUE!$KDE_USE_NMCHECK_TRUE$ac_delim +KDE_USE_NMCHECK_FALSE!$KDE_USE_NMCHECK_FALSE$ac_delim +GREP!$GREP$ac_delim +EGREP!$EGREP$ac_delim +LN_S!$LN_S$ac_delim +ECHO!$ECHO$ac_delim +AR!$AR$ac_delim +RANLIB!$RANLIB$ac_delim +F77!$F77$ac_delim +FFLAGS!$FFLAGS$ac_delim +ac_ct_F77!$ac_ct_F77$ac_delim +LIBTOOL!$LIBTOOL$ac_delim +KDE_PLUGIN!$KDE_PLUGIN$ac_delim +MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim +MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim +MAINT!$MAINT$ac_delim +MSGFMT!$MSGFMT$ac_delim +GMSGFMT!$GMSGFMT$ac_delim +XGETTEXT!$XGETTEXT$ac_delim +LIBUTIL!$LIBUTIL$ac_delim +LIBCOMPAT!$LIBCOMPAT$ac_delim +LIBCRYPT!$LIBCRYPT$ac_delim +LIBRESOLV!$LIBRESOLV$ac_delim +LIB_POLL!$LIB_POLL$ac_delim +FRAMEWORK_COREAUDIO!$FRAMEWORK_COREAUDIO$ac_delim +LIBSOCKET!$LIBSOCKET$ac_delim +X_EXTRA_LIBS!$X_EXTRA_LIBS$ac_delim +LIBUCB!$LIBUCB$ac_delim +LIBDL!$LIBDL$ac_delim +include_x11_TRUE!$include_x11_TRUE$ac_delim +include_x11_FALSE!$include_x11_FALSE$ac_delim +XMKMF!$XMKMF$ac_delim +X_PRE_LIBS!$X_PRE_LIBS$ac_delim +LIB_X11!$LIB_X11$ac_delim +LIB_XRENDER!$LIB_XRENDER$ac_delim +LIBSM!$LIBSM$ac_delim +X_INCLUDES!$X_INCLUDES$ac_delim +X_LDFLAGS!$X_LDFLAGS$ac_delim +x_includes!$x_includes$ac_delim +x_libraries!$x_libraries$ac_delim +QTE_NORTTI!$QTE_NORTTI$ac_delim +LIB_XEXT!$LIB_XEXT$ac_delim +LIBPTHREAD!$LIBPTHREAD$ac_delim +USE_THREADS!$USE_THREADS$ac_delim +KDE_MT_LDFLAGS!$KDE_MT_LDFLAGS$ac_delim +KDE_MT_LIBS!$KDE_MT_LIBS$ac_delim +USER_INCLUDES!$USER_INCLUDES$ac_delim +USER_LDFLAGS!$USER_LDFLAGS$ac_delim +LIBZ!$LIBZ$ac_delim +LIBPNG!$LIBPNG$ac_delim +LIBJPEG!$LIBJPEG$ac_delim +qt_libraries!$qt_libraries$ac_delim +qt_includes!$qt_includes$ac_delim +QT_INCLUDES!$QT_INCLUDES$ac_delim +QT_LDFLAGS!$QT_LDFLAGS$ac_delim +PERL!$PERL$ac_delim +MOC!$MOC$ac_delim +UIC!$UIC$ac_delim +UIC_TR!$UIC_TR$ac_delim +LIB_QT!$LIB_QT$ac_delim +LIB_QPE!$LIB_QPE$ac_delim +kde_qtver!$kde_qtver$ac_delim +KDE_EXTRA_RPATH!$KDE_EXTRA_RPATH$ac_delim +KDE_RPATH!$KDE_RPATH$ac_delim +X_RPATH!$X_RPATH$ac_delim +kde_libraries!$kde_libraries$ac_delim +kde_includes!$kde_includes$ac_delim +KDE_LDFLAGS!$KDE_LDFLAGS$ac_delim +KDE_INCLUDES!$KDE_INCLUDES$ac_delim +all_includes!$all_includes$ac_delim +all_libraries!$all_libraries$ac_delim +AUTODIRS!$AUTODIRS$ac_delim +include_ARTS_TRUE!$include_ARTS_TRUE$ac_delim +include_ARTS_FALSE!$include_ARTS_FALSE$ac_delim +MAKEKDEWIDGETS!$MAKEKDEWIDGETS$ac_delim +KCONFIG_COMPILER!$KCONFIG_COMPILER$ac_delim +KCFG_DEPENDENCIES!$KCFG_DEPENDENCIES$ac_delim +DCOPIDLNG!$DCOPIDLNG$ac_delim +DCOPIDL!$DCOPIDL$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +CEOF$ac_eof +_ACEOF + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +DCOPIDL2CPP!$DCOPIDL2CPP$ac_delim +DCOP_DEPENDENCIES!$DCOP_DEPENDENCIES$ac_delim +MCOPIDL!$MCOPIDL$ac_delim +ARTSCCONFIG!$ARTSCCONFIG$ac_delim +MEINPROC!$MEINPROC$ac_delim +KDE_XSL_STYLESHEET!$KDE_XSL_STYLESHEET$ac_delim +XMLLINT!$XMLLINT$ac_delim +kde_htmldir!$kde_htmldir$ac_delim +kde_appsdir!$kde_appsdir$ac_delim +kde_icondir!$kde_icondir$ac_delim +kde_sounddir!$kde_sounddir$ac_delim +kde_datadir!$kde_datadir$ac_delim +kde_locale!$kde_locale$ac_delim +kde_confdir!$kde_confdir$ac_delim +kde_kcfgdir!$kde_kcfgdir$ac_delim +kde_mimedir!$kde_mimedir$ac_delim +kde_wallpaperdir!$kde_wallpaperdir$ac_delim +kde_bindir!$kde_bindir$ac_delim +xdg_appsdir!$xdg_appsdir$ac_delim +xdg_menudir!$xdg_menudir$ac_delim +xdg_directorydir!$xdg_directorydir$ac_delim +kde_templatesdir!$kde_templatesdir$ac_delim +kde_servicesdir!$kde_servicesdir$ac_delim +kde_servicetypesdir!$kde_servicetypesdir$ac_delim +kde_moduledir!$kde_moduledir$ac_delim +kdeinitdir!$kdeinitdir$ac_delim +kde_styledir!$kde_styledir$ac_delim +kde_widgetdir!$kde_widgetdir$ac_delim +LIB_KDECORE!$LIB_KDECORE$ac_delim +LIB_KDEUI!$LIB_KDEUI$ac_delim +LIB_KIO!$LIB_KIO$ac_delim +LIB_KJS!$LIB_KJS$ac_delim +LIB_SMB!$LIB_SMB$ac_delim +LIB_KAB!$LIB_KAB$ac_delim +LIB_KABC!$LIB_KABC$ac_delim +LIB_KHTML!$LIB_KHTML$ac_delim +LIB_KSPELL!$LIB_KSPELL$ac_delim +LIB_KPARTS!$LIB_KPARTS$ac_delim +LIB_KDEPRINT!$LIB_KDEPRINT$ac_delim +LIB_KUTILS!$LIB_KUTILS$ac_delim +LIB_KDEPIM!$LIB_KDEPIM$ac_delim +LIB_KIMPROXY!$LIB_KIMPROXY$ac_delim +LIB_KNEWSTUFF!$LIB_KNEWSTUFF$ac_delim +LIB_KDNSSD!$LIB_KDNSSD$ac_delim +LIB_KSYCOCA!$LIB_KSYCOCA$ac_delim +LIB_KFILE!$LIB_KFILE$ac_delim +LIB_KFM!$LIB_KFM$ac_delim +BT_LDFLAGS!$BT_LDFLAGS$ac_delim +SWORD_LIBRARY_PATH!$SWORD_LIBRARY_PATH$ac_delim +LIB_SWORD!$LIB_SWORD$ac_delim +SWORD_INCLUDES!$SWORD_INCLUDES$ac_delim +CLUCENE_LIBRARY_PATH!$CLUCENE_LIBRARY_PATH$ac_delim +LIB_CLUCENE!$LIB_CLUCENE$ac_delim +CLUCENE_INCLUDES!$CLUCENE_INCLUDES$ac_delim +HOWTODIR!$HOWTODIR$ac_delim +DISTRIBUTION!$DISTRIBUTION$ac_delim +DISTRIBUTION_VERSION!$DISTRIBUTION_VERSION$ac_delim +RPM_PREFIX!$RPM_PREFIX$ac_delim +RPM_GROUP!$RPM_GROUP$ac_delim +TOPSUBDIRS!$TOPSUBDIRS$ac_delim +LIBOBJS!$LIBOBJS$ac_delim +LTLIBOBJS!$LTLIBOBJS$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 62; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-3.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +:end +s/|#_!!_#|//g +CEOF$ac_eof +_ACEOF + + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF +fi # test -n "$CONFIG_FILES" + + +for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 +echo "$as_me: error: Invalid tag $ac_tag." >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + ac_file_inputs="$ac_file_inputs $ac_f" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input="Generated from "`IFS=: + echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + fi + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin";; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +case `sed -n '/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' $ac_file_inputs` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF + 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&@top_builddir@&$ac_top_builddir_sub&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" | sed -f "$tmp/subs-3.sed" >$tmp/out + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out"; rm -f "$tmp/out";; + *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; + esac + ;; + :H) + # + # CONFIG_HEADER + # +_ACEOF + +# Transform confdefs.h into a sed script `conftest.defines', that +# substitutes the proper values into config.h.in to produce config.h. +rm -f conftest.defines conftest.tail +# First, append a space to every undef/define line, to ease matching. +echo 's/$/ /' >conftest.defines +# Then, protect against being on the right side of a sed subst, or in +# an unquoted here document, in config.status. If some macros were +# called several times there might be several #defines for the same +# symbol, which is useless. But do not sort them, since the last +# AC_DEFINE must be honored. +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where +# NAME is the cpp macro being defined, VALUE is the value it is being given. +# PARAMS is the parameter list in the macro definition--in most cases, it's +# just an empty string. +ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' +ac_dB='\\)[ (].*,\\1define\\2' +ac_dC=' ' +ac_dD=' ,' + +uniq confdefs.h | + sed -n ' + t rset + :rset + s/^[ ]*#[ ]*define[ ][ ]*// + t ok + d + :ok + s/[\\&,]/\\&/g + s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p + s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p + ' >>conftest.defines + +# Remove the space that was appended to ease matching. +# Then replace #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +# (The regexp can be short, since the line contains either #define or #undef.) +echo 's/ $// +s,^[ #]*u.*,/* & */,' >>conftest.defines + +# Break up conftest.defines: +ac_max_sed_lines=50 + +# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" +# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" +# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" +# et cetera. +ac_in='$ac_file_inputs' +ac_out='"$tmp/out1"' +ac_nxt='"$tmp/out2"' + +while : +do + # Write a here document: + cat >>$CONFIG_STATUS <<_ACEOF + # First, check the format of the line: + cat >"\$tmp/defines.sed" <<\\CEOF +/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def +/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def +b +:def +_ACEOF + sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS + echo 'CEOF + sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS + ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in + sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail + grep . conftest.tail >/dev/null || break + rm -f conftest.defines + mv conftest.tail conftest.defines +done +rm -f conftest.defines conftest.tail + +echo "ac_result=$ac_in" >>$CONFIG_STATUS +cat >>$CONFIG_STATUS <<\_ACEOF + if test x"$ac_file" != x-; then + echo "/* $configure_input */" >"$tmp/config.h" + cat "$ac_result" >>"$tmp/config.h" + 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 + rm -f $ac_file + mv "$tmp/config.h" $ac_file + fi + else + echo "/* $configure_input */" + cat "$ac_result" + fi + rm -f "$tmp/out12" +# Compute $ac_file's index in $config_headers. +_am_arg=$ac_file +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 +echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) 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. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir=$dirpart/$fdir + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done + ;; + + esac +done # for ac_tag + + +{ (exit 0); exit 0; } +_ACEOF +if test "x$with_fast_perl" = "xyes"; then + perl -i.bak $ac_aux_dir/conf.change.pl $CONFIG_STATUS \ + || mv $CONFIG_STATUS.bak $CONFIG_STATUS + rm -f $CONFIG_STATUS.bak +fi +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 + +# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure +if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then + # And if so, warn when they don't match + if test "$kde_libs_prefix" != "$given_prefix"; then + # And if kde doesn't know about the prefix yet + echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null + if test $? -ne 0; then + echo "" + echo "Warning: you chose to install this package in $given_prefix," + echo "but KDE was found in $kde_libs_prefix." + echo "For this to work, you will need to tell KDE about the new prefix, by ensuring" + echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix" + echo "Then restart KDE." + echo "" + fi + fi +fi + +if test "$all_tests" = "bad"; then + if test ! "$cache_file" = "/dev/null"; then + echo "" + echo "Please remove the file $cache_file after changing your setup" + echo "so that configure will find the changes next time." + echo "" + fi +else + echo "" + echo "Good - your configure finished. Start make now" + echo "" +fi diff --git a/configure.in b/configure.in new file mode 100644 index 0000000..3379ae3 --- /dev/null +++ b/configure.in @@ -0,0 +1,131 @@ +dnl ======================================================= +dnl FILE: configure.in.in +dnl ======================================================= + +AC_INIT(acinclude.m4) dnl a source file from your sub dir + +dnl This is so we can use kde-common +AC_CONFIG_AUX_DIR(admin) + +dnl This ksh/zsh feature conflicts with `cd blah ; pwd` +unset CDPATH + +dnl Checking host/target/build systems, for make, install etc. +AC_CANONICAL_SYSTEM +dnl Perform program name transformation +AC_ARG_PROGRAM + +dnl Automake doc recommends to do this only here. (Janos) +AM_INIT_AUTOMAKE(bibletime, 1.6.5.1) dnl searches for some needed programs + +KDE_SET_PREFIX +KDE_USE_QT(3.0) + +dnl generate the config header +AM_CONFIG_HEADER([config.h]) dnl at the distribution this done + +dnl Checks for programs. +AC_CHECK_COMPILERS +CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS" +AC_ENABLE_SHARED(no) +AC_ENABLE_STATIC(yes) +KDE_PROG_LIBTOOL + +AM_MAINTAINER_MODE + +dnl for NLS support. Call them in this order! +dnl WITH_NLS is for the po files +AM_KDE_WITH_NLS + +AC_PATH_KDE + +dnl in this space add everything you want to check for; +dnl examples are specific headers, libraries, etc. +dnl everything to compile and run a KDE program is already checked + +CPPFLAGS="$CPPFLAGS -DQT_NO_ASCII_CAST -DQT_NO_COMPAT -DQT_CLEAN_NAMESPACE -Wall -I\$(top_srcdir)/ -I\$(top_srcdir)/bibletime -I\$(top_builddir)/bibletime" +AC_CHECK_STATIC_LINKING(ac_use_static) +AC_CHECK_SWORD(1.5.9, [$ac_use_static]) +AC_CHECK_CLUCENE([$ac_use_static]) + +AC_ARG_ENABLE(howto, + AC_HELP_STRING([--enable-howto], + [install Bible Study Howto (default=yes)]), + , + enable_howto=yes +) +HOWTODIR="" +if test "x$enable_howto" = xyes; then + HOWTODIR="howto" +fi +AC_SUBST(HOWTODIR) + +dnl Chek for the used distribution +AC_CHECK_DISTRIBUTION + +dnl add here all your Makefiles. They are created by configure + +AC_CONFIG_FILES([ README ]) +AC_CONFIG_FILES([ INSTALL ]) +AC_CONFIG_FILES([ bibletime.lsm ]) +AC_CONFIG_FILES([ bibletime.spec ]) +AC_CONFIG_FILES([ bibletime.desktop ]) +KDE_CREATE_SUBDIRSLIST +AC_CONFIG_FILES([ Makefile ]) +AC_CONFIG_FILES([ bibletime/Makefile ]) +AC_CONFIG_FILES([ bibletime/backend/Makefile ]) +AC_CONFIG_FILES([ bibletime/display-templates/Makefile ]) +AC_CONFIG_FILES([ bibletime/frontend/Makefile ]) +AC_CONFIG_FILES([ bibletime/frontend/display/Makefile ]) +AC_CONFIG_FILES([ bibletime/frontend/displaywindow/Makefile ]) +AC_CONFIG_FILES([ bibletime/frontend/keychooser/Makefile ]) +AC_CONFIG_FILES([ bibletime/frontend/mainindex/Makefile ]) +AC_CONFIG_FILES([ bibletime/frontend/searchdialog/Makefile ]) +AC_CONFIG_FILES([ bibletime/frontend/util/Makefile ]) +AC_CONFIG_FILES([ bibletime/pics/Makefile ]) +AC_CONFIG_FILES([ bibletime/pics/16x16/Makefile ]) +AC_CONFIG_FILES([ bibletime/pics/22x22/Makefile ]) +AC_CONFIG_FILES([ bibletime/pics/32x32/Makefile ]) +AC_CONFIG_FILES([ bibletime/pics/48x48/Makefile ]) +AC_CONFIG_FILES([ bibletime/pics/64x64/Makefile ]) +AC_CONFIG_FILES([ bibletime/util/Makefile ]) +AC_CONFIG_FILES([ bibletime/xml/Makefile ]) +AC_CONFIG_FILES([ docs/Makefile ]) +AC_CONFIG_FILES([ docs/handbook/Makefile ]) +AC_CONFIG_FILES([ docs/handbook/html/Makefile ]) +AC_CONFIG_FILES([ docs/handbook/unicode/Makefile ]) +AC_CONFIG_FILES([ docs/howto/Makefile ]) +AC_CONFIG_FILES([ docs/howto/html/Makefile ]) +AC_CONFIG_FILES([ docs/howto/unicode/Makefile ]) +AC_CONFIG_FILES([ pot/Makefile ]) +AC_OUTPUT +# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure +if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then + # And if so, warn when they don't match + if test "$kde_libs_prefix" != "$given_prefix"; then + # And if kde doesn't know about the prefix yet + echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null + if test $? -ne 0; then + echo "" + echo "Warning: you chose to install this package in $given_prefix," + echo "but KDE was found in $kde_libs_prefix." + echo "For this to work, you will need to tell KDE about the new prefix, by ensuring" + echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix" + echo "Then restart KDE." + echo "" + fi + fi +fi + +if test "$all_tests" = "bad"; then + if test ! "$cache_file" = "/dev/null"; then + echo "" + echo "Please remove the file $cache_file after changing your setup" + echo "so that configure will find the changes next time." + echo "" + fi +else + echo "" + echo "Good - your configure finished. Start make now" + echo "" +fi diff --git a/configure.in.in b/configure.in.in new file mode 100644 index 0000000..f409237 --- /dev/null +++ b/configure.in.in @@ -0,0 +1,68 @@ +AC_INIT(acinclude.m4) dnl a source file from your sub dir + +dnl This is so we can use kde-common +AC_CONFIG_AUX_DIR(admin) + +dnl This ksh/zsh feature conflicts with `cd blah ; pwd` +unset CDPATH + +dnl Checking host/target/build systems, for make, install etc. +AC_CANONICAL_SYSTEM +dnl Perform program name transformation +AC_ARG_PROGRAM + +dnl Automake doc recommends to do this only here. (Janos) +AM_INIT_AUTOMAKE(bibletime, 1.6.5.1) dnl searches for some needed programs + +KDE_SET_PREFIX +KDE_USE_QT(3.0) + +dnl generate the config header +AM_CONFIG_HEADER([config.h]) dnl at the distribution this done + +dnl Checks for programs. +AC_CHECK_COMPILERS +CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS" +AC_ENABLE_SHARED(no) +AC_ENABLE_STATIC(yes) +KDE_PROG_LIBTOOL + +AM_MAINTAINER_MODE + +dnl for NLS support. Call them in this order! +dnl WITH_NLS is for the po files +AM_KDE_WITH_NLS + +AC_PATH_KDE + +dnl in this space add everything you want to check for; +dnl examples are specific headers, libraries, etc. +dnl everything to compile and run a KDE program is already checked + +CPPFLAGS="$CPPFLAGS -DQT_NO_ASCII_CAST -DQT_NO_COMPAT -DQT_CLEAN_NAMESPACE -Wall -I\$(top_srcdir)/ -I\$(top_srcdir)/bibletime -I\$(top_builddir)/bibletime" +AC_CHECK_STATIC_LINKING(ac_use_static) +AC_CHECK_SWORD(1.5.9, [$ac_use_static]) +AC_CHECK_CLUCENE([$ac_use_static]) + +AC_ARG_ENABLE(howto, + AC_HELP_STRING([--enable-howto], + [install Bible Study Howto (default=yes)]), + , + enable_howto=yes +) +HOWTODIR="" +if test "x$enable_howto" = xyes; then + HOWTODIR="howto" +fi +AC_SUBST(HOWTODIR) + +dnl Chek for the used distribution +AC_CHECK_DISTRIBUTION + +dnl add here all your Makefiles. They are created by configure + +AC_CONFIG_FILES([ README ]) +AC_CONFIG_FILES([ INSTALL ]) +AC_CONFIG_FILES([ bibletime.lsm ]) +AC_CONFIG_FILES([ bibletime.spec ]) +AC_CONFIG_FILES([ bibletime.desktop ]) diff --git a/docs/Makefile.am b/docs/Makefile.am new file mode 100644 index 0000000..456909a --- /dev/null +++ b/docs/Makefile.am @@ -0,0 +1,10 @@ +# this Makefile.am was automatically generated by bibletime/maintenance/gen_am.sh +# please do not edit this file but rather run the script to update + + +SUBDIRS = handbook $(HOWTODIR) + +EXTRA_DIST = tips + +rcdir = $(kde_datadir)/bibletime +rc_DATA = tips diff --git a/docs/Makefile.in b/docs/Makefile.in new file mode 100644 index 0000000..362e55d --- /dev/null +++ b/docs/Makefile.in @@ -0,0 +1,763 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ + +# this Makefile.am was automatically generated by bibletime/maintenance/gen_am.sh +# please do not edit this file but rather run the script to update + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = docs +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(rcdir)" +rcDATA_INSTALL = $(INSTALL_DATA) +DATA = $(rc_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +SUBDIRS = handbook $(HOWTODIR) +EXTRA_DIST = tips +rcdir = $(kde_datadir)/bibletime +rc_DATA = tips +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/Makefile + cd $(top_srcdir) && perl admin/am_edit docs/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-rcDATA: $(rc_DATA) + @$(NORMAL_INSTALL) + test -z "$(rcdir)" || $(MKDIR_P) "$(DESTDIR)$(rcdir)" + @list='$(rc_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(rcDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rcdir)/$$f'"; \ + $(rcDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rcdir)/$$f"; \ + done + +uninstall-rcDATA: + @$(NORMAL_UNINSTALL) + @list='$(rc_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(rcdir)/$$f'"; \ + rm -f "$(DESTDIR)$(rcdir)/$$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): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(rcdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: install-rcDATA + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-rcDATA + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-rcDATA install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am uninstall-rcDATA + +# 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: + +#>+ 2 +KDE_DIST=bibletime.1 ksgmltools-bug-read-me.txt Makefile.in bibletime.de.1 Makefile.am + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/Makefile + cd $(top_srcdir) && perl admin/am_edit docs/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/docs/bibletime.1 b/docs/bibletime.1 new file mode 100644 index 0000000..b711923 --- /dev/null +++ b/docs/bibletime.1 @@ -0,0 +1,109 @@ +.TH "BibleTime" "1" "July 17, 2004" "BibleTime 1.4.1" "KDE Application" +.SH "NAME" +bibletime \- Bible study tool for KDE +.SH "SYNOPSIS" +.B bibletime +[ +\fIQt\-options\fR +] +[ +\fIKDE\-options\fR +] +[ +\fIoptions\fR +] +.SH "DESCRIPTION" +This manual page documents briefly the +.B bibletime +KDE Application. +This manual page was written for the Debian GNU/Linux distribution +because the original program does not have a manual page. +.P +.B BibleTime +is a free and easy to use bible study tool for UNIX systems. +It requires a working KDE environment and the SWORD library. +BibleTime provides easy handling of digitized texts (Bibles, commentaries +and lexicons) and powerful features to work with these texts (search in +texts, write own notes, save, print etc.). +.SS "Generic options:" +.TP +\fB\-\-help\fR +Show help about options +.TP +\fB\-\-help\-qt\fR +Show Qt specific options +.TP +\fB\-\-help\-kde\fR +Show KDE specific options +.TP +\fB\-\-help\-all\fR +Show all options +.TP +\fB\-\-author\fR +Show author information +.TP +\fB\-v\fR, \fB\-\-version\fR +Show version information +.TP +\fB\-\-license\fR +Show license information +.TP +\fB\-\-\fR +End of options. +.SH "OPTIONS" +.TP +\fB\-\-debug\fR +Enable debug messages. +.TP +\fB\-\-ignore\-session\fR +Ignore the startup session that was saved when BibleTime was closed +the last time. +.TP +\fB\-\-open\-default\-bible\fR \fIkey\fR +Open the default bible with the given \fIkey\fR. +Use +.I random +to open at a random position. +.SH "SEE ALSO" +The full documentations for +.B bibletime +and +.B bible study +are maintained as docbook manuals. If the +.B khelpcenter +program is properly installed at your site, the command +.IP +.B khelpcenter help:/bibletime +.PP +should give you access to the complete manual. +.SH "BUGS" +Please use +.br +http://bugs.kde.org or info@bibletime.info +.br +to report bugs, do not mail the authors directly. +.br +.SH "AUTHOR" +BibleTime was written by +.br +.nh +Joachim Ansorg +.br +Martin Gruner +.br +Nikolay Igotti +.br +Gary Sims +.br +Timothy R. Butler +.br +James Ots +.br +Fred Saalbach +.hy +.P +This manual page was prepared by +.nh +Erik Schanze +.hy +for the Debian GNU/Linux system (but may be used by others). diff --git a/docs/bibletime.de.1 b/docs/bibletime.de.1 new file mode 100644 index 0000000..c681971 --- /dev/null +++ b/docs/bibletime.de.1 @@ -0,0 +1,109 @@ +.TH "BibleTime" "1" "17. Juli 2004" "BibleTime 1.4.1" "KDE Application" +.SH "NAME" +bibletime \- Software für das Bibelstudium für KDE +.SH "ÜBERSICHT" +.B bibletime +[ +\fIQt\-Optionen\fR +] +[ +\fIKDE\-Optionen\fR +] +[ +\fIOptionen\fR +] +.SH "BESCHREIBUNG" +Diese Manpage beschreibt die +KDE\-Applikation +.B bibletime +und wurde für Debian GNU/Linux geschrieben, weil +das Programm selbst keine Manpage mitbrachte. +.P +.B BibleTime +ist ein freies und einfach zu bedienendes Hilfsmittel zum Bibelstudium +für UNIX\-Systeme. +Es erfordert eine laufende KDE\-Umgebung und die Bibliothek SWORD. +BibleTime ermöglicht den einfachen Umgang mit digitalen Texten (Bibeln, +Kommentare und Lexikas) und bietet leistungsfähige Funktionen, um mit diesen +Texten zu arbeiten (suchen in Texten, eigene Notizen schreiben, speichern, +drucken usw.). +.SS "Einfache Optionen:" +.TP +\fB\-\-help\fR +Optionen von "Hilfe zu" anzeigen +.TP +\fB\-\-help\-qt\fR +Spezielle Optionen zu Qt anzeigen +.TP +\fB\-\-help\-kde\fR +Spezielle Optionen zu KDE anzeigen +.TP +\fB\-\-help\-all\fR +Alle Optionen anzeigen +.TP +\fB\-\-author\fR +Autoren\-Information anzeigen +.TP +\fB\-v\fR, \fB\-\-version\fR +Versionsinformation anzeigen +.TP +\fB\-\-license\fR +Lizenz\-Info anzeigen +.TP +\fB\-\-\fR +Ende der Optionen +.SH "OPTIONEN" +.TP +\fB\-\-debug\fR +Fehlermeldungen aktivieren +.TP +\fB\-\-ignore\-session\fR +Die Startsitzung ignorieren, die beim letzten Beenden von BibleTime +gespeichert wurde. +.TP +\fB\-\-open\-default\-bible\fR \fIkey\fR +Die Standardbibel an der angegebenen Stelle \fIkey\fR öffnen. +Verwenden Sie \fIrandom\fR, um eine zufällige Stelle aufzuschlagen. +.SH "SIEHE AUCH" +Die vollständige Dokumentation für +.B bibletime +und das +.B Bibelstudium +werden als DocBook\-Handbuch bereitgestellt. Wenn das Progamm +.B khelpcenter +richtig eingerichtet ist, sollte das Kommando +.IP +.B khelpcenter help:/bibletime +.PP +das komplette Handbuch zugänglich machen. +.SH "FEHLER" +Bitte melden Sie Fehler an +.br +http://bugs.kde.org oder info@bibletime.info , +.br +nicht direkt an die Autoren. +.br +.SH "AUTOREN" +BibleTime wurde geschrieben von: +.br +.nh +Joachim Ansorg +.br +Martin Gruner +.br +Nikolay Igotti +.br +Gary Sims +.br +Timothy R. Butler +.br +James Ots +.br +Fred Saalbach +.hy +.P +Diese Manpage wurde erstellt von +.nh +Erik Schanze +.hy +für Debian GNU/Linux (kann aber auch von anderen genutzt werden). diff --git a/docs/handbook/Makefile.am b/docs/handbook/Makefile.am new file mode 100644 index 0000000..c4da710 --- /dev/null +++ b/docs/handbook/Makefile.am @@ -0,0 +1,17 @@ +# this Makefile.am was automatically generated by bibletime/maintenance/gen_am.sh +# please do not edit this file but rather run the script to update + + +SUBDIRS = unicode html + + +html-files: + if test -e unicode/index.docbook; then \ + olddir=$$PWD; \ + cd html;\ + echo "Validating the XML files..."; \ + if meinproc ../unicode/index.docbook; then\ + echo "HTML files created successfully."; \ + fi; cd $$olddir; \ + fi; + diff --git a/docs/handbook/Makefile.in b/docs/handbook/Makefile.in new file mode 100644 index 0000000..8e39f3a --- /dev/null +++ b/docs/handbook/Makefile.in @@ -0,0 +1,740 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ + +# this Makefile.am was automatically generated by bibletime/maintenance/gen_am.sh +# please do not edit this file but rather run the script to update +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = docs/handbook +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +SUBDIRS = unicode html +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/handbook/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/handbook/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/handbook/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/handbook/Makefile + cd $(top_srcdir) && perl admin/am_edit docs/handbook/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + 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_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +html-files: + if test -e unicode/index.docbook; then \ + olddir=$$PWD; \ + cd html;\ + echo "Validating the XML files..."; \ + if meinproc ../unicode/index.docbook; then\ + echo "HTML files created successfully."; \ + fi; cd $$olddir; \ + fi; +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=Makefile.in Makefile.am + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/handbook/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/handbook/Makefile + cd $(top_srcdir) && perl admin/am_edit docs/handbook/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/docs/handbook/html/Makefile.am b/docs/handbook/html/Makefile.am new file mode 100644 index 0000000..bb1a3ce --- /dev/null +++ b/docs/handbook/html/Makefile.am @@ -0,0 +1,127 @@ +# this Makefile.am was automatically generated by bibletime/maintenance/gen_am.sh +# please do not edit this file but rather run the script to update + + +KDE_OPTIONS = noautodist +EXTRA_DIST = i_bible_add.png i_bible.png i_bibletime.png i_book_add.png i_book.png i_cascade_auto.png i_cascade.png i_commentary_add.png i_commentary.png i_configureaccels.png i_configuredisplay.png i_configurefonts.png i_configure.png i_configurestart.png i_configuresword.png i_configuretoolbars.png i_contents.png i_delete.png i_editdelete.png i_exit.png i_fileclose.png i_fileprint.png i_find.png i_fullscreen.png i_go.png i_ktip.png i_lexicon_add.png i_lexicon.png i_pencil.png i_sidetree.png i_sync.png i_tile_auto.png i_tile.png ss_configfonts.png ss_configtoolbar.png ss_mainterms.png ss_searchanal.png ss_searchopts.png + + +install-data-local: + mkdir -p $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/; + chmod -R a+r+X $(DESTDIR)$(kde_htmldir)/en/bibletime; + $(INSTALL_DATA) $(srcdir)/i_bible_add.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_bible_add.png; + $(INSTALL_DATA) $(srcdir)/i_bible.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_bible.png; + $(INSTALL_DATA) $(srcdir)/i_bibletime.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_bibletime.png; + $(INSTALL_DATA) $(srcdir)/i_book_add.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_book_add.png; + $(INSTALL_DATA) $(srcdir)/i_book.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_book.png; + $(INSTALL_DATA) $(srcdir)/i_cascade_auto.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_cascade_auto.png; + $(INSTALL_DATA) $(srcdir)/i_cascade.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_cascade.png; + $(INSTALL_DATA) $(srcdir)/i_commentary_add.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_commentary_add.png; + $(INSTALL_DATA) $(srcdir)/i_commentary.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_commentary.png; + $(INSTALL_DATA) $(srcdir)/i_configureaccels.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configureaccels.png; + $(INSTALL_DATA) $(srcdir)/i_configuredisplay.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configuredisplay.png; + $(INSTALL_DATA) $(srcdir)/i_configurefonts.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configurefonts.png; + $(INSTALL_DATA) $(srcdir)/i_configure.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configure.png; + $(INSTALL_DATA) $(srcdir)/i_configurestart.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configurestart.png; + $(INSTALL_DATA) $(srcdir)/i_configuresword.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configuresword.png; + $(INSTALL_DATA) $(srcdir)/i_configuretoolbars.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configuretoolbars.png; + $(INSTALL_DATA) $(srcdir)/i_contents.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_contents.png; + $(INSTALL_DATA) $(srcdir)/i_delete.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_delete.png; + $(INSTALL_DATA) $(srcdir)/i_editdelete.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_editdelete.png; + $(INSTALL_DATA) $(srcdir)/i_exit.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_exit.png; + $(INSTALL_DATA) $(srcdir)/i_fileclose.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_fileclose.png; + $(INSTALL_DATA) $(srcdir)/i_fileprint.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_fileprint.png; + $(INSTALL_DATA) $(srcdir)/i_find.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_find.png; + $(INSTALL_DATA) $(srcdir)/i_fullscreen.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_fullscreen.png; + $(INSTALL_DATA) $(srcdir)/i_go.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_go.png; + $(INSTALL_DATA) $(srcdir)/i_ktip.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_ktip.png; + $(INSTALL_DATA) $(srcdir)/i_lexicon_add.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_lexicon_add.png; + $(INSTALL_DATA) $(srcdir)/i_lexicon.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_lexicon.png; + $(INSTALL_DATA) $(srcdir)/i_pencil.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_pencil.png; + $(INSTALL_DATA) $(srcdir)/i_sidetree.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_sidetree.png; + $(INSTALL_DATA) $(srcdir)/i_sync.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_sync.png; + $(INSTALL_DATA) $(srcdir)/i_tile_auto.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_tile_auto.png; + $(INSTALL_DATA) $(srcdir)/i_tile.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_tile.png; + $(INSTALL_DATA) $(srcdir)/ss_configfonts.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_configfonts.png; + $(INSTALL_DATA) $(srcdir)/ss_configtoolbar.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_configtoolbar.png; + $(INSTALL_DATA) $(srcdir)/ss_mainterms.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_mainterms.png; + $(INSTALL_DATA) $(srcdir)/ss_searchanal.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_searchanal.png; + $(INSTALL_DATA) $(srcdir)/ss_searchopts.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_searchopts.png; + +uninstall-local: + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_bible_add.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_bible.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_bibletime.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_book_add.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_book.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_cascade_auto.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_cascade.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_commentary_add.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_commentary.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configureaccels.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configuredisplay.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configurefonts.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configure.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configurestart.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configuresword.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configuretoolbars.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_contents.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_delete.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_editdelete.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_exit.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_fileclose.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_fileprint.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_find.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_fullscreen.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_go.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_ktip.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_lexicon_add.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_lexicon.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_pencil.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_sidetree.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_sync.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_tile_auto.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_tile.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_configfonts.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_configtoolbar.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_mainterms.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_searchanal.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_searchopts.png; diff --git a/docs/handbook/html/Makefile.in b/docs/handbook/html/Makefile.in new file mode 100644 index 0000000..3557a15 --- /dev/null +++ b/docs/handbook/html/Makefile.in @@ -0,0 +1,681 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ + +# this Makefile.am was automatically generated by bibletime/maintenance/gen_am.sh +# please do not edit this file but rather run the script to update +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = docs/handbook/html +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_OPTIONS = noautodist +EXTRA_DIST = i_bible_add.png i_bible.png i_bibletime.png i_book_add.png i_book.png i_cascade_auto.png i_cascade.png i_commentary_add.png i_commentary.png i_configureaccels.png i_configuredisplay.png i_configurefonts.png i_configure.png i_configurestart.png i_configuresword.png i_configuretoolbars.png i_contents.png i_delete.png i_editdelete.png i_exit.png i_fileclose.png i_fileprint.png i_find.png i_fullscreen.png i_go.png i_ktip.png i_lexicon_add.png i_lexicon.png i_pencil.png i_sidetree.png i_sync.png i_tile_auto.png i_tile.png ss_configfonts.png ss_configtoolbar.png ss_mainterms.png ss_searchanal.png ss_searchopts.png +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/handbook/html/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/handbook/html/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/handbook/html/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/handbook/html/Makefile + cd $(top_srcdir) && perl admin/am_edit docs/handbook/html/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-data-local install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-local + + +install-data-local: + mkdir -p $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/; + chmod -R a+r+X $(DESTDIR)$(kde_htmldir)/en/bibletime; + $(INSTALL_DATA) $(srcdir)/i_bible_add.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_bible_add.png; + $(INSTALL_DATA) $(srcdir)/i_bible.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_bible.png; + $(INSTALL_DATA) $(srcdir)/i_bibletime.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_bibletime.png; + $(INSTALL_DATA) $(srcdir)/i_book_add.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_book_add.png; + $(INSTALL_DATA) $(srcdir)/i_book.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_book.png; + $(INSTALL_DATA) $(srcdir)/i_cascade_auto.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_cascade_auto.png; + $(INSTALL_DATA) $(srcdir)/i_cascade.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_cascade.png; + $(INSTALL_DATA) $(srcdir)/i_commentary_add.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_commentary_add.png; + $(INSTALL_DATA) $(srcdir)/i_commentary.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_commentary.png; + $(INSTALL_DATA) $(srcdir)/i_configureaccels.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configureaccels.png; + $(INSTALL_DATA) $(srcdir)/i_configuredisplay.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configuredisplay.png; + $(INSTALL_DATA) $(srcdir)/i_configurefonts.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configurefonts.png; + $(INSTALL_DATA) $(srcdir)/i_configure.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configure.png; + $(INSTALL_DATA) $(srcdir)/i_configurestart.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configurestart.png; + $(INSTALL_DATA) $(srcdir)/i_configuresword.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configuresword.png; + $(INSTALL_DATA) $(srcdir)/i_configuretoolbars.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configuretoolbars.png; + $(INSTALL_DATA) $(srcdir)/i_contents.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_contents.png; + $(INSTALL_DATA) $(srcdir)/i_delete.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_delete.png; + $(INSTALL_DATA) $(srcdir)/i_editdelete.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_editdelete.png; + $(INSTALL_DATA) $(srcdir)/i_exit.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_exit.png; + $(INSTALL_DATA) $(srcdir)/i_fileclose.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_fileclose.png; + $(INSTALL_DATA) $(srcdir)/i_fileprint.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_fileprint.png; + $(INSTALL_DATA) $(srcdir)/i_find.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_find.png; + $(INSTALL_DATA) $(srcdir)/i_fullscreen.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_fullscreen.png; + $(INSTALL_DATA) $(srcdir)/i_go.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_go.png; + $(INSTALL_DATA) $(srcdir)/i_ktip.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_ktip.png; + $(INSTALL_DATA) $(srcdir)/i_lexicon_add.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_lexicon_add.png; + $(INSTALL_DATA) $(srcdir)/i_lexicon.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_lexicon.png; + $(INSTALL_DATA) $(srcdir)/i_pencil.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_pencil.png; + $(INSTALL_DATA) $(srcdir)/i_sidetree.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_sidetree.png; + $(INSTALL_DATA) $(srcdir)/i_sync.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_sync.png; + $(INSTALL_DATA) $(srcdir)/i_tile_auto.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_tile_auto.png; + $(INSTALL_DATA) $(srcdir)/i_tile.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_tile.png; + $(INSTALL_DATA) $(srcdir)/ss_configfonts.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_configfonts.png; + $(INSTALL_DATA) $(srcdir)/ss_configtoolbar.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_configtoolbar.png; + $(INSTALL_DATA) $(srcdir)/ss_mainterms.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_mainterms.png; + $(INSTALL_DATA) $(srcdir)/ss_searchanal.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_searchanal.png; + $(INSTALL_DATA) $(srcdir)/ss_searchopts.png $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_searchopts.png; + +uninstall-local: + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_bible_add.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_bible.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_bibletime.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_book_add.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_book.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_cascade_auto.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_cascade.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_commentary_add.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_commentary.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configureaccels.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configuredisplay.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configurefonts.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configure.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configurestart.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configuresword.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_configuretoolbars.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_contents.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_delete.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_editdelete.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_exit.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_fileclose.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_fileprint.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_find.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_fullscreen.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_go.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_ktip.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_lexicon_add.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_lexicon.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_pencil.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_sidetree.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_sync.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_tile_auto.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/i_tile.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_configfonts.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_configtoolbar.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_mainterms.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_searchanal.png; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/ss_searchopts.png; +# 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: + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/handbook/html/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/handbook/html/Makefile + cd $(top_srcdir) && perl admin/am_edit docs/handbook/html/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/docs/handbook/html/i_bible.png b/docs/handbook/html/i_bible.png new file mode 100644 index 0000000..b949de7 Binary files /dev/null and b/docs/handbook/html/i_bible.png differ diff --git a/docs/handbook/html/i_bible_add.png b/docs/handbook/html/i_bible_add.png new file mode 100644 index 0000000..48c63e8 Binary files /dev/null and b/docs/handbook/html/i_bible_add.png differ diff --git a/docs/handbook/html/i_bibletime.png b/docs/handbook/html/i_bibletime.png new file mode 100644 index 0000000..7dcbc90 Binary files /dev/null and b/docs/handbook/html/i_bibletime.png differ diff --git a/docs/handbook/html/i_book.png b/docs/handbook/html/i_book.png new file mode 100644 index 0000000..84887db Binary files /dev/null and b/docs/handbook/html/i_book.png differ diff --git a/docs/handbook/html/i_book_add.png b/docs/handbook/html/i_book_add.png new file mode 100644 index 0000000..8d35be9 Binary files /dev/null and b/docs/handbook/html/i_book_add.png differ diff --git a/docs/handbook/html/i_cascade.png b/docs/handbook/html/i_cascade.png new file mode 100644 index 0000000..070f5d1 Binary files /dev/null and b/docs/handbook/html/i_cascade.png differ diff --git a/docs/handbook/html/i_cascade_auto.png b/docs/handbook/html/i_cascade_auto.png new file mode 100644 index 0000000..4171ffc Binary files /dev/null and b/docs/handbook/html/i_cascade_auto.png differ diff --git a/docs/handbook/html/i_commentary.png b/docs/handbook/html/i_commentary.png new file mode 100644 index 0000000..fa29810 Binary files /dev/null and b/docs/handbook/html/i_commentary.png differ diff --git a/docs/handbook/html/i_commentary_add.png b/docs/handbook/html/i_commentary_add.png new file mode 100644 index 0000000..18b31a8 Binary files /dev/null and b/docs/handbook/html/i_commentary_add.png differ diff --git a/docs/handbook/html/i_configure.png b/docs/handbook/html/i_configure.png new file mode 100644 index 0000000..1141564 Binary files /dev/null and b/docs/handbook/html/i_configure.png differ diff --git a/docs/handbook/html/i_configureaccels.png b/docs/handbook/html/i_configureaccels.png new file mode 100644 index 0000000..6a3438d Binary files /dev/null and b/docs/handbook/html/i_configureaccels.png differ diff --git a/docs/handbook/html/i_configuredisplay.png b/docs/handbook/html/i_configuredisplay.png new file mode 100644 index 0000000..2478bf9 Binary files /dev/null and b/docs/handbook/html/i_configuredisplay.png differ diff --git a/docs/handbook/html/i_configurefonts.png b/docs/handbook/html/i_configurefonts.png new file mode 100644 index 0000000..7688e8a Binary files /dev/null and b/docs/handbook/html/i_configurefonts.png differ diff --git a/docs/handbook/html/i_configurestart.png b/docs/handbook/html/i_configurestart.png new file mode 100644 index 0000000..c64200d Binary files /dev/null and b/docs/handbook/html/i_configurestart.png differ diff --git a/docs/handbook/html/i_configuresword.png b/docs/handbook/html/i_configuresword.png new file mode 100644 index 0000000..b8f3d30 Binary files /dev/null and b/docs/handbook/html/i_configuresword.png differ diff --git a/docs/handbook/html/i_configuretoolbars.png b/docs/handbook/html/i_configuretoolbars.png new file mode 100644 index 0000000..653479b Binary files /dev/null and b/docs/handbook/html/i_configuretoolbars.png differ diff --git a/docs/handbook/html/i_contents.png b/docs/handbook/html/i_contents.png new file mode 100644 index 0000000..2e86079 Binary files /dev/null and b/docs/handbook/html/i_contents.png differ diff --git a/docs/handbook/html/i_delete.png b/docs/handbook/html/i_delete.png new file mode 100644 index 0000000..fb04ace Binary files /dev/null and b/docs/handbook/html/i_delete.png differ diff --git a/docs/handbook/html/i_editdelete.png b/docs/handbook/html/i_editdelete.png new file mode 100644 index 0000000..945d221 Binary files /dev/null and b/docs/handbook/html/i_editdelete.png differ diff --git a/docs/handbook/html/i_exit.png b/docs/handbook/html/i_exit.png new file mode 100644 index 0000000..4877f19 Binary files /dev/null and b/docs/handbook/html/i_exit.png differ diff --git a/docs/handbook/html/i_fileclose.png b/docs/handbook/html/i_fileclose.png new file mode 100644 index 0000000..8acc84d Binary files /dev/null and b/docs/handbook/html/i_fileclose.png differ diff --git a/docs/handbook/html/i_fileprint.png b/docs/handbook/html/i_fileprint.png new file mode 100644 index 0000000..61d1645 Binary files /dev/null and b/docs/handbook/html/i_fileprint.png differ diff --git a/docs/handbook/html/i_find.png b/docs/handbook/html/i_find.png new file mode 100644 index 0000000..91f6eb6 Binary files /dev/null and b/docs/handbook/html/i_find.png differ diff --git a/docs/handbook/html/i_fullscreen.png b/docs/handbook/html/i_fullscreen.png new file mode 100644 index 0000000..5c9864f Binary files /dev/null and b/docs/handbook/html/i_fullscreen.png differ diff --git a/docs/handbook/html/i_go.png b/docs/handbook/html/i_go.png new file mode 100644 index 0000000..8b5dac8 Binary files /dev/null and b/docs/handbook/html/i_go.png differ diff --git a/docs/handbook/html/i_ktip.png b/docs/handbook/html/i_ktip.png new file mode 100644 index 0000000..ee1b839 Binary files /dev/null and b/docs/handbook/html/i_ktip.png differ diff --git a/docs/handbook/html/i_lexicon.png b/docs/handbook/html/i_lexicon.png new file mode 100644 index 0000000..0357308 Binary files /dev/null and b/docs/handbook/html/i_lexicon.png differ diff --git a/docs/handbook/html/i_lexicon_add.png b/docs/handbook/html/i_lexicon_add.png new file mode 100644 index 0000000..9c8ad16 Binary files /dev/null and b/docs/handbook/html/i_lexicon_add.png differ diff --git a/docs/handbook/html/i_pencil.png b/docs/handbook/html/i_pencil.png new file mode 100644 index 0000000..8e2f895 Binary files /dev/null and b/docs/handbook/html/i_pencil.png differ diff --git a/docs/handbook/html/i_sidetree.png b/docs/handbook/html/i_sidetree.png new file mode 100644 index 0000000..2970a1c Binary files /dev/null and b/docs/handbook/html/i_sidetree.png differ diff --git a/docs/handbook/html/i_sync.png b/docs/handbook/html/i_sync.png new file mode 100644 index 0000000..25fdb0f Binary files /dev/null and b/docs/handbook/html/i_sync.png differ diff --git a/docs/handbook/html/i_tile.png b/docs/handbook/html/i_tile.png new file mode 100644 index 0000000..3cab67e Binary files /dev/null and b/docs/handbook/html/i_tile.png differ diff --git a/docs/handbook/html/i_tile_auto.png b/docs/handbook/html/i_tile_auto.png new file mode 100644 index 0000000..e92e26d Binary files /dev/null and b/docs/handbook/html/i_tile_auto.png differ diff --git a/docs/handbook/html/ss_configfonts.png b/docs/handbook/html/ss_configfonts.png new file mode 100644 index 0000000..5ab4eed Binary files /dev/null and b/docs/handbook/html/ss_configfonts.png differ diff --git a/docs/handbook/html/ss_configtoolbar.png b/docs/handbook/html/ss_configtoolbar.png new file mode 100644 index 0000000..7f3f9ed Binary files /dev/null and b/docs/handbook/html/ss_configtoolbar.png differ diff --git a/docs/handbook/html/ss_mainterms.png b/docs/handbook/html/ss_mainterms.png new file mode 100644 index 0000000..86b43f8 Binary files /dev/null and b/docs/handbook/html/ss_mainterms.png differ diff --git a/docs/handbook/html/ss_searchanal.png b/docs/handbook/html/ss_searchanal.png new file mode 100644 index 0000000..e091c63 Binary files /dev/null and b/docs/handbook/html/ss_searchanal.png differ diff --git a/docs/handbook/html/ss_searchopts.png b/docs/handbook/html/ss_searchopts.png new file mode 100644 index 0000000..178e1b7 Binary files /dev/null and b/docs/handbook/html/ss_searchopts.png differ diff --git a/docs/handbook/unicode/Makefile.am b/docs/handbook/unicode/Makefile.am new file mode 100644 index 0000000..ff6497b --- /dev/null +++ b/docs/handbook/unicode/Makefile.am @@ -0,0 +1,31 @@ +# this Makefile.am was automatically generated by bibletime/maintenance/gen_am.sh +# please do not edit this file but rather run the script to update + + +KDE_OPTIONS = noautodist +EXTRA_DIST = hdbk-config.docbook hdbk-intro.docbook hdbk-operation.docbook hdbk-reference.docbook hdbk-start.docbook index.docbook + + +install-data-local: + mkdir -p $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/; + chmod -R a+r+X $(DESTDIR)$(kde_htmldir)/en/bibletime; + $(INSTALL_DATA) $(srcdir)/hdbk-config.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-config.docbook; + $(INSTALL_DATA) $(srcdir)/hdbk-intro.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-intro.docbook; + $(INSTALL_DATA) $(srcdir)/hdbk-operation.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-operation.docbook; + $(INSTALL_DATA) $(srcdir)/hdbk-reference.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-reference.docbook; + $(INSTALL_DATA) $(srcdir)/hdbk-start.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-start.docbook; + $(INSTALL_DATA) $(srcdir)/index.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/index.docbook; + +uninstall-local: + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-config.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-intro.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-operation.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-reference.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-start.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/index.docbook; diff --git a/docs/handbook/unicode/Makefile.in b/docs/handbook/unicode/Makefile.in new file mode 100644 index 0000000..42cd6f2 --- /dev/null +++ b/docs/handbook/unicode/Makefile.in @@ -0,0 +1,585 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ + +# this Makefile.am was automatically generated by bibletime/maintenance/gen_am.sh +# please do not edit this file but rather run the script to update +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = docs/handbook/unicode +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_OPTIONS = noautodist +EXTRA_DIST = hdbk-config.docbook hdbk-intro.docbook hdbk-operation.docbook hdbk-reference.docbook hdbk-start.docbook index.docbook +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/handbook/unicode/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/handbook/unicode/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/handbook/unicode/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/handbook/unicode/Makefile + cd $(top_srcdir) && perl admin/am_edit docs/handbook/unicode/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-data-local install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-local + + +install-data-local: + mkdir -p $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/; + chmod -R a+r+X $(DESTDIR)$(kde_htmldir)/en/bibletime; + $(INSTALL_DATA) $(srcdir)/hdbk-config.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-config.docbook; + $(INSTALL_DATA) $(srcdir)/hdbk-intro.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-intro.docbook; + $(INSTALL_DATA) $(srcdir)/hdbk-operation.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-operation.docbook; + $(INSTALL_DATA) $(srcdir)/hdbk-reference.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-reference.docbook; + $(INSTALL_DATA) $(srcdir)/hdbk-start.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-start.docbook; + $(INSTALL_DATA) $(srcdir)/index.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/index.docbook; + +uninstall-local: + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-config.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-intro.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-operation.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-reference.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/hdbk-start.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/handbook/index.docbook; +# 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: + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/handbook/unicode/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/handbook/unicode/Makefile + cd $(top_srcdir) && perl admin/am_edit docs/handbook/unicode/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/docs/handbook/unicode/hdbk-config.docbook b/docs/handbook/unicode/hdbk-config.docbook new file mode 100644 index 0000000..94a037e --- /dev/null +++ b/docs/handbook/unicode/hdbk-config.docbook @@ -0,0 +1,182 @@ +Configuring &bibletime; + +In this section you find a description of the different possibilities +to configure &bibletime;: The Configure BibleTime Dialog + and the Configure Toolbars +dialog. Both can be accessed under Settings in the main menu. + +Configure BibleTime Dialog + + The &bibletime; user interface can be customized in many ways + depending on your needs. You can access the configuration dialog by + selecting Settings + Configure &bibletime;. + + <guimenu>Display</guimenu> + + The startup behavior can be customized. Select from the following options: + + Show tip of the day + Show startup logo + + + Display templates define the rendering of text (colors, size etc.). Various built-in templates are available. + If you select one, you will see a preview on the right pane. + + + + <guimenu>Languages</guimenu> + + Here you can specify which language should be used for the biblical booknames. Set + this to your native language, if it is available, and you'll feel at home. + + By default, &bibletime; uses the &kde; general display font which can + be specified in the &kcontrolcenter;. You can override this font if neccessary. + Some languages require special fonts to be displayed correctly, and this dialog + allows you to specify a custom font for each language. + + + + + Options Dialog - fonts + The Options dialog - Fonts. + + + &bibletime; can now use all fonts supported by KDE/QT. + As long as the works you are interested in display correctly nothing + needs to be done here. If a work only displays as a series + of question marks (??????) or empty boxes, then you know that the standard + KDE display font does not contain the characters used in this work. + + To correct this, choose this work's language from the drop down menu. + Select the use custom font checkbox. Now select a font. For example, a font + that supports many languages is Code2000. If no installed font can display + the work you are interested in, try installing the &kde; localization + package for that language. + + Installing fonts + Detailed font installation instructions are outside the scope of this handbook. + &kde;'s KControl Center contains + an excellent and easy to use font installation module. + Please read + its documentation. For further information you might want to refer to the + + Unicode HOWTO. + + If you use a small font like Clearlyu (about 22kb), &bibletime; + will run faster than with a large font like + Bitstream Cyberbit (about 12Mb). + + + Obtaining Fonts + Fonts can be obtained from a number of sources: + + Your Linux distribution. + Your distribution's localization packages. + An existing Microsoft Windows installation on the same computer. + A font collection, such as are available from Adobe or Bitstream. + Online font collections. + + + Unicode fonts support more characters than other fonts, and some of these fonts are + available at no charge. None of available fonts includes all characters + defined in the Unicode standard, so you may want to use different fonts for different + languages. + + + Unicode Fonts + + + + Code2000 + Perhaps the best free Unicode font, covering a wide range of characters. + + + SIL unicode fonts + Excellent unicode fonts from the Summer Institute of Linguistics. + + FreeFont + A new free unicode font initiative. + + Crosswire's font directory + Several fonts available from the Crosswire Bible Society Ftp site. + + Bitstream CyberBit + Covers almost the entire range of Unicode, but might slow &bibletime; down because of its size. + + Clearlyu + Included in some distributions. Contains European, Greek, Hebrew, Thai. + + Caslon, Monospace, Cupola, Caliban + Partial coverage, see information on linked site. + + +
+ + There are good Unicode font lists on the net, as the one by Christoph Singer + (Multilingual Unicode TrueType Fonts + in the Internet), or the one by Alan Wood + ( + Unicode character ranges and the Unicode fonts that support them). + + +
+
+ + + <guimenu>Desk</guimenu> + + Many features provided by the Sword backend can now be customized in + &bibletime;. These features are documented right in the dialog. You also have + the possibility to specify standard works that should be used when no specific work + is specified in a reference. An example: The standard Bible is used to display the content of + crossreferences in the Bible. When you hover over then, the Mag will show the content of the verses + referred to, according to the standard Bible you specified. + + + + <guimenu>HotKeys</guimenu> + + HotKeys are special key commands that can be used in the place of + the menu items and icons. A number of &bibletime;'s commands have + predefined HotKeys (see this section + for a complete listing). Most of &bibletime;'s commands can be assigned + HotKeys here. This is very helpful to quickly access the functions that you need the most. + + + +
+ + + Configure Toolbars dialog + You can adapt the toolbar to your needs. Please use the following entry in the main menu: + + + + + + + Settings + + Configure toolbars + Configure toolbars + + + + You will see this dialog, which allows adding and removing buttons from + the main toolbar of &bibletime;. The order of the buttons can also be changed. + + + + + + Toolbar configuration dialog + The Toolbar configuration dialog. + + Use the 4 buttons in the middle of the window to move buttons to the toolbar, + away from the toolbar or to sort them on the toolbar according to your preference. + + Please see this section for further information. + + +
diff --git a/docs/handbook/unicode/hdbk-intro.docbook b/docs/handbook/unicode/hdbk-intro.docbook new file mode 100644 index 0000000..811363d --- /dev/null +++ b/docs/handbook/unicode/hdbk-intro.docbook @@ -0,0 +1,93 @@ +Introduction + +About BibleTime + + &bibletime; is a powerful Bible study tool written for the &kde; environment on the + Linux operating system. It is based on the Sword library, which provides the back-end + functionality for &bibletime;, such as viewing Bible text, searching + etc. Sword is the flagship product of the Crosswire Bible Society. + + &bibletime; is designed to be used with works encoded in one of the formats + supported by the Sword project. + Complete information on the supported document formats can be found in the + developers section of the Sword Project, Crosswire Bible Society. + +Available works + + + Over 200 documents in 50 languages are available from the Crosswire Bible Society. These include: + + + + Bibles + + + The full Bible text, with optional things like Strong's Numbers, headings and/or footnotes in the text. Bibles are available in many languages, and include not only modern versions, but also + ancient texts like the Codex Leningradensis ("WLC", Hebrew), and the Septuagint ("LXX", Greek). This is the most advanced section in the library of the Sword project. + + + + + Books + + Books available include "Imitation of Christ", "Enuma Elish", and "Josephus: The Complete Works" + + + + + + Commentaries + + + Commentaries available include classics like John Wesley's "Notes on the Bible", Matthew Henry`s commentary and Luther's "Commentary on Galatians." With the Personal commentary you can record your own personal notes to sections of the Bible. + + + + + + Daily devotionals + + Many people appreciate these daily portions from God's word. Available works include Daily Light on the Daily Path, and the Losungen. + + + + + + Lexicons/Dictionaries + + + Lexicons available include: Robinson's Morphological Analysis Codes, + Brown-Driver-Briggs Hebrew Lexicon and the International Standard Bible Encyclopedia. Dictionaries available include Strong's Hebrew Bible Dictionary, Strong's Greek Bible Dictionary, Webster's Revised Unabridged Dictionary of the English Language 1913, Nave's Topical Bible. + + + + + + + + +Motivation + + Our desire is to serve God, and to do our part to help others grow in their + relationship with Him. + We have striven to make this a powerful, quality program, and still make it + simple and intuitive to operate. It is our desire that God be praised, as He is + the source of all good things. + +
James 1:17, NASB + Every good thing given and every perfect gift is from above, + coming down from the Father of lights, with whom there is no + variation or shifting shadow. +
+ + God bless you as you use this program. + +
+ +
+ +
diff --git a/docs/handbook/unicode/hdbk-operation.docbook b/docs/handbook/unicode/hdbk-operation.docbook new file mode 100644 index 0000000..46ad308 --- /dev/null +++ b/docs/handbook/unicode/hdbk-operation.docbook @@ -0,0 +1,260 @@ +Program operation + + +Program overview + +This is how a typical &bibletime; session looks like: + + + + + + +The &bibletime; application window + + +You can easily see the different parts of the application. The Bookshelf on the left side is used to open works and to manage your bookmarks. The little "Mag" window below the Bookshelf is used to display extra information that is embedded in documents. When you move your mouse over a footnote marker, for example, then the Mag will display the actual content of the footnote. The toolbar gives you quick access to important functions, and the Desk on the right side is where you do your real work. +Let us now proceed by looking at the different parts of the application individually. + + + +Parts of the &bibletime; application window + + +The Bookshelf +The Bookshelf lists all installed works, sorted by category and language. It also has a category called "Bookmarks". This is where you can store and access your own bookmarks. + + + +Reading works +To open a work from the bookshelf for reading, simply click with the left mouse button on the desired +category (Bibles, Commentaries, Lexicons, Books, Devotionals or Glossaries) to display its contents. Then just click on one of the works to open it for reading. A read window will appear in the Desk area. + +Drag & Drop Works Here + +If you are reading a certain work, and want to open another work at the passage you are reading, you can use a shortcut. Simply click with the left mouse button on the verse/passage reference (pointer changes to hand) and drag it to the +Bookshelf. Drop it on the work you want to open, and it will be opened for reading at the specified location. You can also drag a verse reference into an existing read window, then it will jump to the specified location. + + + +Additional information about works + +If you click with the right mouse button on +the symbol of a work, you will see a menu with additional entries that are relevant for this work. "About this work" opens a window with lots of interesting information about the selected work. "Unlock this work" opens a small dialog for encrypted documents, where you can enter the unlock key to access the work. +For additional information on locked works, please see this page on the Crosswire Bible Society web site. + + + + +Searching in works +You can search in a work by clicking with the right +mouse button on its symbol and selecting "Search in work(s)". By pressing &Shift; and clicking on other works you can select more than one. Then follow the same procedure to open the search dialog. You will be searching in all of these documents. A complete description of the operation of the search features can be +found here. + + + + +Working with bookmarks + +Drag & Drop Works Here +Click with the right mouse button on the bookmark category of the bookshelf and select "Create new folder" to create a new bookmark subfolder. You can use normal drag & drop +functions to drag verse references from read windows or search results to the bookmark folder, and to rearrange bookmarks between folders. + +You can also import bookmarks from other people or export bookmarks to share them. To do this, open the context menu of the bookmark folder as described above, and select "Export bookmarks". This will bring up a dialog box for you to save the bookmark collection. You can import bookmarks in a similar way. + +You can also click with the right on folders and bookmarks to change their names and descriptions. + + + + +The Mag(nifying glass) +This little window in the lower left corner of the &bibletime; window is purely passive. Whenever your mouse cursor is located over some text with additional information (e.g., Strong's numbers), then this additional information will be displayed in the Mag, and not in the text itself. Just try it out. + + + + +The Desk + +The Desk is where the real work with &bibletime; takes place. Here you can open works from the Bookshelf, read them, search in them, and even save your annotations in the personal commentary module (see below). + + +Reading works + +As we have already seen, you can open works for reading simply by clicking on their symbol in the Bookshelf. A read window will open in the Desk's area. Every read window has a toolbar. There you can find tools to navigate in the work that this read window is connected to, as well as history buttons like the ones that you know from your browser. + + + +Read window placement + +Of course, you can open multiple works at the same time. There are several possibilities for arranging the read windows on the desk. Please have a look at the entry Window in the main menu. There you can see that you can either control the placement of the read windows completely yourself, or have &bibletime; handle the placement automatically. To achieve this, you have to select one of the automatic placement modes available at WindowArrangement mode. Just try it out, it's simple and works. + + + + +Editing your own commentary + +To be able to store your own comments about parts of the Bible, you have install a certain work from the library of the Crosswire Bible Society. This work is called "Personal commentary". + +If you open the personal commentary by clicking on its symbol in the Bookshelf with a left mouse button, it opens +in read mode. You will not be able to edit it in this mode. Should you wish to write annotations into the personal commentary, you have to open it with the right mouse button and then select Edit this work and then either Plain text(source code editor) or HTML(basic gui wysiwyg editor). + +If Edit this work +is deactivated, please check if you have write permission for the files of +the personal commentary. + +Drag&drop works here. Drop a verse reference and the text +of the verse will be inserted. + + + + + + + + +Searching in works + + +Searching text in an open read window + +You can look for a word or phrase in the open read window (e.g. the chapter of a bible that you're reading) +just like you are used to from other programs. +This function can be reached either by clicking with the right mouse button and +selecting Find..., or by using the hotkey &Ctrl;F . Read on to learn how you can search in entire works. + + + +Accessing the search dialog + +You can search in a work by clicking with the right mouse button +on its symbol in the Bookshelf and selecting Search in work(s). By holding &Shift; or &Ctrl; and clicking on other work's names you can select more than one. Then follow the same procedure to open the search dialog. You will be searching in all of these works at the same time. +You can also access the search dialog by clicking on Search from the main menu, and selecting the appropriate entry. +A third possibility to start searches is to click on the search symbol in an open read window. + + + +Search configuration + +Search Text Dialog Options Tab + + + + + + + + +Selecting works +At the top of the options tab you will find Choose (works). If you would like to search in multiple works, click on this button and you will be offered a menu where you can select the works you want to search in. + + + + +Using Search Scopes +You can narrow the scope of your search to certain parts of the Bible by selecting one of the predefined scopes from the list in Search scope. You can define your own search ranges by clicking the Setup ranges button. + + + +Basic Search Syntax Introduction +Enter search terms separated by spaces. By default the search function will return results that match any of the search terms (OR). To search for all the terms separate the terms by AND. +You can use wildcards: '*' matches any sequence of characters, while '?' matches any single character. The use of brackets allows you to group your search terms, e.g. '(Jesus OR spirit) AND God'. +To search text other than the main text, enter the text type followed by ':', and then the search term. For example, to search for the Strong's number H8077, use 'strong:H8077'. +Available text types: + +PrefixMeaning + +heading:searches headings +footnote:searches footnotes +strong:searches Strong's Numbers +morph:searches morphology codes +
+BibleTime uses the Lucene search engine to perform your searches. It has many advanced features, and you can read more about it here: http://lucene.apache.org/java/docs/queryparsersyntax.html +
+ + +
+ + +Search results + +Here you can see how many instances of the search string were found, sorted by works. +Clicking on a work with the right mouse button allows you to copy, save, or print all verses that were found in a certain work at once. This also works when you click on one or more of the references to copy, save or print them. Clicking on a particular reference opens that verse up in context in the preview window below. + +Drag a reference and drop it on a work symbol on the Bookshelf to open the +work at that verse in a new read window. +Drag a reference and drop it on an open read window, and it will jump to that verse. +Select references and drag them to the Bookshelf to create bookmarks. + + +Search result analysis +Click on Search analysis to open the search analysis display. +This gives a simple graphic analysis of the number of instances the +search string was found in each book of the Bible, and you can also save the analysis. + + +Search Analysis Dialog Box + + + + + + + + +
+ + + + +The <guimenuitem>Bookshelf Manager</guimenuitem> + +The Bookshelf Manager is a tool to manage your Bookshelf. You can install new works to your Bookshelf, and update or remove existing works from your Bookshelf. Access it by clicking SettingsBookshelf Manager in the main menu. + + +Bookshelf path(s) setup + +Here you can specify where &bibletime; may store your Bookshelf on the harddrive. You can even store it in multiple directories. Default is "~/.sword/". + +If you have a sword CD, but do not want to install all the works on the harddisk, but use them directly from the CD, then you can add the path to the CD as one of your bookshelf paths. When you start &bibletime;, it will show all works on the CD if it is present. + + + +Install/update work(s) + +With this facility, you can connect to a repository of works (called "library"), and transfer one or more works to your local Bookshelf. These libraries may be local (e.g. a Sword CD), or remote (e.g. Crosswire's online repository of Sword modules, or another site offering Sword modules). You can manage your libraries with Add library and Delete library. + +To begin the installation or update process, select a library you want to connect to and a local Bookshelf path to install the work(s) to. Then click on Connect to library. &bibletime; will scan the contents of the library and present you with a list of works that you can add to your Bookshelf, or that you already have installed but are available in a new version in the library, and thus can be updated. Then you can mark all works that you want to install or update, and click on Install works. They will then be transferred to your Bookshelf. + + + + +Remove work(s) + +This facility allows you to delete one or more of the works from your Bookshelf too free up disk space. Simply mark the items and click on Remove works. + + + + + + + +Exporting and Printing + + +In many places, you can open a context menu by clicking with the +right mouse button. Depending on context, it will allow you +to Select, Copy (to clipboard), Save or Print text. This works for example in the read windows, when you click on the normal text or the verse reference, or in the search result page when you click on a work or one or more verse references. It is pretty straightforward, so just try it out. + +Printing from &bibletime; is rather basic and is intended as +a utility. If you are composing a document or presentation containing text from +&bibletime; works, we suggest that you use one of the presentation or editing +tools on your system to format your document, rather than printing from &bibletime; directly. + + + + +
+ + + + diff --git a/docs/handbook/unicode/hdbk-reference.docbook b/docs/handbook/unicode/hdbk-reference.docbook new file mode 100644 index 0000000..f23872b --- /dev/null +++ b/docs/handbook/unicode/hdbk-reference.docbook @@ -0,0 +1,480 @@ + +Reference + +Main menu reference + + In this section you can find detailed descriptions of all entries in the main menu + of &bibletime;. They are ordered in just the way they appear in &bibletime;, with + all the sub-items listed under the major menu item they belong to. You can also see + the hotkey of each item;a complete listing of all hotkeys can be found in + this section. + + <guimenu>File</guimenu> + + + + + + + &Ctrl;Q + + + File Quit + Closes BibleTime. BibleTime will ask you if + you want to write unsaved changes to disk. + + + + + + + <guimenu>View</guimenu> + + + + + View Show Toolbar + Toggles Toolbar display. Toggle this setting to turn the main toolbar + on or off. + + + + + F9 + + + View Show Bookshelf + Toggles display of the Bookshelf. Toggle this setting to turn the + Bookshelf on the left pane on or off. This can be handy if you need more space for the Mag. + + + + + F8 + + + View Show Mag + Toggles display of the Mag(nifying glass). Toggle this setting to turn the + Mag on the left pane on or off. + + + + + + <guimenu>Search</guimenu> + + + + + &Alt;&Ctrl;F + + + Search Search in standard bible + Opens the Search Dialog to search in the standard Bible only. + More works can be added in the Search Dialog. + + + + + &Ctrl;O + + + Search Search in open work(s) + Opens the Search Dialog to search in all open works. + More works can be added in the Search Dialog. + + + + + + + <guimenu>Window</guimenu> + + + + + + + Window Save session + Directly saves the current session. + This will open a context menu where you can select an existing session to save to. + It will be overwritten with your current session. See the next item on how to save to a new session. + + + + + &Alt;&Ctrl;S + + + Window Save as new Session + Saves the current session under a new name. + This will ask for a new name to save the session to. + + + + + + + Window Load session + Loads an existing session. + This will open a context menu where you can select an existing session to load. + + + + + + + Window Delete session + Deletes an existing session. + This will open a context menu where you can select an existing session that should be deleted. + + + + + &Ctrl;&Shift;F + + + Window Fullscreen Mode + Toggles fullscreen mode. + Here you can turn fullscreen mode on or off. In fullscreen mode, &bibletime; will expand to the full size + of your monitor screen, using as much space as possible. + + + + + + + Window Arrangement mode + Controls the basic window arrangement behaviour. + In the opening context menu, you can either specify that you want to take care of + the window arrangement yourself (Manual mode) or have &bibletime; handle it for you + (Automatical modes, just try them out!). + + + + + &Ctrl;G + + + Window Tile vertically + Tiles all open read windows vertically. + + + + + &Ctrl;H + + + Window Tile horizontally + Tiles all open windows horizontally. + + + + + &Ctrl;J + + + Window Cascade + Cascades all open windows. + + + + + &Alt;&Ctrl;W + + + Window Close all + Closes all open windows. + + + + + + <guimenu>Settings</guimenu> + + + + + + + Settings Configure toolbars + Opens a dialog where you can customize &bibletime;'s toolbar. + Just try it out, you can move around the toolbar buttons and even add new ones. Most of the entries available from + the main menu can be put on the toolbar as buttons. If you need a certain feature often, you might want to + put a button on the main menu, so that you can access it with only one click. Please see this section for further information. + + + + + + + Settings Configure &bibletime; + Opens &bibletime;'s main configuration dialog. + You can configure all kinds of nice settings there to adapt &bibletime; to your needs. + Please see this section for details. + + + + + + F4 + + + Settings Bookshelf Manager + Opens a dialog where you can change your Sword configuration and + manage your bookshelf. + Please see this section for details. + + + + + + + + <guimenu>Help</guimenu> + + &help.menu.documentation; + + + + + +Toolbar reference + + Please review the preceding section + for an explanation of the buttons that you find on the toolbar. You can also + move the cursor over a button and wait a few seconds to activate + the button's tooltip with a short description. + You can adapt the toolbar to your needs. Please use the following entry in the main menu: + + + + + + Settings Configure toolbars + Configure toolbars + + + Please see this section for detailed instructions. + + + + + +HotKeys index + +This is index of all hotkeys and their corresponding description in +the handbook. The hotkeys are sorted (roughly) alphabetical. If you want to directly +find out which hotkey a certain menu item has, you can either look at the entry itelf +in &bibletime; (as it always shows the hotkey), or you can look it up in +this section. + + + + + + + + Hotkey + Description + + + + + &Alt;Left + Moves back in the history of read windows. + + + &Alt;Right + Moves forward in the history of read windows. + + + &Alt;&Ctrl;F + + Search + Search in default bible equivalent; + opens the search dialog to search in the default bible. + + + &Alt;&Ctrl;G + WindowArrangement mode + Auto-tile vertically equivalent; + toggle automatic window tiling. + + + &Alt;&Ctrl;H + WindowArrangement mode + Auto-tile horizontally equivalent; + toggle automatic window tiling. + + + &Alt;&Ctrl;J + WindowArrangement mode + Auto-cascade equivalent; + toggle automatic window cascading. + + + &Alt;&Ctrl;M + WindowArrangement mode + Manual mode equivalent; + toggle manual window placement. + + + &Alt;&Ctrl;S + + Window + Save as new session equivalent; + saves current layout as new session. + + + &Alt;&Ctrl;W + + Window + Close all equivalent; + closes all open windows. + + + &Ctrl;- + Zoom out. This decreases the font size of read windows. + + + &Ctrl;+ + Zoom in. This increases the font size of read windows. + + + &Ctrl;A + Select all. This selects all text in read windows. + + + &Ctrl;C + Copy. This copies the selected text to the clipboard. + + + &Ctrl;F + Search. This lets you search within the text of a read window. + + + &Ctrl;J + + Window + Cascade equivalent; + cascades all open windows. + + + &Ctrl;G + + Window + Tile vertically equivalent; + tiles all open windows vertically. + + + &Ctrl;H + + Window + Tile horizontally equivalent; + tiles all open windows horizontally. + + + &Ctrl;O + + Search + Search in open work(s) equivalent; + opens the search dialog to search in all currently opened works. + + + &Ctrl;Q + + File + Quit equivalent; + closes &bibletime;. + + + &Ctrl;W + Closes the current window. + + + &Ctrl;X + Moves a bible or commentary read window to the next chapter. + + + &Ctrl;Y + Moves a bible or commentary read window to the next book. + + + &Ctrl;V + Moves a read window to the next verse or entry. + + + + + &Ctrl;&Shift;F + + Window + Fullscreen mode equivalent; + toggles fullscreen mode. + + + &Ctrl;&Shift;X + Moves a bible or commentary read window to the previous chapter. + + + &Ctrl;&Shift;Y + Moves a bible or commentary read window to the previous book. + + + &Ctrl;&Shift;V + Moves a read window to the previous verse or entry. + + + + F1 + + Help + Handbook equivalent; + opens the handbook. + + + F2 + + Help + BibleStudy Howto equivalent; + opens the BibleStudy Howto. + + + F3 + + Help + Daily tip equivalent; + opens the tip of the day. + + + F4 + + Settings + Bookshelf Manager equivalent; + opens the Bookshelf Manager. + + + F8 + + View + Show Bookshelf equivalent; + toggles display of the Bookshelf. + + + F9 + + View + Show mag equivalent; + toggles display of the mag(nifying glass). + + + + + + + + + + + diff --git a/docs/handbook/unicode/hdbk-start.docbook b/docs/handbook/unicode/hdbk-start.docbook new file mode 100644 index 0000000..0630959 --- /dev/null +++ b/docs/handbook/unicode/hdbk-start.docbook @@ -0,0 +1,93 @@ +Starting &bibletime; + +How to start &bibletime; + + Starting &bibletime; from KDE + + &bibletime; is a &kde; program and is integrated with the &kde; desktop. + You can launch &bibletime; from the &kde; Start Menu in + the Applications group with this icon: + + + + &bibletime; start icon + + + + &bibletime; can also be launched from a terminal command prompt. + To launch &bibletime;, open a terminal window and type: + +bibletime + + + + + + Other window managers + + &bibletime; can be used with other window managers such as Gnome, BlackBox or Sawfish, + providing &kde; is already installed on your computer. If your &kde; is installed + in /opt/kde, then the start-up command in a terminal would be: + + +export KDEDIR=/opt/kde #your KDE directory +bibletime + + + + + Startup customization + + From a terminal you can use &bibletime; to open a random verse in the + default bible: + +bibletime --open-default-bible "<random>" + + To open at a given passage like John 3:16, use: + +bibletime --open-default-bible "John 3:16" + + You can also use booknames in your current bookname language. + + + + + + +Startup sequence + + As &bibletime; launches you may see the following screens before + the main &bibletime; window opens: + + + + + Bookshelf Manager + Modifies your Bookshelf. This dialog + lets you modify your Bookshelf, add or delete works from your system. + It will only be shown if no default Bookshelf can be found. Please see + this sectionfor further details. + If you start off with an empty Bookshelf, it will be helpful to install at least one Bible, + Commentary, Lexicon and one Book to get to know &bibletime;'s basic features quickly. + + + + Configure &bibletime; dialog + Customizes &bibletime;. This dialog lets you + adapt &bibletime; to your needs. Please see + the detailed description of this dialog. + + + + Tip of the Day + These nifty little tips give you helpful hints for working + more efficiently with &bibletime;, and also a few quotations from the Bible. + + + + + + + + + diff --git a/docs/handbook/unicode/index.docbook b/docs/handbook/unicode/index.docbook new file mode 100644 index 0000000..8bef1b4 --- /dev/null +++ b/docs/handbook/unicode/index.docbook @@ -0,0 +1,89 @@ + +BibleTime'> + Sword'> + + + + + + + + + + +]> + + + + + +The &bibletime; handbook + + + + +Fred +Saalbach + + + +Jeffrey +Hoyt + + + +Martin +Gruner + + + + + + + + 1999-2005 + the &bibletime; team + + + + + The &bibletime; handbook is part of &bibletime;. + + + +2005-07 +1.5 + + + + &bibletime; is a powerful Bible study tool for &kde;. + + + + +KDE +bibletime +sword +crosswire +help dialog + + + + +&hdbkchap1; +&hdbkchap2; +&hdbkchap3; +&hdbkchap4; +&hdbkchap5; + + + diff --git a/docs/howto/Makefile.am b/docs/howto/Makefile.am new file mode 100644 index 0000000..c4da710 --- /dev/null +++ b/docs/howto/Makefile.am @@ -0,0 +1,17 @@ +# this Makefile.am was automatically generated by bibletime/maintenance/gen_am.sh +# please do not edit this file but rather run the script to update + + +SUBDIRS = unicode html + + +html-files: + if test -e unicode/index.docbook; then \ + olddir=$$PWD; \ + cd html;\ + echo "Validating the XML files..."; \ + if meinproc ../unicode/index.docbook; then\ + echo "HTML files created successfully."; \ + fi; cd $$olddir; \ + fi; + diff --git a/docs/howto/Makefile.in b/docs/howto/Makefile.in new file mode 100644 index 0000000..12eb7f0 --- /dev/null +++ b/docs/howto/Makefile.in @@ -0,0 +1,740 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ + +# this Makefile.am was automatically generated by bibletime/maintenance/gen_am.sh +# please do not edit this file but rather run the script to update +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = docs/howto +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +SUBDIRS = unicode html +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/howto/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/howto/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/howto/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/howto/Makefile + cd $(top_srcdir) && perl admin/am_edit docs/howto/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + 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_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +html-files: + if test -e unicode/index.docbook; then \ + olddir=$$PWD; \ + cd html;\ + echo "Validating the XML files..."; \ + if meinproc ../unicode/index.docbook; then\ + echo "HTML files created successfully."; \ + fi; cd $$olddir; \ + fi; +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=Makefile.in Makefile.am + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/howto/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/howto/Makefile + cd $(top_srcdir) && perl admin/am_edit docs/howto/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/docs/howto/html/Makefile.am b/docs/howto/html/Makefile.am new file mode 100644 index 0000000..6854ff2 --- /dev/null +++ b/docs/howto/html/Makefile.am @@ -0,0 +1,13 @@ +# this Makefile.am was automatically generated by bibletime/maintenance/gen_am.sh +# please do not edit this file but rather run the script to update + + +KDE_OPTIONS = noautodist +EXTRA_DIST = + + +install-data-local: + mkdir -p $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/; + chmod -R a+r+X $(DESTDIR)$(kde_htmldir)/en/bibletime; + +uninstall-local: diff --git a/docs/howto/html/Makefile.in b/docs/howto/html/Makefile.in new file mode 100644 index 0000000..29dfde2 --- /dev/null +++ b/docs/howto/html/Makefile.in @@ -0,0 +1,567 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ + +# this Makefile.am was automatically generated by bibletime/maintenance/gen_am.sh +# please do not edit this file but rather run the script to update +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = docs/howto/html +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_OPTIONS = noautodist +EXTRA_DIST = +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/howto/html/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/howto/html/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/howto/html/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/howto/html/Makefile + cd $(top_srcdir) && perl admin/am_edit docs/howto/html/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-data-local install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-local + + +install-data-local: + mkdir -p $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/; + chmod -R a+r+X $(DESTDIR)$(kde_htmldir)/en/bibletime; + +uninstall-local: +# 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: + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/howto/html/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/howto/html/Makefile + cd $(top_srcdir) && perl admin/am_edit docs/howto/html/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/docs/howto/unicode/Makefile.am b/docs/howto/unicode/Makefile.am new file mode 100644 index 0000000..1a39c03 --- /dev/null +++ b/docs/howto/unicode/Makefile.am @@ -0,0 +1,25 @@ +# this Makefile.am was automatically generated by bibletime/maintenance/gen_am.sh +# please do not edit this file but rather run the script to update + + +KDE_OPTIONS = noautodist +EXTRA_DIST = how2-basics.docbook how2-importance.docbook how2-interpretation.docbook index.docbook + + +install-data-local: + mkdir -p $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/; + chmod -R a+r+X $(DESTDIR)$(kde_htmldir)/en/bibletime; + $(INSTALL_DATA) $(srcdir)/how2-basics.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/howto; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/how2-basics.docbook; + $(INSTALL_DATA) $(srcdir)/how2-importance.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/howto; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/how2-importance.docbook; + $(INSTALL_DATA) $(srcdir)/how2-interpretation.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/howto; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/how2-interpretation.docbook; + $(INSTALL_DATA) $(srcdir)/index.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/howto; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/index.docbook; + +uninstall-local: + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/how2-basics.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/how2-importance.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/how2-interpretation.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/index.docbook; diff --git a/docs/howto/unicode/Makefile.in b/docs/howto/unicode/Makefile.in new file mode 100644 index 0000000..b53537f --- /dev/null +++ b/docs/howto/unicode/Makefile.in @@ -0,0 +1,579 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ + +# this Makefile.am was automatically generated by bibletime/maintenance/gen_am.sh +# please do not edit this file but rather run the script to update +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = docs/howto/unicode +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_OPTIONS = noautodist +EXTRA_DIST = how2-basics.docbook how2-importance.docbook how2-interpretation.docbook index.docbook +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/howto/unicode/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/howto/unicode/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/howto/unicode/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/howto/unicode/Makefile + cd $(top_srcdir) && perl admin/am_edit docs/howto/unicode/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-data-local install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-local + + +install-data-local: + mkdir -p $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/; + chmod -R a+r+X $(DESTDIR)$(kde_htmldir)/en/bibletime; + $(INSTALL_DATA) $(srcdir)/how2-basics.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/howto; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/how2-basics.docbook; + $(INSTALL_DATA) $(srcdir)/how2-importance.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/howto; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/how2-importance.docbook; + $(INSTALL_DATA) $(srcdir)/how2-interpretation.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/howto; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/how2-interpretation.docbook; + $(INSTALL_DATA) $(srcdir)/index.docbook $(DESTDIR)$(kde_htmldir)/en/bibletime/howto; + chmod a+r $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/index.docbook; + +uninstall-local: + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/how2-basics.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/how2-importance.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/how2-interpretation.docbook; + rm -f $(DESTDIR)$(kde_htmldir)/en/bibletime/howto/index.docbook; +# 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: + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/howto/unicode/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/howto/unicode/Makefile + cd $(top_srcdir) && perl admin/am_edit docs/howto/unicode/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/docs/howto/unicode/how2-basics.docbook b/docs/howto/unicode/how2-basics.docbook new file mode 100644 index 0000000..f70bf81 --- /dev/null +++ b/docs/howto/unicode/how2-basics.docbook @@ -0,0 +1,198 @@ +Bible Study Basics + + +Our Purpose as we Approach the Bible + +
Jn.5:39-40 You search the Scriptures, because you think that +in them you have eternal life; and it is these that bear witness of Me; and you +are unwilling to come to Me, that you may have life. +
+
+ +The chief purpose of the book is to bring us to the Person. Martin Luther +said we go to the cradle only for the sake of the baby; just so +in Bible study, we do it not for its own sake but for fellowship with God. + + +
John R.W. Stott, Christ the +Controversialist, InterVarsity Press 1978, pp.97, 104. +The Jews to whom Jesus spoke [...] imagined that to possess Scripture was +tantamount to possessing life. Hillel used to say, "He who has gotten to +himself words of Torah has gotten to himself the life of the world to +come." Their study was an end in itself. In this they were grievously +deceived. [...] +There is neither merit nor profit in the reading of +Scripture for its own sake, but only if it effectively introduces us to Jesus +Christ. Whenever the Bible is read, what is needed is an eager expectation that +through it we may meet Christ. +
+
+ +Approaches to God's Word +Hearing and reading provide a telescopic view of the scripture while study +and memorization provide a microscopic view of scripture. Meditating on the +scriptures brings hearing, reading, studying and memorization together and +cements the word in our minds. + +Hear +Lk.11:28 blessed are those who hear the word of God, and +observe it. + + +Read +Rev.1:3 Blessed is he who reads and those who hear the words of this +prophecy [...] +1 Tim.4:13 give attention to the public reading of Scripture [...] + + + +Study +Acts 17:11 Now these were more noble-minded than those in +Thessalonica, for they received the word with great eagerness, examining the +Scriptures daily, to see whether these things were so. + +2 Tim.2:15 Be diligent [KJV `Study'] to present yourself +approved to God as a workman who does not need to be ashamed, handling +accurately the word of truth. + + +Memorize +Ps.119:11 Thy word I have hid in my heart, that I may not +sin against Thee. + + +Meditate +Ps.1:2-3 But his delight is in the law of the Lord, And +in His law he meditates day and night. And he will be like a tree firmly planted +by streams of water, Which yields its fruit in its season, And its leaf does not +wither; And in whatever he does, he prospers. + + +The Navigators illustrate this by saying that as the thumb can touch all +the fingers, we can meditate on the Word as we do any of the first four. +Meditation is a key to revelation. A new Christian needs to hear and read the +Bible more than they need to study and memorize it. This is so that they become +familiar with the overall message of the Bible. + + + +Types of Bible Studies +Topical Study +Pick out a certain topic and follow it through, using cross-references or a +concordance. + + +Character Study +Studying the life of a Bible character, e.g. Joseph's life in +Gen.37-50. + + +Expository Study +Studying a certain passage: paragraph, chapter, or book. + + + +Basics of Correct Interpretation + +Content +What does it say? What does it say in the original language? Be careful +with definitions. Don't read into it what it doesn't say. + + +Context +What do the verses around it say? "Context is king" is the rule -- the passage must make +sense within the structure of the entire passage and book. + + +Cross-reference +What do other verses about this subject say through the rest of the Bible? God +doesn't contradict Himself, so our interpretation needs to stand the test of other scriptures. + + + +An Expository Study of Matthew 6:1-18 +Let's study together Mt.6:1-18. Read it to yourself, first looking for the key verse, the verse that sums +up the whole passage. Think you have it? Test it by picking different places in the passage and asking yourself +if they relate to the thought of the key verse. Once you find it, write it as Roman numeral One of your outline: + + + Beware of practicing your righteousness before men to be noticed + + +What does practicing your righteousness mean? Does the passage give any examples? What area +of our lives is being addressed? Our motives! What sub-headings develop this thought? + + + When you give + When you fast + When you pray + + +Now fill in the outline with specific instructions of how to avoid wrong ways of practicing our +righteousness: + + + When you give + + don't sound a trumpet. (how might someone sound a trumpet today?) + do it secretly. + etc. + + + + + +Worksheet: How to Use a Concordance + +To Find a Particular Verse + + Pick out a key word or most-unusual word of the verse. + Turn to this word alphabetically. + Go down the column of listings until you find your verse. + + +Find these verses: + + Faithful are the wounds of a friend + We are ambassadors of Christ. + The story of the rich man and Lazarus. + + + + +To Do a Topical Study +Let's say you wanted to do a study of the word "redemption." First you would look up that word in the +concordance and look up references listed for it. Then you could look up related words and references listed for them, e.g. +"redeem, redeemed, ransom," even "buy" or "bought." + + + +To Clarify Word Meanings in the Greek and Hebrew +What if you noticed a contradiction in the KJV between Mt.7:1 Judge not lest you be judged and 1 Cor.2:15 +He that is spiritual judgeth all things. Maybe there are two different Greek words here, both being translated "judge" in +English? (We're using Strong's from here out.) + + Look up "judge". + Go down the column of entries to Mt.7:1. To the right is a number, 2919. This refers to the Greek word used. + Write it down. + Now look up "judgeth". + Go down the column to 1 Cor.2:15 . . . . . 350. + Turn in the back to the Greek dictionary. (Remember, you're in the NT so the language is Greek, while the + OT is Hebrew.) Compare the meaning of 2919 with the meaning of 350 and you have your answer! + + + +To Find Meanings of Names +By the same process we can find the meaning of a name in the Greek or Hebrew. +Look up these names and write down their meaning: + +Nabal +Abigail +Joshua +Barnabus + + + + + +
diff --git a/docs/howto/unicode/how2-importance.docbook b/docs/howto/unicode/how2-importance.docbook new file mode 100644 index 0000000..8464528 --- /dev/null +++ b/docs/howto/unicode/how2-importance.docbook @@ -0,0 +1,311 @@ +Importance of God's Word +Understanding God's word is of great importance to all who call on +God's name. Study of the Bible is one of the primary ways that we learn to +communicate with God. + +A Book that is Unique +The Bible stands alone in many ways. It is unique in: + + + + +popularity. Bible sales in North America: more than $500 million per +year. The Bible is both the the all-time and year-to-year best seller! + + + + +authorship. It was written over a period of 1600 years by 40 different +authors from different backgrounds, yet reads as if written by one. + + + + +preservation. F. F. Bruce in Are New Testament Documents Reliable? +compares New Testament manuscripts with other ancient texts: + + + + +Comparison of New Testament manuscripts with other ancient texts. + + + +Work +When Written +Earliest Copy +Time LapseNumber of Copies + + + +Herodotus +448-428 B.C.900 A.D. +1300 years8 + + +Tacitus +100 A.D.1100 A.D. +1000 years20 + + +Caesar's Gallic War +50-58 B.C.900 A.D. +950 years10 + + +Livy's Roman History +59 B.C. - 17 A.D.900 A.D. +900 years20 + + +New Testament +40 A.D. - 100 A.D.130 A.D. Partial manuscripts 350 +A.D. Full manuscripts 30 - 310 years5000 Greek & 10,000 Latin + +
+Ten copies of Caesar's Gallic War exist, the earliest of which was copied +900 years after Caesar wrote the original, etc. For the New Testament we have +full manuscripts dating to 350 A. D., papyri containing most of the New +Testament from the 200s, and a fragment of John's gospel from 130 A. D. How +many manuscripts do we have to compare to each other? 5,000 in Greek and 10,000 +in Latin! +
Textual critic F. J. A. Hort, "The New Testament in the +Original Greek", vol. 1 p561, Macmillan Co., quoted in Questions of Life p. +25-26"In the verity and fullness of the evidence on which +it rests, the text of the New Testament stands absolutely and unapproachably +alone among other ancient prose writings."
+
+ +A Book that God Breathed +Heb.4:12 "For the word of God is living and active... +" Jesus said (Mt.4:4), +"It is written, Man shall not live on bread alone, but on every word that +proceeds [lit., is proceeding] from the mouth of God." +As we read the Bible, God's Spirit is there to speak it to our hearts in a continually-fresh way. + +2 Tim.3:16 declares, "All scripture is inspired by God [lit., +God-breathed]." Do you believe this? Before you answer, consider Jesus' attitude +toward the Scriptures. +
John R.W. Stott, Christ the Controversialist, +InterVarsity Press 1978, pp.93-95 He referred to the human authors, but took it for +granted that behind them all was a single divine Author. He could equally say +'Moses said' or 'God said' (Mk.7:10). He could quote a comment of the narrator in +Genesis 2:24 as an utterance of the Creator Himself (Mt.19:4-5). Similarly He +said, 'Well did Isaiah prophesy of you hypocrites, as it is written', when what He +went on to quote is the direct speech of the Lord God (Mk.7:6 & Is.29:13). It +is from Jesus Himself that the New Testament authors have gained their +conviction of the dual authorship of Scripture. For them it was just as true to +say that 'God spoke of old to our fathers by the prophets' (Heb.1:1) as it was to +say that 'men moved by the Holy Spirit spoke from God' (2 Pe.1:21). God did not +speak in such a way as to obliterate the personality of the human authors, nor +did men speak in such a way as to corrupt the Word of the divine Author. God +spoke. Men spoke. Neither truth must be allowed to detract from the other. ... + + +This, then, was Christ's view of the Scriptures. Their witness was God's +witness. The testimony of the Bible is the testimony of God. And the chief +reason why the Christian believes in the divine origin of the Bible is that +Jesus Christ Himself taught it.
+ +2 Tim.3:16 goes on, "and profitable for teaching, for +correction, for training in righteousness, that the man of God may be adequate, +equipped for every good work." If we accept that the Bible really is God +speaking to us, it follows that it will be our authority in all matters of faith +and conduct. +
+ +A Book that Works + +What will studying the Bible do for you? 1 Thess.2:13 says that the Bible +"performs its work in you +who believe." Beside each scripture, write down the work the Word +performs. + + +What does Bible study do for Christians? + + + +Reference +Action + + + + +Eph. 5:26 + +cleanses -- "...having cleansed her by the washing of water with the word." + + + + +Acts 20:32 + + +builds up -- +" +...the word of His grace, which is able to build you up and to give you the +inheritance among all those who are sanctified. +" + + + + +Rom. 15:4 + + +encourages -- "that through perseverance and the +encouragement of the Scriptures we might have hope." + + + + + +Rom. 10:17 + + +gives faith -- +"So faith comes from hearing, and hearing by the word of +Christ." + + + + + +1 Cor. 10:11 + + +instructs -- +"Now these things happened to them for an example, +and they were written for our instruction" + + + + + +Mt. 4:4 + + +nourishment -- +"But He answered and said, 'It is written, Man shall not live on bread alone, +but on every word that proceeds out of the +mouth of God.'" + + + + +
+
+ +A Book that Liberates + +Jn.8:32 "and you shall know the truth, and the truth shall make you +free."This is usually quoted by +itself. Is this a conditional or unconditional promise? Would it apply to +all kinds of knowledge? Find the answers by examining the first half of the +sentence, in v.31. "If you abide in My word, then you are truly disciples of +Mine... " +We see that this is a conditional promice, specifically speaking of the truth of God's word. + +The Greek word for "wind" used in Eph.4:14 means a violent wind. +"As a result, we are no longer to be children, tossed here and there by +waves, and carried about by every wind of doctrine..."One +thing studying the Bible does for us is to ground us in the truth, with the +result that we won't be easily "blown away." + +But Jesus answered and said to them, "You are mistaken [KJV Ye do err], not +understanding the Scriptures, or the power of God."Mt.22:29 +What 2 things do we need to know to be kept from error? + +God's word +God's power + + + +A Book that Wars + +Eph.6:10-18 is one picture of our spiritual armament. + +Spiritual Armor + + + +Question +Answer + + +How many of the weapons listed here are defensive weapons?5 +How many are offensive?One +Which one(s)? the word - rhema +
+
+ +Exhortations + +2 Tim.2:15 (KJV) "Study to show thyself approved unto God, a workman that needeth not to be ashamed, rightly +dividing the word of truth." + + +Col.3:16 "Let the word of Christ richly dwell within you; with all wisdom teaching and admonishing one another +with psalms and hymns and spiritual songs, singing with thankfulness in your hearts to God." + + +If you're rich in something, how much of it do you +have? + +Not a little! + + +Eccl.12:11-12 "The words of wise men are like goads, and masters of these +collections are like well-driven nails; they are given by one Shepherd. But +beyond this, my son, be warned: the writing of many books is endless, and +excessive devotion to books is wearying to the body." + + +Appendix: "Once for +All" +
+John R. W. Stott, Christ the Controversialist, +InterVarsity Press 1978, pp.106-107 The truth regarding the +finality of God's initiative in Christ is conveyed by one word of the Greek +Testament, namely the adverb hapax and +ephapax. It is usually translated in the +Authorized Version once, meaning once for all. It is used of what is so done as +to be of perpetual validity and never need repetition, and is applied in the NT +to both revelation and redemption. Thus, Jude refers to the faith which was +once for all delivered to the saints (Jude 3), and Romans says, +"Christ also died for sins once for all" +(Rom.6:10, see also 1 Pe.3:18; Heb.9:26-28). +Thus we may say that God has spoken once +for all and Christ has suffered once for all. This means that the Christian +revelation and the Christian redemption are both alike in Christ complete. +Nothing can be added to either without being derogatory to Christ... These are +the two rocks on which the Protestant Reformation was built -- Gods revealed +word without the addition of human traditions and Christ's finished work without +the addition of human merits. The Reformers great watchwords were sola +scriptura for our authority and sola gratia for our salvation. +
+
+ +Supplement: Bible Reading +Programs Here are some easy programs to systematically read your +Bible. You can do more than one at a time if you like, for instance #1 with #4, +or #2 with #5. Vary the program from year to year to keep it fresh! + + +New Testament in a Year: read one chapter each day, 5 days a +week. +Proverbs in a Month: read one chapter of Proverbs each day, +corresponding to the day of the month. +Psalms in a Month: read 5 Psalms at intervals of 30 each day, +for instance on the 20th you read Ps.20, 50, 80, 110, & 140. +Psalms & Proverbs in 6 months: read through Psalms and Proverbs +one chapter per day. +Old Testament without Psalms & Proverbs in 2 years: if +you read one chapter a day of the Old Testament, skipping over Psalms & Proverbs, you will read the Old Testament in 2 years and 2 weeks. + + + + +
+ diff --git a/docs/howto/unicode/how2-interpretation.docbook b/docs/howto/unicode/how2-interpretation.docbook new file mode 100644 index 0000000..aadc189 --- /dev/null +++ b/docs/howto/unicode/how2-interpretation.docbook @@ -0,0 +1,212 @@ +Rules of Bible Interpretation (Hermeneutics) +We already learned about the "3 Cs": content, context, cross-reference. We want to expand that now by +delving briefly into biblical hermeneutics, whose goal is to discover the meaning intended by the original author (and +Author!). While many applications of a passage are valid, only one interpretation is valid. The scripture itself says +this by saying that no scripture is of any private interpretation (2 Pe.1:20 KJV Knowing this first, that no +prophesy of scripture is of any private interpretation.). Certain rules are helps toward discovering the correct meaning; +by ignoring these rules people have brought much trouble on themselves and their followers. 2 Pe.3:16 ...in which are +some things hard to understand, which the untaught and unstable distort, as they do also the rest of the Scriptures, to +their own destruction. + +How do we go about discovering the intended meaning of a passage? Let's say your attention has been +drawn to a particular verse whose meaning is not clear to you. How do you study it out? Keep these rules in mind: + +
Rule 1 - Interpret according to the exact meaning of the words. +The more precise we can be with the exact, original meaning of the words the better our interpretation will be. +Try to find the exact meaning of the key words by following these steps: + + + + Definition + Look up the definition in a Greek or Hebrew dictionary. For verbs, the verb tense is also crucial. + + + + + Cross-reference + Compare scripture with scripture. Seeing how the same Greek or Hebrew word + (not the English word) is used in scripture may clarify or throw new light on the definition. How does the same author + use this word elsewhere? Other authors? Your reference tools may give you uses of the word in non-biblical + documents, as well. Why do we have to go to the original languages; why isn't the English word good enough? + Because more than one greek word may be translated into the same english word, and the greek + words may have different shades of meaning. + + + + +
Example 1A +Jn.20:17 "Touch me not" (KJV) sounds harsh, doesn't it? Sounds like Jesus doesn't want +to be touched now that He is risen, that He is too holy or something. But that doesn't seem right, so let's look +it up in Spiros Zodhiates' The Complete Word Study New Testament (AMG Publishers, 1991). + +Definition: Turning to John 20:17, above the word "Touch" we see "pim680." The letters +give us a code for the part of speech, and the number refers to Strong's dictionary reference. Let's look up +the definition (p. 879). "680. Haptomai; from hapto (681), touch. Refers to such handling of an object as to exert a modifying +influence upon it... Distinguished from pselaphao (5584), which actually only means to touch the surface of something. " Now look +up "pim." The grammar codes in Zodhiates come right after Revelation; on p. 849 we see that pim stands for +"present imperative active (80)". On p.857, "Present Imperative. In the active voice, it may indicate a command to do +something in the future which involves continuous or repeated action or, when it is negated, a command to stop doing something. " This +is a negative command, so it is to stop doing something that is already occuring. So, what have we found? +Mary is already clinging to Jesus, and he is saying to stop holding him! +
+ +
Example 1B +In James 5:14, Elders are told to pray and anoint someone who is sick. What is this anointing? +Definition of aleipho (218) - "to oil" (Strong's); but we also have another Greek word translated +"anoint", chrio (5548) - "to smear or rub with oil, i.e. to consecrate to an office or religious service" (Strong's). + Since it's a verb, consider the tense also, "apta" aorist participle active. "The aorist participle expresses simple action, +as opposed to continuous action...When its relaitonship to the main verb is temporal, it usually signifies action prior to that of the main +verb." (Zodhiates p.851) + + +Cross-references for aleipho: + + Mt.6:17 But you, when you fast, anoint your head + Mk.16:1 [the women] brought spices that they might come and anoint Him. + Mk.6:13 And they were...anointing with oil many sick people and healing them. + Lk.7:38 [...] kissing His feet and anointing them with the perfume + Jn.12:3 Mary [...] anointed the feet of Jesus, and wiped them with her hair + + + +Cross-references of chrio: + + Lk.4:18 The Spirit of the Lord is upon me, because He has anointed me to preach [...] + Acts 4:27 Jesus, whom Thou hast anointed + Acts 10:38 God anointed Jesus with the Holy Ghost and power + 2 Cor.1:21 Now He who...anointed us is God + + + + +So what's the difference between aleipho and chrio? Look back over the cross-references and the +definitions, and sum up the difference: "aleipho" is a practical use of oil and "chrio" is a spiritual + +As an illustration (although the word is not used) of the practical use of oil at that time, when the good +Samaritan cared for the man beat up by robbers he poured oil and wine in the wound. So oil had a medicinal +use in Jesus' day. + +Now let's apply what we just learned by this word study to James 5:14 "Is any among you sick? Let +him call for the elders of the church; and let them pray over him, anointing him with oil in the name of the +Lord." Is "anointing" spiritual or practical? Practical! + +And the tense in Greek, the aorist participle, would +be better translated "having anointed," so the order is the anointing first, then the prayer ("in the name of the +Lord"refers to the prayer, not the anointing). James 5 is saying that the elders should give the sick person +medicine and pray for him in the name of the Lord. Doesn't that express a beautiful balance of practical and +spiritual in our God! + +
+
+ +
+Rule 2 - Interpret within the biblical +context +Interpret scripture in harmony with other scripture. What do the +verses on each side say? What is the theme of the chapter? the book? Does your interpretation fit with these? If not, +it is flawed. Usually, the context supplies what we need to correctly interpret the passage. Context is key. If +confusion remains as to the meaning after we have interpreted the text within its context, we have to look further. + +
Example 2A +In a previous lesson we considered Jn.3:5 "born of water and the Spirit." In context, what is +the water under discussion here? +Water baptism is not under discussion here, which would be a big switch from the subject being +discussed by Jesus and Nicodemus. Watch out for a sudden change of topic, it may be a clue that your +interpretation has been derailed! The water is the amniotic fluid, "born of water" = natural birth. +
+
Example 2B +1 Cor.14:34 Let the women keep silent in the churches has to be taken within the biblical +context of 1 Cor.11:5 every woman [...] while praying or prophesying [...] +
+
Example 2C +Acts 2:38 And Peter said to them, "Repent, +and let each of you be baptized in the name of +Jesus Christ for the forgiveness of your sins [...]". Is this teaching baptismal regeneration? If this was the +only verse of scripture we had, we would have to conclude that. But in the light of the clear teaching +elsewhere that regeneration happens by faith in Christ, we have to interpret it otherwise. Peter is urging +baptism as a way for his hearers to respond to the gospel. If baptism were the pathway to being born again, +how could Paul write 1 Cor.1:17 "For Christ did not send me to baptize, but to preach the gospel"? + +
+
+ +
+Rule 3 - Interpret within the historical and cultural context + +At first we are not asking What does it mean to me? but What did it mean to the original readers?; later we can ask, What does it mean to me?. +We have to take into account the historical and cultural background of the author and the recipients. + +
Example 3A 3 days & 3 nights (Mt.12:40) have +led some to come up with a "Wednesday crucifixion theory," +esp. the cult of Armstrongism. How could Jesus die on Friday afternoon and rise Sunday morning +yet "be raised on the third day" (Mt.16:21)? Exact meanings of "three" or "days" won't help explain the +apparent contradiction. +We need an historical tidbit: Jews counted any part of a day as a full day, as we would count buckets +of water (if there were six and one-half buckets of water, we would say there were 7 buckets of water even if one was only partly full). So to the Jewish +mind, any part of a day counted as a full day, and days started at 6 p.m. and ended at 6 p.m. Friday from 3 +p.m. to 6 p.m. = day 1. Friday 6 p.m. to Saturday 6 p.m. = day 2. Saturday 6 p.m. to Sunday 5 or so a.m. = +day 3. Interpreting within the cultural context keeps us out of trouble. +
+ +
Example 3BGen.15:7-21. The historical context +is that cutting animals in two and then walking between +the pieces was the normal way of entering a contract in Abraham's day. Both parties walked between, taking +the pledge that dismemberment would happen to them if they didn't live up to their part of the contract. But +in this case only God goes thru, making it a unilateral covenant. +
+
+ +
Rule 4 - Interpret according to the normal usage of words in language +Let literal language be literal and +figurative language be figurative. And watch out for idioms, which have special meanings. + +
Example 4A +evil eye in Mt.6:23. +Rule 1, definition of "evil" and "eye" - no help here. Rule 2, context: seems to confuse us even +more. It doesn't seem to fit with what goes before and after! This should tip us off that we aren't +understanding it rightly!! +What we have here is a Hebrew idiom, evil eye. Let's look up other uses of this idiom: Mt.20:15 +"Is it not lawful for me to do what I wish with what is my own? Or is your eye envious [lit."evil"] because I +am generous [lit. "good"]?" We find that having an "evil eye" is a Hebrew idiom for being stingy or envious. +Now go back to Mt.6 and notice how this understanding ties in so perfectly to the context. +
+ +
Example 4B +Is.59:1 The Lord's hand is not short; +Deut.33:27 Underneath are the everlasting arms. + +References to body parts of God are used by Latter-Day Saints to prove that God was once a man just as we +are. Once they convince people of that, they go on to teach that we can become God just like He is! At a +lecture he was giving, a group of Mormon elders challenged Walter Martin (author of Kingdom of the Cults) +with an enumeration of verses like these. Dr. Martin then asked the Mormons to read one more scripture: +Ps.91:4 He will cover you with His feathers; And under His wings shalt thou trust. W.M. said, By the same +rules of interpretation that you just proved God to be a man, you just proved that He is a bird. The Mormons +had to laugh as they realised the ridiculousness of their position. + +
+
+ +
Rule 5 - Understand the purpose of parables and the difference between a parable and an allegory +An allegory is: A story where each element has a meaning. +Every parable is an allegory, true or false? + +Some parables are allegories, for instance, the parable of the sower is an allegory: the seed is the word of +God, the thorns are worries and greed, etc. But most parables are not allegories but simply stories to illustrate one +point. It's dangerous to get our doctrine from parables; they can be twisted to say all sorts of things. We need to get +our doctrine from clear scriptures that lay it out; then if a parable illustrates that, fine. + +
Example 5A +The parable of the widow with the unrighteous judge in Lk.18:1-8. This story illustrates one +lesson: boldness in prayer. If we draw it into an allegory, what do we have? +All sorts of violence happens to the meanings: God is reluctant to protect the rights of widows, prayer +"bothers" Him, etc.
+ +
Example 5B +The parable of the unrighteous steward in Lk.16:1-9. What is the point of the parable? Is it +an allegory? +The steward is commended for only one thing, his shrewdness in using what he had to prepare for a +time when he wouldn't have it. But he is not commended for his unethical behavior in cheating his master. +
+ +
+
diff --git a/docs/howto/unicode/index.docbook b/docs/howto/unicode/index.docbook new file mode 100644 index 0000000..77ea8a3 --- /dev/null +++ b/docs/howto/unicode/index.docbook @@ -0,0 +1,86 @@ + +BibleTime'> + + + + + + + + + + +]> + + + + +The Biblestudy HowTo + + + + Bob + Harman + + + + The BibleTime team + + + + + + + 2001-2008 + The team of &bibletime; (info@bibletime.info) + + + + + This document was originally created by Mr. Bob Harman and + is licensed under the terms of the license + + "Creative Commons Attribution-Share Alike". + + + Scripture quotes are from the New American Standard Bible unless otherwise indicated. + + + + +Abstract + +The Biblestudy HowTo is a guide for studying the Bible. + +It is the hope of the &bibletime; team that this HowTo will provoke the +readers to study the scriptures to see what they say. This +particular study guide has been chosen as it takes care not to +advocate any particular denominational doctrine. We expect you to read +and study the scriptures to understand what they say. If you start +with the attitude that you want to have the Lord sow his word in your +heart He will not disappoint you. + + + +Bible +Study +HowTo + + + + +&how2-chap1; +&how2-chap2; +&how2-chap3; + + + \ No newline at end of file diff --git a/docs/ksgmltools-bug-read-me.txt b/docs/ksgmltools-bug-read-me.txt new file mode 100644 index 0000000..5a40a7f --- /dev/null +++ b/docs/ksgmltools-bug-read-me.txt @@ -0,0 +1,36 @@ +During the creation of these documents I found several problems with the +docbook DTD supplied with Mandrake 8.1 This read me documents the work arounds made. + +Problem + +&XML; parses as XML? + +Solution + +Edited the file /usr/share/apps/ksgmltools2/customization/entities/general.entities +also known as "-//KDE//ENTITIES DocBook XML General Entity Declarations V1.0//EN" + +to read +XML'> + +Also did this with all trademark tags that had no class. Class is required for this tag, see + +DocBook: The Definitive Guide +By Norman Walsh and Leonard Muellner +O'Reilly & Associates, Inc. + +Result + +&XML; parses as XML® + + +Problem +stuff parses as ?quote? + +Used " instead. + +This should be corrected when parses as " + +---------------------- +Fred Saalbach 22 Dec 2001 +---------------------- diff --git a/docs/tips b/docs/tips new file mode 100644 index 0000000..c8bda33 --- /dev/null +++ b/docs/tips @@ -0,0 +1,165 @@ + + +The Bible was written so we could believe in Jesus. (John 20:31) + + + + + +BibleTime includes a really useful handbook written by Fred Saalbach. +To read it choose the item "Handbook" in the "Help" menu of BibleTime. + + + + + +No one is allowed by God to add anything to or take anything away from the Word. (Revelation 22:18-19) + + + + + +The Bible is like a mirror. (James 1:23) + + + + + +BibleTime does include a Bible Study HowTo! +It was written by Bob Harman and is a great introduction how to study the Bible. + + + + + +You can save, print and copy the whole search result by pressing the right mouse button on the icon of the searched module in the search dialog. + + + + + +The Bible is our only spiritual weapon. (Ephesians 6:17) + + + + + +To get the number of verses in the Bible search for a space in the module. +The search analysis shows you the number of verses of each book. + + + + + +The Bible is truth. (John 17:17) + + + + + +If you would like to create a set of bookmarks around a specific topic with comments containing what the Lord told you here, it's best to +make bookmarks from your personal commentary. + + + + + +The scriptures give us the wisdom that leads to salvation. (2 Timothy 3:15) + + + + + +To lookup the meaning of the original hebrew or greek word in a Bible supporting Strong's numbers, switch them on and +click on the strong number. Now a new window showing the strong number with +it's explanation is shown. If your favourite translation doesn't support Strong's numbers please refer to an alternate translation for the number of the corresponding word. +Make sure you have set the default modules in the preferences. + + + + + +If you want to use a commentary as a topical reference, search it for terms your topic is about. + + + + + +In the beginning was the Word, the Word was with God, and the Word was God. (John 1:1) + + + + + +We will be judged on the last day by the words Jesus spoke. (John 12:48) + + + + + +If you want to find the full set of verses or entries on a area of content, you should use the option "Multiple words (OR)" for searching. + + + + + +If you are searching a verse you know only fuzzy or in a different translation search for the most probable terms in multiple Bible translations at the same time. + + + + +God's Word can be a lamp to your feet and a light to your path. (Psalm 119:105) + + + + + +If you want to search a word in a foreign module (e.g. greek or hebrew), open a display window and choose a chapter or an entry which contains this word. +Select it and copy it to the clipboard. Now insert the copied word in the search text box of the searchdialog. + + + + + +The Word of God will not return to Him without accomplishing its purpose. (Isaiah 55:11) + + + + + +Foreign modules do often require a special font to display correctly. You can set the font for each language in the preferences. + + + + + +Did you know that the first book ever printed on a printing press was the Bible (by Johann Gutenberg, in 1492)? + + + + + +God has already given to us everything pertaining to life and godliness. (2 Peter 1:3) + + + + + +All important elements of BibleTime's graphical user interface have a tooltip and a "What's this?" help.
+To read the "What's this?" help press the keys SHIFT+F1 and click on the part. + +
+ + + +The Word of God is living, active, and sharper than any two-edged sword. (Hebrews 4:12) + + + + + +You are using a program that has been written for the glory of God.
May He bless you as you study His Word! + +
+ + diff --git a/pot/Makefile.am b/pot/Makefile.am new file mode 100644 index 0000000..95ff7f5 --- /dev/null +++ b/pot/Makefile.am @@ -0,0 +1,30 @@ +# make messages.pot +# the -x is for skipping messages already translated in kdelibs + +messages: + echo Preparing documentation files handbook.pot and howto.pot... + mkdir -p tmp/ + for XML_FILE in `cd ..; find docs -name "*.docbook"`; do\ + echo " creating temporary POT file tmp/$$XML_FILE.pot";\ + (cd tmp; mkdir -p `dirname $$XML_FILE.pot`; xml2pot ../../$$XML_FILE > $$XML_FILE.pot;)\ + done + echo merging POT files... + msgcat --force-po -o handbook.pot `find tmp/docs/handbook -name "*.pot"` + msgcat --force-po -o howto.pot `find tmp/docs/howto/ -name "*.pot"` + rm -r ./tmp/ + echo Finished creating handbook.pot and howto.pot.\n + echo Preparing program messages file messages.pot... + echo Before we start, run make to generate all the auto-generated .cpp and .h files + (sleep 5; cd ..; make) #needed for .ui files + echo Now extract the messages... + perl ./extractrc ../bibletime/xml/*.rc > ../bibletime/rc-dummy.cpp + perl ./preparetips ../docs/tips > ../bibletime/tips-dummy.cpp + $(XGETTEXT) -C -F -L C++ -ki18n -kI18N_NOOP -x `kde-config --prefix`/include/kde/kde.pot `find .. -type f -not -name clanguagemgr.cpp -and -name \*.cpp -or -name \*.h -or -name \*.cc` -o messages.pot + recode iso8859-1..utf-8 messages.pot + cp ../bibletime/backend/clanguagemgr.cpp clanguagemgr.cpp + $(XGETTEXT) --from-code=utf-8 --join-existing -C -F -L C++ -ki18n -kI18N_NOOP -x `kde-config --prefix`/include/kde/kde.pot clanguagemgr.cpp -o messages.pot + rm clanguagemgr.cpp + echo Finished creating messages.pot. + + + diff --git a/pot/Makefile.in b/pot/Makefile.in new file mode 100644 index 0000000..0092336 --- /dev/null +++ b/pot/Makefile.in @@ -0,0 +1,588 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 1.31 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ + +# make messages.pot +# the -x is for skipping messages already translated in kdelibs +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = pot +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BT_LDFLAGS = @BT_LDFLAGS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLUCENE_INCLUDES = @CLUCENE_INCLUDES@ +CLUCENE_LIBRARY_PATH = @CLUCENE_LIBRARY_PATH@ +CONF_FILES = @CONF_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTRIBUTION = @DISTRIBUTION@ +DISTRIBUTION_VERSION = @DISTRIBUTION_VERSION@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +HOWTODIR = @HOWTODIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_PLUGIN = @KDE_PLUGIN@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_CLUCENE = @LIB_CLUCENE@ +LIB_KAB = @LIB_KAB@ +LIB_KABC = @LIB_KABC@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEPIM = @LIB_KDEPIM@ +LIB_KDEPRINT = @LIB_KDEPRINT@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KDNSSD = @LIB_KDNSSD@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMPROXY = @LIB_KIMPROXY@ +LIB_KIO = @LIB_KIO@ +LIB_KJS = @LIB_KJS@ +LIB_KNEWSTUFF = @LIB_KNEWSTUFF@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KUTILS = @LIB_KUTILS@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_SWORD = @LIB_SWORD@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_GROUP = @RPM_GROUP@ +RPM_PREFIX = @RPM_PREFIX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWORD_INCLUDES = @SWORD_INCLUDES@ +SWORD_LIBRARY_PATH = @SWORD_LIBRARY_PATH@ +TOPSUBDIRS = @TOPSUBDIRS@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libraries = @kde_libraries@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_qtver = @kde_qtver@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +kdeinitdir = @kdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +#>- all: all-am +#>+ 1 +all: docs-am all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu pot/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu pot/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu pot/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu pot/Makefile + cd $(top_srcdir) && perl admin/am_edit pot/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(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_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +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 +#>+ 1 +clean: kde-rpo-clean clean-am + +#>- clean-am: clean-generic clean-libtool mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + + +messages: + echo Preparing documentation files handbook.pot and howto.pot... + mkdir -p tmp/ + for XML_FILE in `cd ..; find docs -name "*.docbook"`; do\ + echo " creating temporary POT file tmp/$$XML_FILE.pot";\ + (cd tmp; mkdir -p `dirname $$XML_FILE.pot`; xml2pot ../../$$XML_FILE > $$XML_FILE.pot;)\ + done + echo merging POT files... + msgcat --force-po -o handbook.pot `find tmp/docs/handbook -name "*.pot"` + msgcat --force-po -o howto.pot `find tmp/docs/howto/ -name "*.pot"` + rm -r ./tmp/ + echo Finished creating handbook.pot and howto.pot.\n + echo Preparing program messages file messages.pot... + echo Before we start, run make to generate all the auto-generated .cpp and .h files + (sleep 5; cd ..; make) #needed for .ui files + echo Now extract the messages... + perl ./extractrc ../bibletime/xml/*.rc > ../bibletime/rc-dummy.cpp + perl ./preparetips ../docs/tips > ../bibletime/tips-dummy.cpp + $(XGETTEXT) -C -F -L C++ -ki18n -kI18N_NOOP -x `kde-config --prefix`/include/kde/kde.pot `find .. -type f -not -name clanguagemgr.cpp -and -name \*.cpp -or -name \*.h -or -name \*.cc` -o messages.pot + recode iso8859-1..utf-8 messages.pot + cp ../bibletime/backend/clanguagemgr.cpp clanguagemgr.cpp + $(XGETTEXT) --from-code=utf-8 --join-existing -C -F -L C++ -ki18n -kI18N_NOOP -x `kde-config --prefix`/include/kde/kde.pot clanguagemgr.cpp -o messages.pot + rm clanguagemgr.cpp + echo Finished creating messages.pot. +# 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: + +#>+ 2 +KDE_DIST=extractrc Makefile.in preparetips howto.pot messages.pot handbook.pot Makefile.am + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu pot/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu pot/Makefile + cd $(top_srcdir) && perl admin/am_edit pot/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-am + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +cvs-clean: + $(MAKE) admindir=$(top_srcdir)/admin -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/pot/extractrc b/pot/extractrc new file mode 100644 index 0000000..368849d --- /dev/null +++ b/pot/extractrc @@ -0,0 +1,74 @@ +#! /usr/bin/perl + +# NOTE: this script is part of the KDE SDK and added to KDevelop to support KDE 2 application development. +# The original is located in the KDE CVS module kdesdk/scripts. It gets installed in the same directory as +# the KDevelop binary to be in your PATH. +# +# What it does is extract the strings in an application´s .rc file, e.g. testappui.rc, and writes into the pot file +# where the translations are build with (po-files) +# +# Added to KDevelop 2000-10-29, Ralf Nolden (nolden@kde.org) + +$linenr = 0; +$filename = ""; +@filenames = (); + +sub writeoutstring($) +{ + print STDOUT "i18n(\"@_[0]\");\n"; +} + +while (defined ($ARGV[0])) +{ + $_ = shift; + $filename = $_; # maybe check for options + +if (! $filename) { + print STDERR "no file to open\n"; + exit 1; +} + +$string = ""; +$intext = 0; + +open(FILE, $filename); +while ( ) { + $linenr++; + + $string .= $_; + chomp($string); + + $textstring = '([tT][eE][xX][tT]|string)>'; + + if ($intext == 0) { + if ($string =~ /<$textstring/) { + $string =~ s/^.*<$textstring//; + $intext = 1; + $starting_linenr = $linenr; + } else { + $string = ""; + } + } + + if (($intext == 1) && ($string =~ /<\/$textstring/)) { + my $text = $string; + $text =~ s/<\/$textstring.*$//; + $text =~ s/<//g; + $text =~ s/&/&/g; + writeoutstring($text); + $string =~ s/^.*<\/$textstring//; + $intext = 0; + if ($linenr != $starting_linenr) { + print STDERR "there is floating\n"; + } + } + +} + +if ($intext == 1) { + print STDERR "parsing error in $filename $linenr\n"; + exit 1; +} + +} diff --git a/pot/handbook.pot b/pot/handbook.pot new file mode 100644 index 0000000..384c43e --- /dev/null +++ b/pot/handbook.pot @@ -0,0 +1,2413 @@ +# SOME DESCRIPTIVE TITLE. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-04-17 19:46+0000\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: application/x-xml2pot; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: hdbk-operation.docbook:1 +#, no-c-format +msgid "Program operation" +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:4 +#, no-c-format +msgid "Program overview" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:6 +#, no-c-format +msgid "" +"This is how a typical &bibletime; session looks like: " +" The &bibletime; application window You can easily see the different parts " +"of the application. The Bookshelf on the left side is used to open works and " +"to manage your bookmarks. The little \"Mag\" window below the Bookshelf is " +"used to display extra information that is embedded in documents. When you " +"move your mouse over a footnote marker, for example, then the Mag will " +"display the actual content of the footnote. The toolbar gives you quick " +"access to important functions, and the Desk on the right side is where you " +"do your real work." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:17 +#, no-c-format +msgid "" +"Let us now proceed by looking at the different parts of the application " +"individually." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:21 +#, no-c-format +msgid "Parts of the &bibletime; application window" +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:24 +#, no-c-format +msgid "The Bookshelf" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:25 +#, no-c-format +msgid "" +"The Bookshelf lists all installed works, sorted by category and language. It " +"also has a category called \"Bookmarks\". This is where you can store and " +"access your own bookmarks." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:29 hdbk-operation.docbook:81 +#, no-c-format +msgid "Reading works" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:30 +#, no-c-format +msgid "" +"To open a work from the bookshelf for reading, simply click with the " +"left mouse button on the desired category " +"(Bibles, Commentaries, Lexicons, Books, Devotionals or Glossaries) to " +"display its contents. Then just click on one of the works to open it for " +"reading. A read window will appear in the Desk area." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:33 hdbk-operation.docbook:59 +#, no-c-format +msgid "Drag & Drop Works Here" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:34 +#, no-c-format +msgid "" +"If you are reading a certain work, and want to open another work at the " +"passage you are reading, you can use a shortcut. Simply click with the " +"left mouse button on the verse/passage reference " +"(pointer changes to hand) and drag it to the Bookshelf. Drop it on the work " +"you want to open, and it will be opened for reading at the specified " +"location. You can also drag a verse reference into an existing read window, " +"then it will jump to the specified location." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:40 +#, no-c-format +msgid "Additional information about works" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:41 +#, no-c-format +msgid "" +"If you click with the right mouse button on the " +"symbol of a work, you will see a menu with additional entries that are " +"relevant for this work. \"About this work\" opens " +"a window with lots of interesting information about the selected work. " +"\"Unlock this work\" opens a small dialog for " +"encrypted documents, where you can enter the unlock key to access the work. " +"For additional information on locked works, please see this page on the " +"Crosswire Bible Society web site." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:49 hdbk-operation.docbook:115 +#, no-c-format +msgid "Searching in works" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:49 +#, no-c-format +msgid "" +"You can search in a work by clicking with the right mouse button on its symbol and selecting \"Search " +"in work(s)\". By pressing &Shift; and clicking on other works " +"you can select more than one. Then follow the same procedure to open the " +"search dialog. You will be searching in all of these documents. A complete " +"description of the operation of the search features can be found here." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:57 +#, no-c-format +msgid "Working with bookmarks" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:59 +#, no-c-format +msgid "" +"Click with the right mouse button on the bookmark " +"category of the bookshelf and select \"Create new folder\" to create a new bookmark subfolder. You can use normal drag " +"& drop functions to drag verse references from read windows or search " +"results to the bookmark folder, and to rearrange bookmarks between folders." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:63 +#, no-c-format +msgid "" +"You can also import bookmarks from other people or export bookmarks to share " +"them. To do this, open the context menu of the bookmark " +"folder as described above, and select \"Export bookmarks\". This will bring up a dialog box for you to save the bookmark " +"collection. You can import bookmarks in a similar way." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:65 +#, no-c-format +msgid "" +"You can also click with the right on folders and " +"bookmarks to change their names and descriptions." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:70 +#, no-c-format +msgid "The Mag(nifying glass)" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:71 +#, no-c-format +msgid "" +"This little window in the lower left corner of the &bibletime; window is " +"purely passive. Whenever your mouse cursor is located over some text with " +"additional information (e.g., Strong's numbers), then this additional " +"information will be displayed in the Mag, and not in the text itself. Just " +"try it out." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:76 +#, no-c-format +msgid "The Desk" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:77 +#, no-c-format +msgid "" +"The Desk is where the real work with &bibletime; takes place. Here you can " +"open works from the Bookshelf, read them, search in them, and even save your annotations in the personal " +"commentary module (see below)." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:82 +#, no-c-format +msgid "" +"As we have already seen, you can open works for reading simply by clicking on their symbol in " +"the Bookshelf. A read window will open in the Desk's area. Every read window " +"has a toolbar. There you can find tools to navigate in the work that this " +"read window is connected to, as well as history buttons like the ones that " +"you know from your browser." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:87 +#, no-c-format +msgid "Read window placement" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:88 +#, no-c-format +msgid "" +"Of course, you can open multiple works at the same time. There are several " +"possibilities for arranging the read windows on the desk. Please have a look " +"at the entry Window in the main menu. There you can see " +"that you can either control the placement of the read windows completely " +"yourself, or have &bibletime; handle the placement automatically. To achieve " +"this, you have to select one of the automatic placement modes available at " +"WindowArrangement mode. Just try it out, it's simple and works." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:94 +#, no-c-format +msgid "Editing your own commentary" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:95 +#, no-c-format +msgid "" +"To be able to store your own comments about parts of the Bible, you have " +"install a certain work from the library of the Crosswire Bible Society. This work is called " +"\"Personal commentary\"." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:97 +#, no-c-format +msgid "" +"If you open the personal commentary by clicking on its symbol in the " +"Bookshelf with a left mouse button, it opens in " +"read mode. You will not be able to edit it in this mode. Should you wish to " +"write annotations into the personal commentary, you have to open it with the " +"right mouse button and then select Edit " +"this work and then either Plain text" +"(source code editor) or HTML(basic gui wysiwyg " +"editor)." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:101 +#, no-c-format +msgid "" +"If Edit this work is " +"deactivated, please check if you have write permission for the files of the " +"personal commentary." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:105 +#, no-c-format +msgid "" +"Drag&drop works here. Drop a verse reference and the text of the verse " +"will be inserted." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:118 +#, no-c-format +msgid "Searching text in an open read window" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:119 +#, no-c-format +msgid "" +"You can look for a word or phrase in the open read window (e.g. the chapter " +"of a bible that you're reading) just like you are used to from other " +"programs. This function can be reached either by clicking with the " +"right mouse button and selecting " +"Find..., or by using the hotkey &Ctrl;F . Read on to learn how you can " +"search in entire works." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:127 +#, no-c-format +msgid "Accessing the search dialog" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:128 +#, no-c-format +msgid "" +"You can search in a work by clicking with the right mouse button on its symbol in the Bookshelf " +"and selecting Search in work(s). By holding " +"&Shift; or &Ctrl; and clicking on other work's names you can select more " +"than one. Then follow the same procedure to open the search dialog. You will " +"be searching in all of these works at the same time." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:131 +#, no-c-format +msgid "" +"You can also access the search dialog by clicking on " +"Search from the main menu, and " +"selecting the appropriate entry." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:132 +#, no-c-format +msgid "" +"A third possibility to start searches is to click on the search symbol in an " +"open read window." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:136 +#, no-c-format +msgid "Search configuration" +msgstr "" + +#. Tag: screeninfo +#: hdbk-operation.docbook:138 +#, no-c-format +msgid "Search Text Dialog Options Tab" +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:147 +#, no-c-format +msgid "Selecting works" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:148 +#, no-c-format +msgid "" +"At the top of the options tab you will find Choose " +"(works). If you would like to search in multiple works, click on this button " +"and you will be offered a menu where you can select the works you want to " +"search in." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:153 +#, no-c-format +msgid "Using Search Scopes" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:154 +#, no-c-format +msgid "" +"You can narrow the scope of your search to certain parts of the Bible by " +"selecting one of the predefined scopes from the list in Search " +"scope. You can define your own search ranges by clicking the " +"Setup ranges button." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:158 +#, no-c-format +msgid "Basic Search Syntax Introduction" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:159 +#, no-c-format +msgid "" +"Enter search terms separated by spaces. By default the search function will " +"return results that match any of the search terms (OR). To search for all " +"the terms separate the terms by AND." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:160 +#, no-c-format +msgid "" +"You can use wildcards: '*' matches any sequence of characters, while '?' " +"matches any single character. The use of brackets allows you to group your " +"search terms, e.g. '(Jesus OR spirit) AND God'." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:161 +#, no-c-format +msgid "" +"To search text other than the main text, enter the text type followed by " +"':', and then the search term. For example, to search for the Strong's " +"number H8077, use 'strong:H8077'." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:162 +#, no-c-format +msgid "Available text types:" +msgstr "" + +#. Tag: entry +#: hdbk-operation.docbook:164 +#, no-c-format +msgid "Prefix" +msgstr "" + +#. Tag: entry +#: hdbk-operation.docbook:164 +#, no-c-format +msgid "Meaning" +msgstr "" + +#. Tag: entry +#: hdbk-operation.docbook:166 +#, no-c-format +msgid "heading:" +msgstr "" + +#. Tag: entry +#: hdbk-operation.docbook:166 +#, no-c-format +msgid "searches headings" +msgstr "" + +#. Tag: entry +#: hdbk-operation.docbook:167 +#, no-c-format +msgid "footnote:" +msgstr "" + +#. Tag: entry +#: hdbk-operation.docbook:167 +#, no-c-format +msgid "searches footnotes" +msgstr "" + +#. Tag: entry +#: hdbk-operation.docbook:168 +#, no-c-format +msgid "strong:" +msgstr "" + +#. Tag: entry +#: hdbk-operation.docbook:168 +#, no-c-format +msgid "searches Strong's Numbers" +msgstr "" + +#. Tag: entry +#: hdbk-operation.docbook:169 +#, no-c-format +msgid "morph:" +msgstr "" + +#. Tag: entry +#: hdbk-operation.docbook:169 +#, no-c-format +msgid "searches morphology codes" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:171 +#, no-c-format +msgid "" +"BibleTime uses the Lucene search engine to perform your searches. It has " +"many advanced features, and you can read more about it here: http://lucene." +"apache.org/java/docs/queryparsersyntax.html" +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:178 +#, no-c-format +msgid "Search results" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:179 +#, no-c-format +msgid "" +"Here you can see how many instances of the search string were found, sorted " +"by works. Clicking on a work with the right mouse " +"button allows you to copy, save, or print all verses that were found in a " +"certain work at once. This also works when you click on one or more of the " +"references to copy, save or print them. Clicking on a particular reference " +"opens that verse up in context in the preview window below." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:183 +#, no-c-format +msgid "" +"Drag a reference and drop it on a work symbol on the Bookshelf to open the " +"work at that verse in a new read window." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:185 +#, no-c-format +msgid "" +"Drag a reference and drop it on an open read window, and it will jump to " +"that verse." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:186 +#, no-c-format +msgid "Select references and drag them to the Bookshelf to create bookmarks." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:189 +#, no-c-format +msgid "Search result analysis" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:190 +#, no-c-format +msgid "" +"Click on Search analysis to open the search analysis " +"display. This gives a simple graphic analysis of the number of instances the " +"search string was found in each book of the Bible, and you can also save the " +"analysis." +msgstr "" + +#. Tag: screeninfo +#: hdbk-operation.docbook:195 +#, no-c-format +msgid "Search Analysis Dialog Box" +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:209 +#, no-c-format +msgid "The Bookshelf Manager" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:211 +#, no-c-format +msgid "" +"The Bookshelf Manager is a tool to manage your " +"Bookshelf. You can install new works to your Bookshelf, and update or remove " +"existing works from your Bookshelf. Access it by clicking " +"SettingsBookshelf Manager in the main menu." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:214 +#, no-c-format +msgid "Bookshelf path(s) setup" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:216 +#, no-c-format +msgid "" +"Here you can specify where &bibletime; may store your Bookshelf on the " +"harddrive. You can even store it in multiple directories. Default is \"~/." +"sword/\"." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:218 +#, no-c-format +msgid "" +"If you have a sword CD, but do not want to install all the works on the " +"harddisk, but use them directly from the CD, then you can add the path to " +"the CD as one of your bookshelf paths. When you start &bibletime;, it will " +"show all works on the CD if it is present." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:222 +#, no-c-format +msgid "Install/update work(s)" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:224 +#, no-c-format +msgid "" +"With this facility, you can connect to a repository of works (called " +"\"library\"), and transfer one or more works to your local Bookshelf. These " +"libraries may be local (e.g. a Sword CD), or remote (e.g. Crosswire's online " +"repository of Sword modules, or another site offering Sword modules). You " +"can manage your libraries with Add library and " +"Delete library." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:226 +#, no-c-format +msgid "" +"To begin the installation or update process, select a library you want to " +"connect to and a local Bookshelf path to install the work(s) to. Then click " +"on Connect to library. &bibletime; will scan the " +"contents of the library and present you with a list of works that you can " +"add to your Bookshelf, or that you already have installed but are available " +"in a new version in the library, and thus can be updated. Then you can mark " +"all works that you want to install or update, and click on " +"Install works. They will then be transferred to your " +"Bookshelf." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:231 +#, no-c-format +msgid "Remove work(s)" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:233 +#, no-c-format +msgid "" +"This facility allows you to delete one or more of the works from your " +"Bookshelf too free up disk space. Simply mark the items and click on " +"Remove works." +msgstr "" + +#. Tag: title +#: hdbk-operation.docbook:241 +#, no-c-format +msgid "Exporting and Printing" +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:243 +#, no-c-format +msgid "" +"In many places, you can open a context menu by clicking with the " +"right mouse button. Depending on context, it will " +"allow you to Select, Copy (to clipboard), Save or " +"Print text. This works for example in the read " +"windows, when you click on the normal text or the verse reference, or in the " +"search result page when you click on a work or one or more verse references. " +"It is pretty straightforward, so just try it out." +msgstr "" + +#. Tag: para +#: hdbk-operation.docbook:248 +#, no-c-format +msgid "" +"Printing from &bibletime; is rather basic and is intended as a utility. If " +"you are composing a document or presentation containing text from " +"&bibletime; works, we suggest that you use one of the presentation or " +"editing tools on your system to format your document, rather than printing " +"from &bibletime; directly." +msgstr "" + +#. Tag: title +#: hdbk-intro.docbook:1 +#, no-c-format +msgid "Introduction" +msgstr "" + +#. Tag: title +#: hdbk-intro.docbook:3 +#, no-c-format +msgid "About BibleTime" +msgstr "" + +#. Tag: para +#: hdbk-intro.docbook:4 +#, no-c-format +msgid "" +"&bibletime; is a powerful Bible study tool written for the &kde; environment " +"on the Linux operating system. It is based on the Sword library, which provides the back-end " +"functionality for &bibletime;, such as viewing Bible text, searching etc. " +"Sword is the flagship product of the Crosswire Bible Society." +msgstr "" + +#. Tag: para +#: hdbk-intro.docbook:12 +#, no-c-format +msgid "" +"&bibletime; is designed to be used with works encoded in one of the formats " +"supported by the Sword project. Complete information on the supported " +"document formats can be found in the developers section of the Sword Project, " +"Crosswire Bible Society." +msgstr "" + +#. Tag: title +#: hdbk-intro.docbook:18 +#, no-c-format +msgid "Available works" +msgstr "" + +#. Tag: para +#: hdbk-intro.docbook:20 +#, no-c-format +msgid "" +"Over 200 documents in 50 languages are available from the Crosswire Bible Society. These include:" +msgstr "" + +#. Tag: term +#: hdbk-intro.docbook:26 +#, no-c-format +msgid "Bibles" +msgstr "" + +#. Tag: para +#: hdbk-intro.docbook:28 +#, no-c-format +msgid "" +"The full Bible text, with optional things like Strong's Numbers, headings " +"and/or footnotes in the text. Bibles are available in many languages, and " +"include not only modern versions, but also ancient texts like the Codex " +"Leningradensis (\"WLC\", Hebrew), and the Septuagint (\"LXX\", Greek). This " +"is the most advanced section in the library of the Sword project." +msgstr "" + +#. Tag: term +#: hdbk-intro.docbook:35 +#, no-c-format +msgid "Books" +msgstr "" + +#. Tag: para +#: hdbk-intro.docbook:37 +#, no-c-format +msgid "" +"Books available include "Imitation of Christ", "Enuma " +"Elish", and "Josephus: The Complete Works"" +msgstr "" + +#. Tag: term +#: hdbk-intro.docbook:43 +#, no-c-format +msgid "Commentaries" +msgstr "" + +#. Tag: para +#: hdbk-intro.docbook:45 +#, no-c-format +msgid "" +"Commentaries available include classics like John Wesley's \"Notes on the " +"Bible\", Matthew Henry`s commentary and Luther's \"Commentary on Galatians." +"\" With the Personal commentary you can record your own personal notes to " +"sections of the Bible." +msgstr "" + +#. Tag: term +#: hdbk-intro.docbook:52 +#, no-c-format +msgid "Daily devotionals" +msgstr "" + +#. Tag: para +#: hdbk-intro.docbook:54 +#, no-c-format +msgid "" +"Many people appreciate these daily portions from God's word. Available works " +"include Daily Light on the Daily Path, and the Losungen." +msgstr "" + +#. Tag: term +#: hdbk-intro.docbook:60 +#, no-c-format +msgid "Lexicons/Dictionaries" +msgstr "" + +#. Tag: para +#: hdbk-intro.docbook:62 +#, no-c-format +msgid "" +"Lexicons available include: Robinson's Morphological Analysis Codes, Brown-" +"Driver-Briggs Hebrew Lexicon and the International Standard Bible " +"Encyclopedia. Dictionaries available include Strong's Hebrew Bible " +"Dictionary, Strong's Greek Bible Dictionary, Webster's Revised Unabridged " +"Dictionary of the English Language 1913, Nave's Topical Bible." +msgstr "" + +#. Tag: title +#: hdbk-intro.docbook:73 +#, no-c-format +msgid "Motivation" +msgstr "" + +#. Tag: para +#: hdbk-intro.docbook:74 +#, no-c-format +msgid "" +"Our desire is to serve God, and to do our part to help others grow in their " +"relationship with Him. We have striven to make this a powerful, quality " +"program, and still make it simple and intuitive to operate. It is our desire " +"that God be praised, as He is the source of all good things." +msgstr "" + +#. Tag: attribution +#: hdbk-intro.docbook:81 +#, no-c-format +msgid "James 1:17, NASB" +msgstr "" + +#. Tag: para +#: hdbk-intro.docbook:82 +#, no-c-format +msgid "" +"Every good thing given and every perfect gift is from above, coming down " +"from the Father of lights, with whom there is no variation or shifting " +"shadow." +msgstr "" + +#. Tag: para +#: hdbk-intro.docbook:86 +#, no-c-format +msgid "God bless you as you use this program." +msgstr "" + +#. Tag: title +#: hdbk-reference.docbook:2 +#, no-c-format +msgid "Reference" +msgstr "" + +#. Tag: title +#: hdbk-reference.docbook:4 +#, no-c-format +msgid "Main menu reference" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:6 +#, no-c-format +msgid "" +"In this section you can find detailed descriptions of all entries in the " +"main menu of &bibletime;. They are ordered in just the way they appear in " +"&bibletime;, with all the sub-items listed under the major menu item they " +"belong to. You can also see the hotkey of each item;a complete listing of " +"all hotkeys can be found in this " +"section." +msgstr "" + +#. Tag: guimenu +#: hdbk-reference.docbook:12 +#, no-c-format +msgid "File" +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:18 +#, no-c-format +msgid "" +"&Ctrl;Q File Quit" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:23 +#, no-c-format +msgid "" +"Closes BibleTime. BibleTime will ask you if you want to " +"write unsaved changes to disk." +msgstr "" + +#. Tag: guimenu +#: hdbk-reference.docbook:31 +#, no-c-format +msgid "View" +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:35 +#, no-c-format +msgid "View Show Toolbar" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:37 +#, no-c-format +msgid "" +"Toggles Toolbar display. Toggle this setting to turn the " +"main toolbar on or off." +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:42 +#, no-c-format +msgid "" +"F9 View Show Bookshelf" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:47 +#, no-c-format +msgid "" +"Toggles display of the Bookshelf. Toggle this setting to " +"turn the Bookshelf on the left pane on or off. This can be handy if you need " +"more space for the Mag." +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:52 +#, no-c-format +msgid "" +"F8 View Show Mag" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:57 +#, no-c-format +msgid "" +"Toggles display of the Mag(nifying glass). Toggle this " +"setting to turn the Mag on the left pane on or off." +msgstr "" + +#. Tag: guimenu +#: hdbk-reference.docbook:64 +#, no-c-format +msgid "Search" +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:68 +#, no-c-format +msgid "" +"&Alt;&Ctrl;F " +"Search Search in standard bible" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:73 +#, no-c-format +msgid "" +"Opens the Search Dialog to search in the standard Bible only. More works can be added in the Search Dialog." +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:78 +#, no-c-format +msgid "" +"&Ctrl;O Search Search in open work(s)" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:83 +#, no-c-format +msgid "" +"Opens the Search Dialog to search in all open works. More " +"works can be added in the Search Dialog." +msgstr "" + +#. Tag: guimenu +#: hdbk-reference.docbook:91 +#, no-c-format +msgid "Window" +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:95 +#, no-c-format +msgid "" +" Window " +"Save session" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:99 +#, no-c-format +msgid "" +"Directly saves the current session. This will open a " +"context menu where you can select an existing session to save to. It will be " +"overwritten with your current session. See the next item on how to save to a " +"new session." +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:105 +#, no-c-format +msgid "" +"&Alt;&Ctrl;S Window Save as new Session" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:110 +#, no-c-format +msgid "" +"Saves the current session under a new name. This will ask " +"for a new name to save the session to." +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:115 +#, no-c-format +msgid "" +" Window " +"Load session" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:119 +#, no-c-format +msgid "" +"Loads an existing session. This will open a context menu " +"where you can select an existing session to load." +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:124 +#, no-c-format +msgid "" +" Window " +"Delete session" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:128 +#, no-c-format +msgid "" +"Deletes an existing session. This will open a context menu " +"where you can select an existing session that should be deleted." +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:133 +#, no-c-format +msgid "" +"&Ctrl;&Shift;F Window Fullscreen Mode" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:138 +#, no-c-format +msgid "" +"Toggles fullscreen mode. Here you can turn fullscreen mode " +"on or off. In fullscreen mode, &bibletime; will expand to the full size of " +"your monitor screen, using as much space as possible." +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:144 +#, no-c-format +msgid "" +" " +"Window Arrangement mode" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:148 +#, no-c-format +msgid "" +"Controls the basic window arrangement behaviour. In the " +"opening context menu, you can either specify that you want to take care of " +"the window arrangement yourself (Manual mode) or have &bibletime; handle it " +"for you (Automatical modes, just try them out!)." +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:155 +#, no-c-format +msgid "" +"&Ctrl;G Window Tile vertically" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:160 +#, no-c-format +msgid "Tiles all open read windows vertically." +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:164 +#, no-c-format +msgid "" +"&Ctrl;H Window Tile horizontally" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:169 +#, no-c-format +msgid "Tiles all open windows horizontally." +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:173 +#, no-c-format +msgid "" +"&Ctrl;J Window Cascade" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:178 +#, no-c-format +msgid "Cascades all open windows." +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:182 +#, no-c-format +msgid "" +"&Alt;&Ctrl;W Window Close all" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:187 +#, no-c-format +msgid "Closes all open windows." +msgstr "" + +#. Tag: guimenu +#: hdbk-reference.docbook:193 +#, no-c-format +msgid "Settings" +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:197 +#, no-c-format +msgid "" +" Settings Configure toolbars" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:201 +#, no-c-format +msgid "" +"Opens a dialog where you can customize &bibletime;'s toolbar. Just try it out, you can move around the toolbar buttons and even " +"add new ones. Most of the entries available from the main menu can be put on " +"the toolbar as buttons. If you need a certain feature often, you might want " +"to put a button on the main menu, so that you can access it with only one " +"click. Please see this section " +"for further information." +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:208 +#, no-c-format +msgid "" +" Settings " +"Configure &bibletime;" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:212 +#, no-c-format +msgid "" +"Opens &bibletime;'s main configuration dialog. You can " +"configure all kinds of nice settings there to adapt &bibletime; to your " +"needs. Please see this section for " +"details." +msgstr "" + +#. Tag: menuchoice +#: hdbk-reference.docbook:219 +#, no-c-format +msgid "" +"F4 " +"Settings Bookshelf Manager" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:224 +#, no-c-format +msgid "" +"Opens a dialog where you can change your Sword configuration and " +"manage your bookshelf. Please see this section for details." +msgstr "" + +#. Tag: guimenu +#: hdbk-reference.docbook:234 +#, no-c-format +msgid "Help" +msgstr "" + +#. Tag: sect2 +#: hdbk-reference.docbook:234 +#, no-c-format +msgid "&help.menu.documentation;" +msgstr "" + +#. Tag: title +#: hdbk-reference.docbook:242 +#, no-c-format +msgid "Toolbar reference" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:244 +#, no-c-format +msgid "" +"Please review the preceding section for an explanation of the buttons that you find on the toolbar. You " +"can also move the cursor over a button and wait a few seconds to activate the button's tooltip with a short description." +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:248 +#, no-c-format +msgid "" +"You can adapt the toolbar to your needs. Please use the following entry in " +"the main menu: " +" Settings " +"Configure toolbars " +"Configure toolbars Please see this section for detailed instructions." +msgstr "" + +#. Tag: title +#: hdbk-reference.docbook:264 +#, no-c-format +msgid "HotKeys index" +msgstr "" + +#. Tag: para +#: hdbk-reference.docbook:266 +#, no-c-format +msgid "" +"This is index of all hotkeys and their corresponding description in the " +"handbook. The hotkeys are sorted (roughly) alphabetical. If you want to " +"directly find out which hotkey a certain menu item has, you can either look " +"at the entry itelf in &bibletime; (as it always shows the hotkey), or you " +"can look it up in this section." +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:278 +#, no-c-format +msgid "Hotkey" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:279 +#, no-c-format +msgid "Description" +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:284 +#, no-c-format +msgid "&Alt;Left" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:285 +#, no-c-format +msgid "Moves back in the history of read windows." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:288 +#, no-c-format +msgid "&Alt;Right" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:289 +#, no-c-format +msgid "Moves forward in the history of read windows." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:292 +#, no-c-format +msgid "&Alt;&Ctrl;F" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:293 +#, no-c-format +msgid "" +" " +"Search Search in default bible equivalent; opens the search dialog to " +"search in the default bible." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:299 +#, no-c-format +msgid "&Alt;&Ctrl;G" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:300 +#, no-c-format +msgid "" +"WindowArrangement mode Auto-tile vertically " +"equivalent; toggle automatic window tiling." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:305 +#, no-c-format +msgid "&Alt;&Ctrl;H" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:306 +#, no-c-format +msgid "" +"WindowArrangement mode Auto-tile horizontally " +"equivalent; toggle automatic window tiling." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:311 +#, no-c-format +msgid "&Alt;&Ctrl;J" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:312 +#, no-c-format +msgid "" +"WindowArrangement mode Auto-cascade " +"equivalent; toggle automatic window cascading." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:317 +#, no-c-format +msgid "&Alt;&Ctrl;M" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:318 +#, no-c-format +msgid "" +"WindowArrangement mode Manual mode equivalent; " +"toggle manual window placement." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:323 +#, no-c-format +msgid "&Alt;&Ctrl;S" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:324 +#, no-c-format +msgid "" +" " +"Window Save as new session equivalent; saves current layout as new session." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:330 +#, no-c-format +msgid "&Alt;&Ctrl;W" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:331 +#, no-c-format +msgid "" +" " +"Window Close all equivalent; closes all open windows." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:337 +#, no-c-format +msgid "&Ctrl;-" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:338 +#, no-c-format +msgid "Zoom out. This decreases the font size of read windows." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:341 +#, no-c-format +msgid "&Ctrl;+" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:342 +#, no-c-format +msgid "Zoom in. This increases the font size of read windows." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:345 +#, no-c-format +msgid "&Ctrl;A" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:346 +#, no-c-format +msgid "Select all. This selects all text in read windows." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:349 +#, no-c-format +msgid "&Ctrl;C" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:350 +#, no-c-format +msgid "Copy. This copies the selected text to the clipboard." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:353 +#, no-c-format +msgid "&Ctrl;F" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:354 +#, no-c-format +msgid "Search. This lets you search within the text of a read window." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:357 +#, no-c-format +msgid "&Ctrl;J" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:358 +#, no-c-format +msgid "" +" " +"Window Cascade equivalent; cascades all open windows." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:364 +#, no-c-format +msgid "&Ctrl;G" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:365 +#, no-c-format +msgid "" +" " +"Window Tile vertically equivalent; tiles all open windows vertically." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:371 +#, no-c-format +msgid "&Ctrl;H" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:372 +#, no-c-format +msgid "" +" " +"Window Tile horizontally equivalent; tiles all open windows horizontally." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:378 +#, no-c-format +msgid "&Ctrl;O" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:379 +#, no-c-format +msgid "" +" " +"Search Search in open work(s) equivalent; opens the search dialog to search in all " +"currently opened works." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:385 +#, no-c-format +msgid "&Ctrl;Q" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:386 +#, no-c-format +msgid "" +" File Quit equivalent; " +"closes &bibletime;." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:392 +#, no-c-format +msgid "&Ctrl;W" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:393 +#, no-c-format +msgid "Closes the current window." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:396 +#, no-c-format +msgid "&Ctrl;X" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:397 +#, no-c-format +msgid "Moves a bible or commentary read window to the next chapter." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:400 +#, no-c-format +msgid "&Ctrl;Y" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:401 +#, no-c-format +msgid "Moves a bible or commentary read window to the next book." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:404 +#, no-c-format +msgid "&Ctrl;V" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:405 +#, no-c-format +msgid "Moves a read window to the next verse or entry." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:410 +#, no-c-format +msgid "&Ctrl;&Shift;F" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:411 +#, no-c-format +msgid "" +" " +"Window Fullscreen mode equivalent; toggles fullscreen mode." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:417 +#, no-c-format +msgid "&Ctrl;&Shift;X" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:418 +#, no-c-format +msgid "Moves a bible or commentary read window to the previous chapter." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:421 +#, no-c-format +msgid "&Ctrl;&Shift;Y" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:422 +#, no-c-format +msgid "Moves a bible or commentary read window to the previous book." +msgstr "" + +#. Tag: keycombo +#: hdbk-reference.docbook:425 +#, no-c-format +msgid "&Ctrl;&Shift;V" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:426 +#, no-c-format +msgid "Moves a read window to the previous verse or entry." +msgstr "" + +#. Tag: keycap +#: hdbk-reference.docbook:430 +#, no-c-format +msgid "F1" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:431 +#, no-c-format +msgid "" +" Help Handbook equivalent; opens the handbook." +msgstr "" + +#. Tag: keycap +#: hdbk-reference.docbook:437 +#, no-c-format +msgid "F2" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:438 +#, no-c-format +msgid "" +" Help BibleStudy Howto equivalent; opens the BibleStudy Howto." +msgstr "" + +#. Tag: keycap +#: hdbk-reference.docbook:444 +#, no-c-format +msgid "F3" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:445 +#, no-c-format +msgid "" +" Help Daily tip equivalent; opens the tip of the day." +msgstr "" + +#. Tag: keycap +#: hdbk-reference.docbook:451 +#, no-c-format +msgid "F4" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:452 +#, no-c-format +msgid "" +" Settings Bookshelf Manager equivalent; opens the Bookshelf Manager." +msgstr "" + +#. Tag: keycap +#: hdbk-reference.docbook:458 +#, no-c-format +msgid "F8" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:459 +#, no-c-format +msgid "" +" " +"View Show Bookshelf equivalent; toggles display of the Bookshelf." +msgstr "" + +#. Tag: keycap +#: hdbk-reference.docbook:465 +#, no-c-format +msgid "F9" +msgstr "" + +#. Tag: entry +#: hdbk-reference.docbook:466 +#, no-c-format +msgid "" +" " +"View Show mag equivalent; toggles display of the mag(nifying glass)." +msgstr "" + +#. Tag: title +#: index.docbook:21 +#, no-c-format +msgid "The &bibletime; handbook" +msgstr "" + +#. Tag: author +#: index.docbook:25 +#, no-c-format +msgid "Fred Saalbach" +msgstr "" + +#. Tag: author +#: index.docbook:30 +#, no-c-format +msgid "Jeffrey Hoyt" +msgstr "" + +#. Tag: author +#: index.docbook:35 +#, no-c-format +msgid "Martin Gruner" +msgstr "" + +#. Tag: trans_comment +#: index.docbook:42 +#, no-c-format +msgid "ROLES_OF_TRANSLATORS" +msgstr "" + +#. Tag: holder +#: index.docbook:46 +#, no-c-format +msgid "the &bibletime; team" +msgstr "" + +#. Tag: para +#: index.docbook:50 +#, no-c-format +msgid "The &bibletime; handbook is part of &bibletime;." +msgstr "" + +#. Tag: para +#: index.docbook:59 +#, no-c-format +msgid "&bibletime; is a powerful Bible study tool for &kde;." +msgstr "" + +#. Tag: keyword +#: index.docbook:65 +#, no-c-format +msgid "KDE" +msgstr "" + +#. #-#-#-#-# index.docbook.pot (PACKAGE VERSION) #-#-#-#-# +#. Tag: keyword +#. #-#-#-#-# hdbk-start.docbook.pot (PACKAGE VERSION) #-#-#-#-# +#. Tag: screen +#: index.docbook:66 hdbk-start.docbook:19 +#, no-c-format +msgid "bibletime" +msgstr "" + +#. Tag: keyword +#: index.docbook:67 +#, no-c-format +msgid "sword" +msgstr "" + +#. Tag: keyword +#: index.docbook:68 +#, no-c-format +msgid "crosswire" +msgstr "" + +#. Tag: keyword +#: index.docbook:69 +#, no-c-format +msgid "help dialog" +msgstr "" + +#. Tag: title +#: hdbk-config.docbook:1 +#, no-c-format +msgid "Configuring &bibletime;" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:3 +#, no-c-format +msgid "" +"In this section you find a description of the different possibilities to " +"configure &bibletime;: The Configure " +"BibleTime Dialog and the Configure Toolbars dialog. Both can be accessed under " +"Settings in the main menu." +msgstr "" + +#. Tag: title +#: hdbk-config.docbook:8 +#, no-c-format +msgid "Configure BibleTime Dialog" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:10 +#, no-c-format +msgid "" +"The &bibletime; user interface can be customized in many ways depending on " +"your needs. You can access the configuration dialog by selecting " +"Settings Configure " +"&bibletime;." +msgstr "" + +#. Tag: guimenu +#: hdbk-config.docbook:15 +#, no-c-format +msgid "Display" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:17 +#, no-c-format +msgid "" +"The startup behavior can be customized. Select from the following options:" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:19 +#, no-c-format +msgid "Show tip of the day" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:20 +#, no-c-format +msgid "Show startup logo" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:23 +#, no-c-format +msgid "" +"Display templates define the rendering of text (colors, size etc.). Various " +"built-in templates are available. If you select one, you will see a preview " +"on the right pane." +msgstr "" + +#. Tag: guimenu +#: hdbk-config.docbook:28 +#, no-c-format +msgid "Languages" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:30 +#, no-c-format +msgid "" +"Here you can specify which language should be used for the biblical " +"booknames. Set this to your native language, if it is available, and you'll " +"feel at home." +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:33 +#, no-c-format +msgid "" +"By default, &bibletime; uses the &kde; general display font which can be " +"specified in the &kcontrolcenter;. You can override this font if neccessary. " +"Some languages require special fonts to be displayed correctly, and this " +"dialog allows you to specify a custom font for each language." +msgstr "" + +#. Tag: phrase +#: hdbk-config.docbook:41 +#, no-c-format +msgid "Options Dialog - fonts" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:42 +#, no-c-format +msgid "The Options dialog - Fonts." +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:45 +#, no-c-format +msgid "" +"&bibletime; can now use all fonts supported by KDE/QT. As long as the works " +"you are interested in display correctly nothing needs to be done here. If a " +"work only displays as a series of question marks (??????) or empty boxes, " +"then you know that the standard KDE display font does not contain the " +"characters used in this work." +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:51 +#, no-c-format +msgid "" +"To correct this, choose this work's language from the drop down menu. Select " +"the use custom font checkbox. Now select a font. For example, a font that " +"supports many languages is Code2000. If no installed font can display the " +"work you are interested in, try installing the &kde; localization package " +"for that language." +msgstr "" + +#. Tag: title +#: hdbk-config.docbook:57 +#, no-c-format +msgid "Installing fonts" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:58 +#, no-c-format +msgid "" +"Detailed font installation instructions are outside the scope of this " +"handbook. &kde;'s KControl Center contains an excellent and easy to use font installation module. " +"Please read its " +"documentation. For further information you might want to refer to " +"the Unicode HOWTO." +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:66 +#, no-c-format +msgid "" +"If you use a small font like Clearlyu (about 22kb), &bibletime; will run " +"faster than with a large font like " +"Bitstream Cyberbit (about 12Mb)." +msgstr "" + +#. Tag: title +#: hdbk-config.docbook:71 +#, no-c-format +msgid "Obtaining Fonts" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:72 +#, no-c-format +msgid "Fonts can be obtained from a number of sources:" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:74 +#, no-c-format +msgid "Your Linux distribution." +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:75 +#, no-c-format +msgid "Your distribution's localization packages." +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:76 +#, no-c-format +msgid "" +"An existing Microsoft Windows " +"installation on the same computer." +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:77 +#, no-c-format +msgid "A font collection, such as are available from Adobe or Bitstream." +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:78 +#, no-c-format +msgid "Online font collections." +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:81 +#, no-c-format +msgid "" +"Unicode fonts support more characters than other fonts, and some of these " +"fonts are available at no charge. None of available fonts includes all " +"characters defined in the Unicode standard, so you may want to use different " +"fonts for different languages." +msgstr "" + +#. Tag: title +#: hdbk-config.docbook:87 +#, no-c-format +msgid "Unicode Fonts" +msgstr "" + +#. Tag: ulink +#: hdbk-config.docbook:91 +#, no-c-format +msgid "Code2000" +msgstr "" + +#. Tag: entry +#: hdbk-config.docbook:92 +#, no-c-format +msgid "" +"Perhaps the best free Unicode font, covering a wide range of characters." +msgstr "" + +#. Tag: ulink +#: hdbk-config.docbook:94 +#, no-c-format +msgid "SIL unicode fonts" +msgstr "" + +#. Tag: entry +#: hdbk-config.docbook:96 +#, no-c-format +msgid "Excellent unicode fonts from the Summer Institute of Linguistics." +msgstr "" + +#. Tag: ulink +#: hdbk-config.docbook:98 +#, no-c-format +msgid "FreeFont" +msgstr "" + +#. Tag: entry +#: hdbk-config.docbook:99 +#, no-c-format +msgid "A new free unicode font initiative." +msgstr "" + +#. Tag: ulink +#: hdbk-config.docbook:101 +#, no-c-format +msgid "Crosswire's font directory" +msgstr "" + +#. Tag: entry +#: hdbk-config.docbook:102 +#, no-c-format +msgid "Several fonts available from the Crosswire Bible Society Ftp site." +msgstr "" + +#. Tag: ulink +#: hdbk-config.docbook:104 +#, no-c-format +msgid "Bitstream CyberBit" +msgstr "" + +#. Tag: entry +#: hdbk-config.docbook:105 +#, no-c-format +msgid "" +"Covers almost the entire range of Unicode, but might slow &bibletime; down " +"because of its size." +msgstr "" + +#. Tag: entry +#: hdbk-config.docbook:107 +#, no-c-format +msgid "Clearlyu" +msgstr "" + +#. Tag: entry +#: hdbk-config.docbook:108 +#, no-c-format +msgid "Included in some distributions. Contains European, Greek, Hebrew, Thai." +msgstr "" + +#. Tag: ulink +#: hdbk-config.docbook:110 +#, no-c-format +msgid "Caslon, Monospace, Cupola, Caliban" +msgstr "" + +#. Tag: entry +#: hdbk-config.docbook:111 +#, no-c-format +msgid "Partial coverage, see information on linked site." +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:116 +#, no-c-format +msgid "" +"There are good Unicode font lists on the net, as the one by Christoph Singer " +"(Multilingual Unicode " +"TrueType Fonts in the Internet), or the one by Alan Wood ( Unicode character " +"ranges and the Unicode fonts that support them)." +msgstr "" + +#. Tag: guimenu +#: hdbk-config.docbook:127 +#, no-c-format +msgid "Desk" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:129 +#, no-c-format +msgid "" +"Many features provided by the Sword backend can now be customized in " +"&bibletime;. These features are documented right in the dialog. You also " +"have the possibility to specify standard works that should be used when no " +"specific work is specified in a reference. An example: The standard Bible is " +"used to display the content of crossreferences in the Bible. When you hover " +"over then, the Mag will show the content of the verses referred to, " +"according to the standard Bible you specified." +msgstr "" + +#. Tag: guimenu +#: hdbk-config.docbook:138 +#, no-c-format +msgid "HotKeys" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:140 +#, no-c-format +msgid "" +"HotKeys are special key commands that can be used in the place of the menu " +"items and icons. A number of &bibletime;'s commands have predefined HotKeys " +"(see this section for a " +"complete listing). Most of &bibletime;'s commands can be assigned HotKeys " +"here. This is very helpful to quickly access the functions that you need the " +"most." +msgstr "" + +#. Tag: title +#: hdbk-config.docbook:151 +#, no-c-format +msgid "Configure Toolbars dialog" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:152 +#, no-c-format +msgid "" +"You can adapt the toolbar to your needs. Please use the following entry in " +"the main menu:" +msgstr "" + +#. Tag: menuchoice +#: hdbk-config.docbook:155 +#, no-c-format +msgid "" +" Settings Configure toolbars" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:162 +#, no-c-format +msgid "Configure toolbars" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:166 +#, no-c-format +msgid "" +"You will see this dialog, which allows adding and removing buttons from the " +"main toolbar of &bibletime;. The order of the buttons can also be changed." +msgstr "" + +#. Tag: phrase +#: hdbk-config.docbook:173 +#, no-c-format +msgid "Toolbar configuration dialog" +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:174 +#, no-c-format +msgid "The Toolbar configuration dialog." +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:176 +#, no-c-format +msgid "" +"Use the 4 buttons in the middle of the window to move buttons to the " +"toolbar, away from the toolbar or to sort them on the toolbar according to " +"your preference." +msgstr "" + +#. Tag: para +#: hdbk-config.docbook:179 +#, no-c-format +msgid "" +"Please see this " +"section for further information." +msgstr "" + +#. Tag: title +#: hdbk-start.docbook:1 +#, no-c-format +msgid "Starting &bibletime;" +msgstr "" + +#. Tag: title +#: hdbk-start.docbook:3 +#, no-c-format +msgid "How to start &bibletime;" +msgstr "" + +#. Tag: title +#: hdbk-start.docbook:5 +#, no-c-format +msgid "Starting &bibletime; from KDE" +msgstr "" + +#. Tag: para +#: hdbk-start.docbook:7 +#, no-c-format +msgid "" +"&bibletime; is a &kde; program and is integrated with the &kde; desktop. You " +"can launch &bibletime; from the &kde; Start Menu in the Applications group " +"with this icon:" +msgstr "" + +#. Tag: phrase +#: hdbk-start.docbook:13 +#, no-c-format +msgid "&bibletime; start icon" +msgstr "" + +#. Tag: para +#: hdbk-start.docbook:17 +#, no-c-format +msgid "" +"&bibletime; can also be launched from a terminal command prompt. To launch " +"&bibletime;, open a terminal window and type:" +msgstr "" + +#. Tag: title +#: hdbk-start.docbook:24 +#, no-c-format +msgid "Other window managers" +msgstr "" + +#. Tag: para +#: hdbk-start.docbook:26 +#, no-c-format +msgid "" +"&bibletime; can be used with other window managers such as Gnome, BlackBox " +"or Sawfish, providing &kde; is already installed on your computer. If your " +"&kde; is installed in /opt/kde, then the start-up command in a terminal " +"would be:" +msgstr "" + +#. Tag: screen +#: hdbk-start.docbook:30 +#, no-c-format +msgid "" +"export KDEDIR=/opt/kde #your KDE directory\n" +"bibletime" +msgstr "" + +#. Tag: title +#: hdbk-start.docbook:34 +#, no-c-format +msgid "Startup customization" +msgstr "" + +#. Tag: para +#: hdbk-start.docbook:36 +#, no-c-format +msgid "" +"From a terminal you can use &bibletime; to open a random verse in the " +"default bible: \n" +"bibletime --open-default-bible \"<random>\"\n" +" To open at a given passage like John 3:16, use: \n" +"bibletime --open-default-bible \"John 3:16\"\n" +" You can also use booknames in your current bookname language." +msgstr "" + +#. Tag: title +#: hdbk-start.docbook:48 +#, no-c-format +msgid "Startup sequence" +msgstr "" + +#. Tag: para +#: hdbk-start.docbook:50 +#, no-c-format +msgid "" +"As &bibletime; launches you may see the following screens before the main " +"&bibletime; window opens:" +msgstr "" + +#. Tag: interface +#: hdbk-start.docbook:56 +#, no-c-format +msgid "Bookshelf Manager" +msgstr "" + +#. Tag: para +#: hdbk-start.docbook:57 +#, no-c-format +msgid "" +"Modifies your Bookshelf. This dialog lets you modify your " +"Bookshelf, add or delete works from your system. It will only be shown if no " +"default Bookshelf can be found. Please see this sectionfor further details. If you start off " +"with an empty Bookshelf, it will be helpful to install at least one Bible, " +"Commentary, Lexicon and one Book to get to know &bibletime;'s basic features " +"quickly." +msgstr "" + +#. Tag: interface +#: hdbk-start.docbook:66 +#, no-c-format +msgid "Configure &bibletime; dialog" +msgstr "" + +#. Tag: para +#: hdbk-start.docbook:67 +#, no-c-format +msgid "" +"Customizes &bibletime;. This dialog lets you adapt " +"&bibletime; to your needs. Please see the " +"detailed description of this dialog." +msgstr "" + +#. Tag: interface +#: hdbk-start.docbook:73 +#, no-c-format +msgid "Tip of the Day" +msgstr "" + +#. Tag: para +#: hdbk-start.docbook:74 +#, no-c-format +msgid "" +"These nifty little tips give you helpful hints for working more efficiently " +"with &bibletime;, and also a few quotations from the Bible." +msgstr "" diff --git a/pot/howto.pot b/pot/howto.pot new file mode 100644 index 0000000..3e8d8a7 --- /dev/null +++ b/pot/howto.pot @@ -0,0 +1,1924 @@ +# SOME DESCRIPTIVE TITLE. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-04-17 19:46+0000\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: application/x-xml2pot; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: index.docbook:19 +#, no-c-format +msgid "The Biblestudy HowTo" +msgstr "" + +#. Tag: author +#: index.docbook:22 +#, no-c-format +msgid "Bob Harman" +msgstr "" + +#. Tag: trans_comment +#: index.docbook:28 +#, no-c-format +msgid "ROLES_OF_TRANSLATORS" +msgstr "" + +#. Tag: holder +#: index.docbook:32 +#, no-c-format +msgid "The team of &bibletime;, info@bibletime.info" +msgstr "" + +#. Tag: holder +#: index.docbook:35 +#, no-c-format +msgid "Bob Harman" +msgstr "" + +#. Tag: para +#: index.docbook:38 +#, no-c-format +msgid "" +"The copyright of this text is held by the author Bob Harman. The text was " +"adapted for publication with BibleTime by Fred Saalbach." +msgstr "" + +#. Tag: para +#: index.docbook:42 +#, no-c-format +msgid "" +"Non exclusive serial rights for this distribution of this document with the " +"&bibletime; software have been made. Redistribution as part of the Bibletime " +"software without modification and limited reproduction as provided by the " +"\"fair use\" provisions of the US copyright code are also permitted." +msgstr "" + +#. Tag: para +#: index.docbook:48 +#, no-c-format +msgid "" +"For questions regarding the use of this material contact Bob Harman c/o New " +"Covenant Church 1079 Big Bethel Rd. Hampton VA 23666 USA " +"ncc@ncchampton.org." +msgstr "" + +#. Tag: para +#: index.docbook:52 +#, no-c-format +msgid "" +"Scripture quotes are from the New American Standard Bible unless otherwise " +"indicated" +msgstr "" + +#. Tag: title +#: index.docbook:61 +#, no-c-format +msgid "Abstract" +msgstr "" + +#. Tag: para +#: index.docbook:62 +#, no-c-format +msgid "" +"The Biblestudy HowTo is a guide for studying the " +"Bible." +msgstr "" + +#. Tag: para +#: index.docbook:65 +#, no-c-format +msgid "" +"It is the hope of the &bibletime; team that this HowTo will provoke the " +"readers to study the scriptures to see what they say. This particular study " +"guide has been chosen as it takes care not to advocate any particular " +"denominational doctrine. We expect you to read and study the scriptures to " +"understand what they say. If you start with the attitude that you want to " +"have the Lord sow his word in your heart He will not disappoint you." +msgstr "" + +#. Tag: keyword +#: index.docbook:75 +#, no-c-format +msgid "Bible" +msgstr "" + +#. #-#-#-#-# index.docbook.pot (PACKAGE VERSION) #-#-#-#-# +#. Tag: keyword +#. #-#-#-#-# how2-basics.docbook.pot (PACKAGE VERSION) #-#-#-#-# +#. Tag: title +#: index.docbook:76 how2-basics.docbook:49 +#, no-c-format +msgid "Study" +msgstr "" + +#. Tag: keyword +#: index.docbook:77 +#, no-c-format +msgid "HowTo" +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:1 +#, no-c-format +msgid "Rules of Bible Interpretation (Hermeneutics)" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:2 +#, no-c-format +msgid "" +"We already learned about the \"3 Cs\": content, context, cross-reference. We " +"want to expand that now by delving briefly into biblical hermeneutics, whose " +"goal is to discover the meaning intended by the original author (and " +"Author!). While many applications of a passage are valid, only one " +"interpretation is valid. The scripture itself says this by saying that no " +"scripture is of any private interpretation (2 Pe.1:20 KJV Knowing " +"this first, that no prophesy of scripture is of any private interpretation.). Certain rules are helps toward discovering the correct meaning; by " +"ignoring these rules people have brought much trouble on themselves and " +"their followers. 2 Pe.3:16 ...in which are some things hard to " +"understand, which the untaught and unstable distort, as they do also the " +"rest of the Scriptures, to their own destruction." +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:11 +#, no-c-format +msgid "" +"How do we go about discovering the intended meaning of a passage? Let's say " +"your attention has been drawn to a particular verse whose meaning is not " +"clear to you. How do you study it out? Keep these rules in mind:" +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:14 +#, no-c-format +msgid "Rule 1 - Interpret according to the exact meaning of the words." +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:15 +#, no-c-format +msgid "" +"The more precise we can be with the exact, original meaning of the words the " +"better our interpretation will be. Try to find the exact meaning of the key " +"words by following these steps:" +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:20 +#, no-c-format +msgid "Definition" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:21 +#, no-c-format +msgid "" +"Look up the definition in a Greek or Hebrew dictionary. For verbs, the verb " +"tense is also crucial." +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:26 how2-basics.docbook:107 +#, no-c-format +msgid "Cross-reference" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:27 +#, no-c-format +msgid "" +"Compare scripture with scripture. Seeing how the same Greek or Hebrew word " +"(not the English word) is used in scripture may clarify or throw new light " +"on the definition. How does the same author use this word elsewhere? Other " +"authors? Your reference tools may give you uses of the word in non-biblical " +"documents, as well. Why do we have to go to the original languages; why " +"isn't the English word good enough? Because more than one greek " +"word may be translated into the same english word, and the greek words may " +"have different shades of meaning." +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:37 +#, no-c-format +msgid "Example 1A" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:38 +#, no-c-format +msgid "" +"Jn.20:17 \"Touch me not\" (KJV) sounds harsh, doesn't " +"it? Sounds like Jesus doesn't want to be touched now that He is risen, that " +"He is too holy or something. But that doesn't seem right, so let's look it " +"up in Spiros Zodhiates' The Complete Word Study New Testament (AMG Publishers, 1991)." +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:42 +#, no-c-format +msgid "" +"Definition: Turning to John 20:17, above the word \"Touch\" we see \"pim680." +"\" The letters give us a code for the part of speech, and the number refers " +"to Strong's dictionary reference. Let's look up the definition (p. 879). " +"\"680. Haptomai; from hapto (681), touch. Refers to such handling of an " +"object as to exert a modifying influence upon it... Distinguished from " +"pselaphao (5584), which actually only means to touch the surface of " +"something. \" Now look up \"pim.\" The grammar codes in Zodhiates come right " +"after Revelation; on p. 849 we see that pim stands for \"present imperative " +"active (80)\". On p.857, \"Present Imperative. In the active voice, it may " +"indicate a command to do something in the future which involves continuous " +"or repeated action or, when it is negated, a command to stop doing " +"something. \" This is a negative command, so it is to stop doing something " +"that is already occuring. So, what have we found?" +msgstr "" + +#. Tag: emphasis +#: how2-interpretation.docbook:50 +#, no-c-format +msgid "" +"Mary is already clinging to Jesus, and he is saying to stop holding him!" +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:53 +#, no-c-format +msgid "Example 1B" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:54 +#, no-c-format +msgid "" +"In James 5:14, Elders are told to pray and anoint someone who is " +"sick. What is this anointing?" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:55 +#, no-c-format +msgid "" +"Definition of aleipho (218) - \"to oil\" (Strong's); but we also have " +"another Greek word translated \"anoint\", chrio (5548) - \"to smear or rub " +"with oil, i.e. to consecrate to an office or religious service\" (Strong's). " +"Since it's a verb, consider the tense also, \"apta\" aorist participle " +"active. \"The aorist participle expresses simple action, as opposed to " +"continuous action...When its relaitonship to the main verb is temporal, it " +"usually signifies action prior to that of the main verb.\" (Zodhiates p.851)" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:62 +#, no-c-format +msgid "Cross-references for aleipho:" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:64 +#, no-c-format +msgid "Mt.6:17 But you, when you fast, anoint your head" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:65 +#, no-c-format +msgid "Mk.16:1 [the women] brought spices that they might come and anoint Him." +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:66 +#, no-c-format +msgid "" +"Mk.6:13 And they were...anointing with oil many sick people and healing them." +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:67 +#, no-c-format +msgid "Lk.7:38 [...] kissing His feet and anointing them with the perfume" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:68 +#, no-c-format +msgid "" +"Jn.12:3 Mary [...] anointed the feet of Jesus, and wiped them with her hair" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:72 +#, no-c-format +msgid "Cross-references of chrio:" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:74 +#, no-c-format +msgid "" +"Lk.4:18 The Spirit of the Lord is upon me, because He has anointed me " +"to preach [...]" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:75 +#, no-c-format +msgid "Acts 4:27 Jesus, whom Thou hast anointed" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:76 +#, no-c-format +msgid "Acts 10:38 God anointed Jesus with the Holy Ghost and power" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:77 +#, no-c-format +msgid "2 Cor.1:21 Now He who...anointed us is God" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:82 +#, no-c-format +msgid "" +"So what's the difference between aleipho and chrio? Look back over the cross-" +"references and the definitions, and sum up the difference: "" +"aleipho" is a practical use of oil and "chrio" is a " +"spiritual" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:85 +#, no-c-format +msgid "" +"As an illustration (although the word is not used) of the practical use of " +"oil at that time, when the good Samaritan cared for the man beat up by " +"robbers he poured oil and wine in the wound. So oil had a medicinal use in " +"Jesus' day." +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:89 +#, no-c-format +msgid "" +"Now let's apply what we just learned by this word study to James 5:14 " +"\"Is any among you sick? Let him call for the elders of the " +"church; and let them pray over him, anointing him with oil in the name of " +"the Lord.\" Is \"anointing\" spiritual or practical? Practical!" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:92 +#, no-c-format +msgid "" +"And the tense in Greek, the aorist participle, would be better translated " +"\"having anointed,\" so the order is the anointing first, then the prayer " +"(\"in the name of the Lord\"refers to the prayer, not the anointing). James " +"5 is saying that the elders should give the sick person medicine and pray " +"for him in the name of the Lord. Doesn't that express a beautiful balance of " +"practical and spiritual in our God!" +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:103 +#, no-c-format +msgid "Rule 2 - Interpret within the biblical context" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:105 +#, no-c-format +msgid "" +"Interpret scripture in harmony with other scripture. What do the verses on " +"each side say? What is the theme of the chapter? the book? Does your " +"interpretation fit with these? If not, it is flawed. Usually, the context " +"supplies what we need to correctly interpret the passage. Context is key. If " +"confusion remains as to the meaning after we have interpreted the text " +"within its context, we have to look further." +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:110 +#, no-c-format +msgid "Example 2A" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:111 +#, no-c-format +msgid "" +"In a previous lesson we considered Jn.3:5 \"born of water and the " +"Spirit.\" In context, what is the water under discussion here?" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:113 +#, no-c-format +msgid "" +"Water baptism is not under discussion here, which would be a big switch from " +"the subject being discussed by Jesus and Nicodemus. Watch out for a sudden " +"change of topic, it may be a clue that your interpretation has been " +"derailed! The water is the amniotic fluid, \"born of water\" = natural birth." +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:117 +#, no-c-format +msgid "Example 2B" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:118 +#, no-c-format +msgid "" +"1 Cor.14:34 Let the women keep silent in the churches has to " +"be taken within the biblical context of 1 Cor.11:5 every woman [...] " +"while praying or prophesying [...]" +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:121 +#, no-c-format +msgid "Example 2C" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:122 +#, no-c-format +msgid "" +"Acts 2:38 And Peter said to them, "Repent, and let each of you " +"be baptized in the name of Jesus Christ for the forgiveness of your sins " +"[...]". Is this teaching baptismal regeneration? If this was " +"the only verse of scripture we had, we would have to conclude that. But in " +"the light of the clear teaching elsewhere that regeneration happens by faith " +"in Christ, we have to interpret it otherwise. Peter is urging baptism as a " +"way for his hearers to respond to the gospel. If baptism were the pathway to " +"being born again, how could Paul write 1 Cor.1:17 \"For Christ did " +"not send me to baptize, but to preach the gospel\"?" +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:134 +#, no-c-format +msgid "Rule 3 - Interpret within the historical and cultural context" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:135 +#, no-c-format +msgid "" +"At first we are not asking What does it mean to me? but " +"What did it mean to the original readers?; later we can ask, " +"What does it mean to me?. We have to take into account the " +"historical and cultural background of the author and the recipients." +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:139 +#, no-c-format +msgid "Example 3A" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:139 +#, no-c-format +msgid "" +"3 days & 3 nights (Mt.12:40) have led some to come up " +"with a \"Wednesday crucifixion theory,\" esp. the cult of Armstrongism. How " +"could Jesus die on Friday afternoon and rise Sunday morning yet \"be raised " +"on the third day\" (Mt.16:21)? Exact meanings of \"three\" or \"days\" won't " +"help explain the apparent contradiction." +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:144 +#, no-c-format +msgid "" +"We need an historical tidbit: Jews counted any part of a day as a full day, " +"as we would count buckets of water (if there were six and one-half buckets " +"of water, we would say there were 7 buckets of water even if one was only " +"partly full). So to the Jewish mind, any part of a day counted as a full " +"day, and days started at 6 p.m. and ended at 6 p.m. Friday from 3 p.m. to 6 " +"p.m. = day 1. Friday 6 p.m. to Saturday 6 p.m. = day 2. Saturday 6 p.m. to " +"Sunday 5 or so a.m. = day 3. Interpreting within the cultural context keeps " +"us out of trouble." +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:151 +#, no-c-format +msgid "Example 3B" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:151 +#, no-c-format +msgid "" +"Gen.15:7-21. The historical context is that cutting animals in two and then " +"walking between the pieces was the normal way of entering a contract in " +"Abraham's day. Both parties walked between, taking the pledge that " +"dismemberment would happen to them if they didn't live up to their part of " +"the contract. But in this case only God goes thru, making it a unilateral " +"covenant." +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:159 +#, no-c-format +msgid "Rule 4 - Interpret according to the normal usage of words in language" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:160 +#, no-c-format +msgid "" +"Let literal language be literal and figurative language be figurative. And " +"watch out for idioms, which have special meanings." +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:163 +#, no-c-format +msgid "Example 4A" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:164 +#, no-c-format +msgid "evil eye in Mt.6:23." +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:165 +#, no-c-format +msgid "" +"Rule 1, definition of \"evil\" and \"eye\" - no help here. Rule 2, context: " +"seems to confuse us even more. It doesn't seem to fit with what goes before " +"and after! This should tip us off that we aren't understanding it rightly!!" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:168 +#, no-c-format +msgid "" +"What we have here is a Hebrew idiom, evil eye. Let's look up " +"other uses of this idiom: Mt.20:15 \"Is it not lawful for me to do " +"what I wish with what is my own? Or is your eye envious [lit.\"evil\"] " +"because I am generous [lit. \"good\"]?\" We find that having an " +"\"evil eye\" is a Hebrew idiom for being stingy or envious. Now go back to " +"Mt.6 and notice how this understanding ties in so perfectly to the context." +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:174 +#, no-c-format +msgid "Example 4B" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:175 +#, no-c-format +msgid "Is.59:1 The Lord's hand is not short;" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:176 +#, no-c-format +msgid "Deut.33:27 Underneath are the everlasting arms." +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:177 +#, no-c-format +msgid "" +"References to body parts of God are used by Latter-Day Saints to prove that " +"God was once a man just as we are. Once they convince people of that, they " +"go on to teach that we can become God just like He is! At a lecture he was " +"giving, a group of Mormon elders challenged Walter Martin (author of " +"Kingdom of the Cults) with an enumeration of verses " +"like these. Dr. Martin then asked the Mormons to read one more scripture: " +"Ps.91:4 He will cover you with His feathers; And under His wings " +"shalt thou trust. W.M. said, By the same rules of " +"interpretation that you just proved God to be a man, you just proved that He " +"is a bird. The Mormons had to laugh as they realised the " +"ridiculousness of their position." +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:189 +#, no-c-format +msgid "" +"Rule 5 - Understand the purpose of parables and the difference between a " +"parable and an allegory" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:190 +#, no-c-format +msgid "" +"An allegory is: A story where each element has a meaning." +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:191 +#, no-c-format +msgid "Every parable is an allegory, true or false?" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:193 +#, no-c-format +msgid "" +"Some parables are allegories, for instance, the parable of the sower is an " +"allegory: the seed is the word of God, the thorns are worries and greed, " +"etc. But most parables are not allegories but simply stories to illustrate " +"one point. It's dangerous to get our doctrine from parables; they can be " +"twisted to say all sorts of things. We need to get our doctrine from clear " +"scriptures that lay it out; then if a parable illustrates that, fine." +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:198 +#, no-c-format +msgid "Example 5A" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:199 +#, no-c-format +msgid "" +"The parable of the widow with the unrighteous judge in Lk.18:1-8. This story " +"illustrates one lesson: boldness in prayer. If we draw it into an allegory, " +"what do we have?" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:201 +#, no-c-format +msgid "" +"All sorts of violence happens to the meanings: God is reluctant to protect " +"the rights of widows, prayer \"bothers\" Him, etc." +msgstr "" + +#. Tag: title +#: how2-interpretation.docbook:204 +#, no-c-format +msgid "Example 5B" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:205 +#, no-c-format +msgid "" +"The parable of the unrighteous steward in Lk.16:1-9. What is the point of " +"the parable? Is it an allegory?" +msgstr "" + +#. Tag: para +#: how2-interpretation.docbook:207 +#, no-c-format +msgid "" +"The steward is commended for only one thing, his shrewdness in using what he " +"had to prepare for a time when he wouldn't have it. But he is not commended " +"for his unethical behavior in cheating his master." +msgstr "" + +#. Tag: title +#: how2-importance.docbook:1 +#, no-c-format +msgid "Importance of God's Word" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:2 +#, no-c-format +msgid "" +"Understanding God's word is of great importance to all who call on God's " +"name. Study of the Bible is one of the primary ways that we learn to " +"communicate with God." +msgstr "" + +#. Tag: title +#: how2-importance.docbook:6 +#, no-c-format +msgid "A Book that is Unique" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:7 +#, no-c-format +msgid "The Bible stands alone in many ways. It is unique in:" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:11 +#, no-c-format +msgid "" +"popularity. Bible sales in North America: more than $500 million per year. " +"The Bible is both the the all-time and year-to-year best seller!" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:17 +#, no-c-format +msgid "" +"authorship. It was written over a period of 1600 years by 40 different " +"authors from different backgrounds, yet reads as if written by one." +msgstr "" + +#. Tag: para +#: how2-importance.docbook:23 +#, no-c-format +msgid "" +"preservation. F. F. Bruce in Are New Testament Documents Reliable?" +" compares New Testament manuscripts with other ancient texts:" +msgstr "" + +#. Tag: title +#: how2-importance.docbook:30 +#, no-c-format +msgid "Comparison of New Testament manuscripts with other ancient texts." +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:34 +#, no-c-format +msgid "Work" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:35 +#, no-c-format +msgid "When Written" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:36 +#, no-c-format +msgid "Earliest Copy" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:37 +#, no-c-format +msgid "Time Lapse" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:37 +#, no-c-format +msgid "Number of Copies" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:41 +#, no-c-format +msgid "Herodotus" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:42 +#, no-c-format +msgid "448-428 B.C." +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:42 how2-importance.docbook:52 +#: how2-importance.docbook:57 +#, no-c-format +msgid "900 A.D." +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:43 +#, no-c-format +msgid "1300 years" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:43 +#, no-c-format +msgid "8" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:46 +#, no-c-format +msgid "Tacitus" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:47 +#, no-c-format +msgid "100 A.D." +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:47 +#, no-c-format +msgid "1100 A.D." +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:48 +#, no-c-format +msgid "1000 years" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:48 how2-importance.docbook:58 +#, no-c-format +msgid "20" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:51 +#, no-c-format +msgid "Caesar's Gallic War" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:52 +#, no-c-format +msgid "50-58 B.C." +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:53 +#, no-c-format +msgid "950 years" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:53 +#, no-c-format +msgid "10" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:56 +#, no-c-format +msgid "Livy's Roman History" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:57 +#, no-c-format +msgid "59 B.C. - 17 A.D." +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:58 +#, no-c-format +msgid "900 years" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:61 +#, no-c-format +msgid "New Testament" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:62 +#, no-c-format +msgid "40 A.D. - 100 A.D." +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:62 +#, no-c-format +msgid "130 A.D. Partial manuscripts 350 A.D. Full manuscripts" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:63 +#, no-c-format +msgid "30 - 310 years" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:63 +#, no-c-format +msgid "5000 Greek & 10,000 Latin" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:66 +#, no-c-format +msgid "" +"Ten copies of Caesar's Gallic War exist, the earliest " +"of which was copied 900 years after Caesar wrote the original, etc. For the " +"New Testament we have full manuscripts dating to 350 A. D., papyri " +"containing most of the New Testament from the 200s, and a fragment of John's " +"gospel from 130 A. D. How many manuscripts do we have to compare to each " +"other? 5,000 in Greek and 10,000 in Latin!" +msgstr "" + +#. Tag: attribution +#: how2-importance.docbook:72 +#, no-c-format +msgid "" +"Textual critic F. J. A. Hort, \"The New Testament in the Original Greek\", " +"vol. 1 p561, Macmillan Co., quoted in Questions of Life " +"p. 25-26" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:74 +#, no-c-format +msgid "" +"\"In the verity and fullness of the evidence on which it rests, the text of " +"the New Testament stands absolutely and unapproachably alone among other " +"ancient prose writings.\"" +msgstr "" + +#. Tag: title +#: how2-importance.docbook:79 +#, no-c-format +msgid "A Book that God Breathed" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:80 +#, no-c-format +msgid "" +"Heb.4:12 \"For the word of God is living and " +"active... \" Jesus said (Mt.4:4), " +"\"It is written, Man shall not live on bread alone, but on every " +"word that proceeds [lit., is proceeding] from the mouth of God.\" " +"As we read the Bible, God's Spirit is there to speak it to our hearts in a " +"continually-fresh way." +msgstr "" + +#. Tag: para +#: how2-importance.docbook:86 +#, no-c-format +msgid "" +"2 Tim.3:16 declares, \"All scripture is inspired by God [lit., God-" +"breathed].\" Do you believe this? Before you answer, consider " +"Jesus' attitude toward the Scriptures." +msgstr "" + +#. Tag: attribution +#: how2-importance.docbook:89 +#, no-c-format +msgid "" +"John R.W. Stott, Christ the Controversialist, " +"InterVarsity Press 1978, pp.93-95" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:90 +#, no-c-format +msgid "" +"He referred to the human authors, but took it for granted that behind them " +"all was a single divine Author. He could equally say 'Moses said' or 'God " +"said' (Mk.7:10). He could quote a comment of the narrator in Genesis 2:24 as " +"an utterance of the Creator Himself (Mt.19:4-5). Similarly He said, 'Well " +"did Isaiah prophesy of you hypocrites, as it is written', when what He went " +"on to quote is the direct speech of the Lord God (Mk.7:6 & Is.29:13). It " +"is from Jesus Himself that the New Testament authors have gained their " +"conviction of the dual authorship of Scripture. For them it was just as true " +"to say that 'God spoke of old to our fathers by the prophets' (Heb.1:1) as " +"it was to say that 'men moved by the Holy Spirit spoke from God' (2 " +"Pe.1:21). God did not speak in such a way as to obliterate the personality " +"of the human authors, nor did men speak in such a way as to corrupt the Word " +"of the divine Author. God spoke. Men spoke. Neither truth must be allowed to " +"detract from the other. ..." +msgstr "" + +#. Tag: para +#: how2-importance.docbook:104 +#, no-c-format +msgid "" +"This, then, was Christ's view of the Scriptures. Their witness was God's " +"witness. The testimony of the Bible is the testimony of God. And the chief " +"reason why the Christian believes in the divine origin of the Bible is that " +"Jesus Christ Himself taught it." +msgstr "" + +#. Tag: para +#: how2-importance.docbook:110 +#, no-c-format +msgid "" +"2 Tim.3:16 goes on, \"and profitable for teaching, for correction, " +"for training in righteousness, that the man of God may be adequate, equipped " +"for every good work.\" If we accept that the Bible really is God " +"speaking to us, it follows that it will be our authority in all matters of " +"faith and conduct." +msgstr "" + +#. Tag: title +#: how2-importance.docbook:117 +#, no-c-format +msgid "A Book that Works" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:118 +#, no-c-format +msgid "" +"What will studying the Bible do for you? 1 Thess.2:13 says that the Bible " +"\"performs its work in you who believe.\" Beside each " +"scripture, write down the work the Word performs." +msgstr "" + +#. Tag: title +#: how2-importance.docbook:125 +#, no-c-format +msgid "What does Bible study do for Christians?" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:129 +#, no-c-format +msgid "Reference" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:130 +#, no-c-format +msgid "Action" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:135 +#, no-c-format +msgid "Eph. 5:26" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:137 +#, no-c-format +msgid "" +"cleanses -- \"...having cleansed her by the washing of water with the word.\"" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:141 +#, no-c-format +msgid "Acts 20:32" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:144 +#, no-c-format +msgid "" +"builds up -- \" ...the word of His grace, which is able to build you up and " +"to give you the inheritance among all those who are sanctified. \"" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:153 +#, no-c-format +msgid "Rom. 15:4" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:156 +#, no-c-format +msgid "" +"encourages -- \"that through perseverance and the encouragement of the " +"Scriptures we might have hope.\"" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:163 +#, no-c-format +msgid "Rom. 10:17" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:166 +#, no-c-format +msgid "" +"gives faith -- \"So faith comes from hearing, and hearing by the word of " +"Christ.\"" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:174 +#, no-c-format +msgid "1 Cor. 10:11" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:177 +#, no-c-format +msgid "" +"instructs -- \"Now these things happened to them for an example, and they " +"were written for our instruction\"" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:185 +#, no-c-format +msgid "Mt. 4:4" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:188 +#, no-c-format +msgid "" +"nourishment -- \"But He answered and said, 'It is written, Man shall not " +"live on bread alone, but on every word that proceeds out of the mouth of " +"God.'\"" +msgstr "" + +#. Tag: title +#: how2-importance.docbook:200 +#, no-c-format +msgid "A Book that Liberates" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:201 +#, no-c-format +msgid "" +"Jn.8:32 \"and you shall know the truth, and the truth shall make " +"you free.\"This is usually quoted by itself. Is this a " +"conditional or unconditional promise? Would it apply to all kinds of " +"knowledge? Find the answers by examining the first half of the sentence, in " +"v.31. \"If you abide in My word, then you are truly disciples of " +"Mine... \"" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:208 +#, no-c-format +msgid "" +"We see that this is a conditional promice, specifically speaking of the " +"truth of God's word." +msgstr "" + +#. Tag: para +#: how2-importance.docbook:210 +#, no-c-format +msgid "" +"The Greek word for \"wind\" used in Eph.4:14 means a violent wind." +" \"As a result, we are no longer to be children, tossed " +"here and there by waves, and carried about by every wind of doctrine...\"One thing studying the Bible does for us is to ground us in the " +"truth, with the result that we won't be easily \"blown away.\"" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:216 +#, no-c-format +msgid "" +"But Jesus answered and said to them, \"You " +"are mistaken [KJV Ye do err], not understanding the Scriptures, or the power " +"of God.\"Mt.22:29" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:218 +#, no-c-format +msgid "What 2 things do we need to know to be kept from error?" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:220 +#, no-c-format +msgid "God's word" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:221 +#, no-c-format +msgid "God's power" +msgstr "" + +#. Tag: title +#: how2-importance.docbook:225 +#, no-c-format +msgid "A Book that Wars" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:226 +#, no-c-format +msgid "Eph.6:10-18 is one picture of our spiritual armament." +msgstr "" + +#. Tag: title +#: how2-importance.docbook:229 +#, no-c-format +msgid "Spiritual Armor" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:233 +#, no-c-format +msgid "Question" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:234 +#, no-c-format +msgid "Answer" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:237 +#, no-c-format +msgid "How many of the weapons listed here are defensive weapons?" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:237 +#, no-c-format +msgid "5" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:238 +#, no-c-format +msgid "How many are offensive?" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:238 +#, no-c-format +msgid "One" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:239 +#, no-c-format +msgid "Which one(s)?" +msgstr "" + +#. Tag: entry +#: how2-importance.docbook:239 +#, no-c-format +msgid "the word - rhema" +msgstr "" + +#. Tag: title +#: how2-importance.docbook:243 +#, no-c-format +msgid "Exhortations" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:244 +#, no-c-format +msgid "" +"2 Tim.2:15 (KJV) \"Study to show thyself approved unto God, a " +"workman that needeth not to be ashamed, rightly dividing the word of truth.\"" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:248 +#, no-c-format +msgid "" +"Col.3:16 \"Let the word of Christ richly dwell within you; with " +"all wisdom teaching and admonishing one another with psalms and hymns and " +"spiritual songs, singing with thankfulness in your hearts to God." +"\"" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:253 +#, no-c-format +msgid "If you're rich in something, how much of it do you have?" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:255 +#, no-c-format +msgid "Not a little!" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:258 +#, no-c-format +msgid "" +"Eccl.12:11-12 \"The words of wise men are like goads, and masters " +"of these collections are like well-driven nails; they are given by one " +"Shepherd. But beyond this, my son, be warned: the writing of many books is " +"endless, and excessive devotion to books is wearying to the body." +"\"" +msgstr "" + +#. Tag: title +#: how2-importance.docbook:265 +#, no-c-format +msgid "Appendix: \"Once for All\"" +msgstr "" + +#. Tag: attribution +#: how2-importance.docbook:268 +#, no-c-format +msgid "" +"John R. W. Stott, Christ the Controversialist, " +"InterVarsity Press 1978, pp.106-107" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:269 +#, no-c-format +msgid "" +"The truth regarding the finality of God's initiative in Christ is conveyed " +"by one word of the Greek Testament, namely the adverb hapax and ephapax. It is usually " +"translated in the Authorized Version once, meaning once for all. It is used " +"of what is so done as to be of perpetual validity and never need repetition, " +"and is applied in the NT to both revelation and redemption. Thus, Jude " +"refers to the faith which was once for all delivered to the saints (Jude 3), " +"and Romans says, \"Christ also died for sins once for all\" (Rom.6:10, see also 1 Pe.3:18; Heb.9:26-28)." +msgstr "" + +#. Tag: para +#: how2-importance.docbook:278 +#, no-c-format +msgid "" +"Thus we may say that God has spoken once for all and Christ has suffered " +"once for all. This means that the Christian revelation and the Christian " +"redemption are both alike in Christ complete. Nothing can be added to either " +"without being derogatory to Christ... These are the two rocks on which the " +"Protestant Reformation was built -- Gods revealed word without the addition " +"of human traditions and Christ's finished work without the addition of human " +"merits. The Reformers great watchwords were sola scriptura for our authority and sola gratia for our salvation." +msgstr "" + +#. Tag: title +#: how2-importance.docbook:290 +#, no-c-format +msgid "Supplement: Bible Reading Programs" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:291 +#, no-c-format +msgid "" +"Here are some easy programs to systematically read your Bible. You can do " +"more than one at a time if you like, for instance #1 with #4, or #2 with #5. " +"Vary the program from year to year to keep it fresh!" +msgstr "" + +#. Tag: para +#: how2-importance.docbook:296 +#, no-c-format +msgid "New Testament in a Year: read one chapter each day, 5 days a week." +msgstr "" + +#. Tag: para +#: how2-importance.docbook:298 +#, no-c-format +msgid "" +"Proverbs in a Month: read one chapter of Proverbs each day, corresponding to " +"the day of the month." +msgstr "" + +#. Tag: para +#: how2-importance.docbook:300 +#, no-c-format +msgid "" +"Psalms in a Month: read 5 Psalms at intervals of 30 each day, for instance " +"on the 20th you read Ps.20, 50, 80, 110, & 140." +msgstr "" + +#. Tag: para +#: how2-importance.docbook:302 +#, no-c-format +msgid "" +"Psalms & Proverbs in 6 months: read through Psalms and Proverbs one " +"chapter per day." +msgstr "" + +#. Tag: para +#: how2-importance.docbook:304 +#, no-c-format +msgid "" +"Old Testament without Psalms & Proverbs in 2 years: if you read one " +"chapter a day of the Old Testament, skipping over Psalms & Proverbs, you " +"will read the Old Testament in 2 years and 2 weeks." +msgstr "" + +#. Tag: title +#: how2-basics.docbook:1 +#, no-c-format +msgid "Bible Study Basics" +msgstr "" + +#. Tag: title +#: how2-basics.docbook:4 +#, no-c-format +msgid "Our Purpose as we Approach the Bible" +msgstr "" + +#. Tag: attribution +#: how2-basics.docbook:6 +#, no-c-format +msgid "Jn.5:39-40" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:6 +#, no-c-format +msgid "" +"You search the Scriptures, because you think that in them you have eternal " +"life; and it is these that bear witness of Me; and you are unwilling to come " +"to Me, that you may have life." +msgstr "" + +#. Tag: para +#: how2-basics.docbook:12 +#, no-c-format +msgid "" +"The chief purpose of the book is to bring us to the Person. Martin Luther " +"said we go to the cradle only for the sake of the baby; just " +"so in Bible study, we do it not for its own sake but for fellowship with God." +msgstr "" + +#. Tag: attribution +#: how2-basics.docbook:17 +#, no-c-format +msgid "" +"John R.W. Stott, Christ the Controversialist, " +"InterVarsity Press 1978, pp.97, 104." +msgstr "" + +#. Tag: para +#: how2-basics.docbook:19 +#, no-c-format +msgid "" +"The Jews to whom Jesus spoke [...] imagined that to possess Scripture was " +"tantamount to possessing life. Hillel used to say, "He who has gotten " +"to himself words of Torah has gotten to himself the life of the world to " +"come." Their study was an end in itself. In this they were grievously " +"deceived. [...]" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:24 +#, no-c-format +msgid "" +"There is neither merit nor profit in the reading of Scripture for its own " +"sake, but only if it effectively introduces us to Jesus Christ. Whenever the " +"Bible is read, what is needed is an eager expectation that through it we may " +"meet Christ." +msgstr "" + +#. Tag: title +#: how2-basics.docbook:31 +#, no-c-format +msgid "Approaches to God's Word" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:32 +#, no-c-format +msgid "" +"Hearing and reading provide a telescopic view of the scripture while study " +"and memorization provide a microscopic view of scripture. Meditating on the " +"scriptures brings hearing, reading, studying and memorization together and " +"cements the word in our minds." +msgstr "" + +#. Tag: title +#: how2-basics.docbook:37 +#, no-c-format +msgid "Hear" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:38 +#, no-c-format +msgid "" +"Lk.11:28 blessed are those who hear the word of God, and observe it." +msgstr "" + +#. Tag: title +#: how2-basics.docbook:42 +#, no-c-format +msgid "Read" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:43 +#, no-c-format +msgid "" +"Rev.1:3 Blessed is he who reads and those who hear the words of this " +"prophecy [...]" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:45 +#, no-c-format +msgid "" +"1 Tim.4:13 give attention to the public reading of Scripture [...]" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:50 +#, no-c-format +msgid "" +"Acts 17:11 Now these were more noble-minded than those in " +"Thessalonica, for they received the word with great eagerness, examining the " +"Scriptures daily, to see whether these things were so." +msgstr "" + +#. Tag: para +#: how2-basics.docbook:54 +#, no-c-format +msgid "" +"2 Tim.2:15 Be diligent [KJV `Study'] to present yourself approved to " +"God as a workman who does not need to be ashamed, handling accurately the " +"word of truth." +msgstr "" + +#. Tag: title +#: how2-basics.docbook:59 +#, no-c-format +msgid "Memorize" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:60 +#, no-c-format +msgid "" +"Ps.119:11 Thy word I have hid in my heart, that I may not sin against " +"Thee." +msgstr "" + +#. Tag: title +#: how2-basics.docbook:64 +#, no-c-format +msgid "Meditate" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:65 +#, no-c-format +msgid "" +"Ps.1:2-3 But his delight is in the law of the Lord, And in His law he " +"meditates day and night. And he will be like a tree firmly planted by " +"streams of water, Which yields its fruit in its season, And its leaf does " +"not wither; And in whatever he does, he prospers." +msgstr "" + +#. Tag: para +#: how2-basics.docbook:71 +#, no-c-format +msgid "" +"The Navigators illustrate this by saying that as the thumb can touch all the " +"fingers, we can meditate on the Word as we do any of the first four. " +"Meditation is a key to revelation. A new Christian needs to hear and read " +"the Bible more than they need to study and memorize it. This is so that they " +"become familiar with the overall message of the Bible." +msgstr "" + +#. Tag: title +#: how2-basics.docbook:79 +#, no-c-format +msgid "Types of Bible Studies" +msgstr "" + +#. Tag: title +#: how2-basics.docbook:80 +#, no-c-format +msgid "Topical Study" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:81 +#, no-c-format +msgid "" +"Pick out a certain topic and follow it through, using cross-references or a " +"concordance." +msgstr "" + +#. Tag: title +#: how2-basics.docbook:85 +#, no-c-format +msgid "Character Study" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:86 +#, no-c-format +msgid "" +"Studying the life of a Bible character, e.g. Joseph's life in Gen.37-50." +msgstr "" + +#. Tag: title +#: how2-basics.docbook:90 +#, no-c-format +msgid "Expository Study" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:91 +#, no-c-format +msgid "Studying a certain passage: paragraph, chapter, or book." +msgstr "" + +#. Tag: title +#: how2-basics.docbook:95 +#, no-c-format +msgid "Basics of Correct Interpretation" +msgstr "" + +#. Tag: title +#: how2-basics.docbook:97 +#, no-c-format +msgid "Content" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:98 +#, no-c-format +msgid "" +"What does it say? What does it say in the original language? Be careful with " +"definitions. Don't read into it what it doesn't say." +msgstr "" + +#. Tag: title +#: how2-basics.docbook:102 +#, no-c-format +msgid "Context" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:103 +#, no-c-format +msgid "" +"What do the verses around it say? "Context is king" is the rule -- " +"the passage must make sense within the structure of the entire passage and " +"book." +msgstr "" + +#. Tag: para +#: how2-basics.docbook:108 +#, no-c-format +msgid "" +"What do other verses about this subject say through the rest of the Bible? " +"God doesn't contradict Himself, so our interpretation needs to stand the " +"test of other scriptures." +msgstr "" + +#. Tag: title +#: how2-basics.docbook:113 +#, no-c-format +msgid "An Expository Study of Matthew 6:1-18" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:114 +#, no-c-format +msgid "" +"Let's study together Mt.6:1-18. Read it to yourself, first looking for the " +"key verse, the verse that sums up the whole passage. Think you have it? Test " +"it by picking different places in the passage and asking yourself if they " +"relate to the thought of the key verse. Once you find it, write it as Roman " +"numeral One of your outline:" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:119 +#, no-c-format +msgid "Beware of practicing your righteousness before men to be noticed" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:122 +#, no-c-format +msgid "" +"What does practicing your righteousness mean? Does the " +"passage give any examples? What area of our lives is being addressed? " +"Our motives! What sub-headings develop this thought?" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:126 how2-basics.docbook:135 +#, no-c-format +msgid "When you give" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:127 +#, no-c-format +msgid "When you fast" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:128 +#, no-c-format +msgid "When you pray" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:131 +#, no-c-format +msgid "" +"Now fill in the outline with specific instructions of how to avoid wrong " +"ways of practicing our righteousness:" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:137 +#, no-c-format +msgid "" +"don't sound a trumpet. (how might someone sound a trumpet " +"today?)" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:138 +#, no-c-format +msgid "do it secretly." +msgstr "" + +#. Tag: para +#: how2-basics.docbook:139 +#, no-c-format +msgid "etc." +msgstr "" + +#. Tag: title +#: how2-basics.docbook:145 +#, no-c-format +msgid "Worksheet: How to Use a Concordance" +msgstr "" + +#. Tag: title +#: how2-basics.docbook:147 +#, no-c-format +msgid "To Find a Particular Verse" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:149 +#, no-c-format +msgid "Pick out a key word or most-unusual word of the verse." +msgstr "" + +#. Tag: para +#: how2-basics.docbook:150 +#, no-c-format +msgid "Turn to this word alphabetically." +msgstr "" + +#. Tag: para +#: how2-basics.docbook:151 +#, no-c-format +msgid "Go down the column of listings until you find your verse." +msgstr "" + +#. Tag: para +#: how2-basics.docbook:154 +#, no-c-format +msgid "Find these verses:" +msgstr "" + +#. Tag: quote +#: how2-basics.docbook:156 +#, no-c-format +msgid "Faithful are the wounds of a friend" +msgstr "" + +#. Tag: quote +#: how2-basics.docbook:157 +#, no-c-format +msgid "We are ambassadors of Christ." +msgstr "" + +#. Tag: para +#: how2-basics.docbook:158 +#, no-c-format +msgid "The story of the rich man and Lazarus." +msgstr "" + +#. Tag: title +#: how2-basics.docbook:163 +#, no-c-format +msgid "To Do a Topical Study" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:164 +#, no-c-format +msgid "" +"Let's say you wanted to do a study of the word "redemption." First " +"you would look up that word in the concordance and look up references listed " +"for it. Then you could look up related words and references listed for them, " +"e.g. "redeem, redeemed, ransom," even "buy" or "" +"bought."" +msgstr "" + +#. Tag: title +#: how2-basics.docbook:170 +#, no-c-format +msgid "To Clarify Word Meanings in the Greek and Hebrew" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:171 +#, no-c-format +msgid "" +"What if you noticed a contradiction in the KJV between Mt.7:1 Judge " +"not lest you be judged and 1 Cor.2:15 He that is spiritual " +"judgeth all things. Maybe there are two different Greek words here, " +"both being translated "judge" in English? (We're using Strong's " +"from here out.)" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:175 +#, no-c-format +msgid "Look up "judge"." +msgstr "" + +#. Tag: para +#: how2-basics.docbook:176 +#, no-c-format +msgid "" +"Go down the column of entries to Mt.7:1. To the right is a number, 2919. " +"This refers to the Greek word used. Write it down." +msgstr "" + +#. Tag: para +#: how2-basics.docbook:178 +#, no-c-format +msgid "Now look up "judgeth"." +msgstr "" + +#. Tag: para +#: how2-basics.docbook:179 +#, no-c-format +msgid "Go down the column to 1 Cor.2:15 . . . . . 350." +msgstr "" + +#. Tag: para +#: how2-basics.docbook:180 +#, no-c-format +msgid "" +"Turn in the back to the Greek dictionary. (Remember, you're in the NT so the " +"language is Greek, while the OT is Hebrew.) Compare the meaning of 2919 with " +"the meaning of 350 and you have your answer!" +msgstr "" + +#. Tag: title +#: how2-basics.docbook:185 +#, no-c-format +msgid "To Find Meanings of Names" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:186 +#, no-c-format +msgid "" +"By the same process we can find the meaning of a name in the Greek or Hebrew." +msgstr "" + +#. Tag: para +#: how2-basics.docbook:187 +#, no-c-format +msgid "Look up these names and write down their meaning:" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:189 +#, no-c-format +msgid "Nabal" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:190 +#, no-c-format +msgid "Abigail" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:191 +#, no-c-format +msgid "Joshua" +msgstr "" + +#. Tag: para +#: how2-basics.docbook:192 +#, no-c-format +msgid "Barnabus" +msgstr "" diff --git a/pot/messages.pot b/pot/messages.pot new file mode 100644 index 0000000..d4bcb70 --- /dev/null +++ b/pot/messages.pot @@ -0,0 +1,2823 @@ +# 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: 2007-04-17 21:48+0200\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=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../bibletime/backend/bt_osishtml.cpp:327 +msgid "Alternative text" +msgstr "" + +#: ../bibletime/backend/bt_osishtml.cpp:485 +msgid "Added text" +msgstr "" + +#: ../bibletime/backend/cdisplaytemplatemgr.cpp:184 +msgid "(user template)" +msgstr "" + +#: ../bibletime/backend/cswordbackend.cpp:503 +msgid "Footnotes" +msgstr "" + +#: ../bibletime/backend/cswordbackend.cpp:506 +msgid "Strong's numbers" +msgstr "" + +#: ../bibletime/backend/cswordbackend.cpp:509 +msgid "Headings" +msgstr "" + +#: ../bibletime/backend/cswordbackend.cpp:512 +msgid "Morphological tags" +msgstr "" + +#: ../bibletime/backend/cswordbackend.cpp:515 +msgid "Lemmas" +msgstr "" + +#: ../bibletime/backend/cswordbackend.cpp:518 +msgid "Hebrew vowel points" +msgstr "" + +#: ../bibletime/backend/cswordbackend.cpp:521 +msgid "Hebrew cantillation marks" +msgstr "" + +#: ../bibletime/backend/cswordbackend.cpp:524 +msgid "Greek accents" +msgstr "" + +#: ../bibletime/backend/cswordbackend.cpp:527 +msgid "Red letter words" +msgstr "" + +#: ../bibletime/backend/cswordbackend.cpp:530 +msgid "Textual variants" +msgstr "" + +#: ../bibletime/backend/cswordbackend.cpp:533 +msgid "Scripture cross-references" +msgstr "" + +#: ../bibletime/backend/cswordbackend.cpp:536 +msgid "Morph segmentation" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:715 +#: ../bibletime/util/ctoolclass.cpp:213 +msgid "Version" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:716 +#: ../bibletime/backend/cswordmoduleinfo.cpp:721 +#: ../bibletime/frontend/cprofile.cpp:30 +#: ../bibletime/frontend/mainindex/cindexitem.cpp:287 +msgid "unknown" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:719 +msgid "Markup" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:724 +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:86 +msgid "Location" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:728 +#: ../bibletime/util/ctoolclass.cpp:205 +msgid "Language" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:733 +msgid "Category" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:738 +msgid "LCSH" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:742 +msgid "Writable" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:743 +msgid "no" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:743 +msgid "yes" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:747 +#: ../bibletime/util/ctoolclass.cpp:208 +msgid "Unlock key" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:766 +msgid "Features" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:774 +#: ../bibletime/util/ctoolclass.cpp:201 +msgid "Take care, this work contains cult / questionable material!" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:808 +msgid "Distribution license" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:810 +msgid "Distribution source" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:812 +msgid "Distribution notes" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:814 +msgid "Text source" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:816 +msgid "Copyright notes" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:818 +msgid "Copyright holder" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:820 +msgid "Copyright date" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:822 +msgid "Copyright contact name" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:824 +msgid "Copyright contact address" +msgstr "" + +#: ../bibletime/backend/cswordmoduleinfo.cpp:826 +msgid "Copyright contact email" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:75 +msgid "Creating BibleTime's GUI" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:87 +#: ../bibletime/frontend/mainindex/cmainindex.cpp:147 +msgid "Bookshelf" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:104 +msgid "Initializing menu- and toolbars" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:115 +msgid "Search in &open work(s)" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:128 +msgid "Search in standard &Bible" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:150 +msgid "&Show bookshelf" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:162 +msgid "Show &mag" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:182 +msgid "Bookshelf &Manager" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:208 +msgid "&Arrangement mode" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:214 +msgid "&Manual mode" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:231 +msgid "Auto-tile &vertically" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:248 +msgid "Auto-tile &horizontally" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:265 +msgid "Auto-&cascade" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:281 +msgid "&Cascade" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:295 +msgid "Tile &vertically" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:307 +msgid "Tile &horizontally" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:321 +msgid "Cl&ose all" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:334 +msgid "&Save session" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:347 +msgid "Save as &new session" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:360 +msgid "&Load session" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:372 +msgid "&Delete session" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:384 +msgid "&Fullscreen mode" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:413 +msgid "&Handbook" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:426 +msgid "&Bible Study Howto" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:457 +msgid "&Daily tip" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:521 +msgid "Initializing Sword" +msgstr "" + +#: ../bibletime/bibletime_init.cpp:570 +msgid "Checking indices" +msgstr "" + +#: ../bibletime/bibletime_slots.cpp:536 +msgid "Please enter a name for the new session." +msgstr "" + +#: ../bibletime/bibletime_slots.cpp:536 +msgid "Session name:" +msgstr "" + +#: ../bibletime/display-templates/template-init.cpp:351 +msgid "Crazy" +msgstr "" + +#: ../bibletime/display-templates/template-init.cpp:677 +msgid "Green" +msgstr "" + +#: ../bibletime/display-templates/template-init.cpp:1005 +msgid "High contrast" +msgstr "" + +#: ../bibletime/display-templates/template-init.cpp:1346 +msgid "Simple" +msgstr "" + +#: ../bibletime/frontend/cbtconfig.cpp:252 +msgid "Old testament" +msgstr "" + +#: ../bibletime/frontend/cbtconfig.cpp:253 +msgid "Moses/Pentateuch/Torah" +msgstr "" + +#: ../bibletime/frontend/cbtconfig.cpp:254 +msgid "History" +msgstr "" + +#: ../bibletime/frontend/cbtconfig.cpp:255 +msgid "Prophets" +msgstr "" + +#: ../bibletime/frontend/cbtconfig.cpp:256 +msgid "New testament" +msgstr "" + +#: ../bibletime/frontend/cbtconfig.cpp:257 +msgid "Gospels" +msgstr "" + +#: ../bibletime/frontend/cbtconfig.cpp:258 +msgid "Letters/Epistles" +msgstr "" + +#: ../bibletime/frontend/cbtconfig.cpp:259 +msgid "Paul's Epistles" +msgstr "" + +#: ../bibletime/frontend/cexportmanager.cpp:472 +msgid "" +"*.html *.htm | HTML files\n" +" *.* | All files (*.*)" +msgstr "" + +#: ../bibletime/frontend/cexportmanager.cpp:474 +msgid "" +"*.txt | Text files\n" +" *.* | All files (*.*)" +msgstr "" + +#: ../bibletime/frontend/cexportmanager.cpp:476 +msgid "All files (*.*)" +msgstr "" + +#: ../bibletime/frontend/cinfodisplay.cpp:53 +msgid "Mag (\"shift\" to lock)" +msgstr "" + +#: ../bibletime/frontend/cinfodisplay.cpp:168 +msgid "Abbreviation" +msgstr "" + +#: ../bibletime/frontend/cinfodisplay.cpp:179 +#: ../bibletime/frontend/cinfodisplay.cpp:272 +msgid "Cross references" +msgstr "" + +#: ../bibletime/frontend/cinfodisplay.cpp:313 +msgid "Footnote" +msgstr "" + +#: ../bibletime/frontend/cinfodisplay.cpp:340 +msgid "Strongs" +msgstr "" + +#: ../bibletime/frontend/cinfodisplay.cpp:419 +msgid "Morphology" +msgstr "" + +#: ../bibletime/frontend/cinfodisplay.cpp:442 +msgid "Word lookup" +msgstr "" + +#: ../bibletime/frontend/cinputdialog.cpp:59 +msgid "C&lear" +msgstr "" + +#: ../bibletime/frontend/cinputdialog.cpp:66 +msgid "&Ok" +msgstr "" + +#: ../bibletime/frontend/cmanageindiceswidget.cpp:62 +msgid "Manage module search indices" +msgstr "" + +#: ../bibletime/frontend/cmanageindiceswidget.cpp:63 +msgid "" +"You can use the list below to create and/or delete search indices for your " +"installed works." +msgstr "" + +#: ../bibletime/frontend/cmanageindiceswidget.cpp:67 +msgid "Module" +msgstr "" + +#: ../bibletime/frontend/cmanageindiceswidget.cpp:68 +msgid "Index size" +msgstr "" + +#: ../bibletime/frontend/cmanageindiceswidget.cpp:90 +msgid "Modules with indices" +msgstr "" + +#: ../bibletime/frontend/cmanageindiceswidget.cpp:94 +msgid "Modules without indices" +msgstr "" + +#: ../bibletime/frontend/cmanageindiceswidget.cpp:106 +#: ../bibletime/frontend/cmanageindiceswidget.cpp:111 +msgid "KiB" +msgstr "" + +#: ../bibletime/frontend/cmoduleindexdialog.cpp:41 +msgid "Preparing instant search" +msgstr "" + +#: ../bibletime/frontend/cmoduleindexdialog.cpp:53 +msgid "Creating index for work %1" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:75 +msgid "Configure BibleTime" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:138 +msgid "Display" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:144 +msgid "Show tip of the day" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:157 +msgid "Show startuplogo" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:169 +msgid "Display templates" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:170 +msgid "" +"Display templates define how text is displayed. Please choose a template you " +"like." +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:183 +msgid "Available display styles:" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:193 +msgid "Style preview" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:214 +msgid "Languages" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:220 +msgid "Specify a language for names of Bible books" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:221 +msgid "" +"Sword has a number of locales available which can be used to " +"internationalize the names of books of the Bible. You can specify which " +"locale to use. If you want to create a new locale, see http://www." +"crosswire.org/sword/develop for details." +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:227 +msgid "Language for names of Bible books" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:303 +msgid "Select custom fonts per-language" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:304 +msgid "" +"Here you find a list of all languages of the installed works. You can " +"specify a custom font for each language that needs a special font to be " +"displayed correctly." +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:337 +msgid "Use custom font" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:345 +msgid "The quick brown fox jumps over the lazy dog." +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:361 +msgid "HotKeys" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:369 +msgid "Choose type:" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:388 +msgid "BibleTime" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:389 +msgid "All text windows" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:390 +msgid "Bible windows" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:391 +msgid "Commentary windows" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:392 +msgid "Lexicon windows" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:393 +msgid "Book windows" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:458 +msgid "Desk" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:463 +#: ../bibletime/frontend/coptionsdialog.cpp:468 +msgid "Standard works" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:469 +msgid "" +"Standard works are used when no particular work is specified, for example " +"when a hyperlink into a Bible or lexicon was clicked ." +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:475 +msgid "Standard Bible" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:484 +msgid "Standard Commentary" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:494 +msgid "Standard Lexicon" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:503 +msgid "Standard Daily Devotional" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:512 +msgid "Standard Hebrew Strong's Lexicon" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:521 +msgid "Standard Greek Strong's Lexicon" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:530 +msgid "Standard Hebrew Morphological Lexicon" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:538 +msgid "Standard Greek Morphological Lexicon" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:660 +#: ../bibletime/frontend/coptionsdialog.cpp:663 +msgid "Text filters" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:664 +msgid "" +"Filters control the appearance of text. Here you can specify default " +"settings for all filters. You can change the filter settings in each display " +"window, of course." +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:671 +msgid "Insert line break after each verse" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:677 +msgid "Show verse numbers" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:683 +msgid "Show section headings" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:690 +#: ../bibletime/frontend/displaywindow/cbuttons.cpp:163 +msgid "Show scripture cross-references" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:696 +#: ../bibletime/frontend/displaywindow/cbuttons.cpp:158 +msgid "Show Greek accents" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:702 +#: ../bibletime/frontend/displaywindow/cbuttons.cpp:154 +msgid "Show Hebrew vowel points" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:708 +#: ../bibletime/frontend/displaywindow/cbuttons.cpp:156 +msgid "Show Hebrew cantillation marks" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:714 +#: ../bibletime/frontend/displaywindow/cbuttons.cpp:165 +msgid "Show morph segmentation" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:720 +msgid "Use textual variants" +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:925 +msgid "" +"For God so loved the world, that he gave his one and only Son, that whoever " +"believes in him should not perish, but have eternal life." +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:930 +msgid "" +"For God didn't send his Son into the world to judge the world, but that the " +"world should be saved through him." +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:937 +msgid "" +"He who believes in him is not judged. He who doesn't believe has been judged " +"already, because he has not believed in the name of the one and only Son of " +"God." +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:944 +msgid "" +"This is the judgment, that the light has come into the world, and men loved " +"the darkness rather than the light; for their works were evil." +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:949 +msgid "" +"For everyone who does evil hates the light, and doesn't come to the light, " +"lest his works would be exposed." +msgstr "" + +#: ../bibletime/frontend/coptionsdialog.cpp:954 +msgid "" +"But he who does the truth comes to the light, that his works may be " +"revealed, that they have been done in God." +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:59 +msgid "Bookshelf Manager" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:75 +msgid "Bookshelf path(s)" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:86 +msgid "Configure bookshelf path(s)" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:87 +msgid "" +"You can store your bookshelfs in one or more directories, which you can " +"specify here." +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:93 +msgid "Your bookshelf configuration file is %1" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:98 +msgid "Path to bookshelf" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:102 +msgid "Edit Entry" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:107 +msgid "Add Entry" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:112 +msgid "Remove Entry" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:121 +msgid "Install/Update works" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:144 +msgid "Install/update works - Step 1" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:145 +msgid "" +"Please choose a (local or remote) library and a bookshelf path to install " +"the work(s) to. After that step click on the connect button.
WARNING: " +"If you live in a persecuted country and do not wish to risk detection you " +"should NOT use the module remote installation feature!" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:152 +msgid "Select library" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:158 +msgid "Delete library" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:163 +msgid "Add library" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:171 +msgid "Select bookshelf path" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:191 +#: ../bibletime/frontend/cswordsetupdialog.cpp:797 +msgid "Connect to library" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:206 +msgid "Remove works" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:218 +msgid "Remove installed work(s)" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:219 +msgid "" +"This dialog lets you remove installed works from your system. Choose the " +"modules and then click on the remove button." +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:223 +msgid "Select works to be uninstalled" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:229 +msgid "Remove selected work(s)" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:241 +msgid "Manage search indicies" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:319 +#: ../bibletime/frontend/cswordsetupdialog.cpp:371 +#: ../bibletime/frontend/cswordsetupdialog.cpp:881 +msgid "[Remote]" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:324 +#: ../bibletime/frontend/cswordsetupdialog.cpp:366 +#: ../bibletime/frontend/cswordsetupdialog.cpp:876 +msgid "[Local]" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:407 +msgid "" +"You selected the following work(s): %1.\n" +"\n" +"Do you really want to remove them from your system?" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:484 +msgid "Download" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:497 +msgid "Downloading library information..." +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:612 +msgid "Install/update works - Step 2" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:613 +msgid "" +"Please choose the works which should be installed and/or updated and click " +"the install button." +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:639 +msgid "Install works" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:690 +msgid "" +"You selected the following works: %1.\n" +"\n" +" Do you really want to install them on your system?" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:717 +msgid "Download of work(s)" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:788 +msgid "[%1]: %2% complete" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:809 +msgid "" +"This directory is not writable, so works can not be installed here using " +"BibleTime. Do you want to use this directory instead of the previous " +"value?" +msgstr "" + +#: ../bibletime/frontend/cswordsetupdialog.cpp:830 +msgid "" +"This directory is not writable, so works can not be installed here using " +"BibleTime. Do you want to add it to the list of module directories?" +msgstr "" + +#: ../bibletime/frontend/cswordsetupinstallsourcesdialog.cpp:31 +msgid "Local" +msgstr "" + +#: ../bibletime/frontend/cswordsetupinstallsourcesdialog.cpp:32 +msgid "Remote" +msgstr "" + +#: ../bibletime/frontend/cswordsetupinstallsourcesdialog.cpp:43 +msgid "Caption" +msgstr "" + +#: ../bibletime/frontend/cswordsetupinstallsourcesdialog.cpp:55 +msgid "Type" +msgstr "" + +#: ../bibletime/frontend/cswordsetupinstallsourcesdialog.cpp:58 +msgid "Server" +msgstr "" + +#: ../bibletime/frontend/cswordsetupinstallsourcesdialog.cpp:61 +msgid "Path" +msgstr "" + +#: ../bibletime/frontend/cswordsetupinstallsourcesdialog.cpp:81 +msgid "Ok" +msgstr "" + +#: ../bibletime/frontend/cswordsetupinstallsourcesdialog.cpp:95 +msgid "Please provide a caption." +msgstr "" + +#: ../bibletime/frontend/cswordsetupinstallsourcesdialog.cpp:103 +msgid "" +"A source with this caption already exists.
Please provide a different " +"caption." +msgstr "" + +#: ../bibletime/frontend/cswordsetupinstallsourcesdialog.cpp:109 +msgid "Please provide a server name." +msgstr "" + +#: ../bibletime/frontend/cswordsetupinstallsourcesdialog.cpp:116 +msgid "Please provide a valid, readable path." +msgstr "" + +#: ../bibletime/frontend/cswordsetupinstallsourcesdialog.cpp:120 +msgid "Please provide a path." +msgstr "" + +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:74 +msgid "Name" +msgstr "" + +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:78 +msgid "Status" +msgstr "" + +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:80 +msgid "Installed version" +msgstr "" + +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:84 +msgid "Remote version" +msgstr "" + +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:107 +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:115 +#: ../bibletime/frontend/mainindex/cindexitem.cpp:583 +#: ../bibletime/frontend/searchdialog/cmodulechooser.cpp:109 +msgid "Bibles" +msgstr "" + +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:108 +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:116 +#: ../bibletime/frontend/mainindex/cindexitem.cpp:586 +#: ../bibletime/frontend/searchdialog/cmodulechooser.cpp:110 +msgid "Commentaries" +msgstr "" + +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:109 +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:117 +#: ../bibletime/frontend/mainindex/cindexitem.cpp:589 +#: ../bibletime/frontend/searchdialog/cmodulechooser.cpp:111 +msgid "Lexicons" +msgstr "" + +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:110 +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:118 +#: ../bibletime/frontend/mainindex/cindexitem.cpp:592 +#: ../bibletime/frontend/searchdialog/cmodulechooser.cpp:112 +msgid "Books" +msgstr "" + +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:111 +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:119 +#: ../bibletime/frontend/searchdialog/cmodulechooser.cpp:150 +msgid "Daily Devotionals" +msgstr "" + +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:112 +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:120 +#: ../bibletime/frontend/mainindex/cindexitem.cpp:598 +#: ../bibletime/frontend/mainindex/cindexitem.cpp:1174 +#: ../bibletime/frontend/searchdialog/cmodulechooser.cpp:161 +msgid "Glossaries" +msgstr "" + +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:234 +msgid "New" +msgstr "" + +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:234 +msgid "Updated" +msgstr "" + +#: ../bibletime/frontend/cswordsetupmodulelistview.cpp:236 +msgid "Installed" +msgstr "" + +#: ../bibletime/frontend/display/cdisplay.cpp:154 +#: ../bibletime/frontend/searchdialog/csearchanalysis.cpp:517 +msgid "HTML files" +msgstr "" + +#: ../bibletime/frontend/display/cdisplay.cpp:157 +msgid "Text files" +msgstr "" + +#: ../bibletime/frontend/display/cdisplay.cpp:161 +msgid "Save document ..." +msgstr "" + +#: ../bibletime/frontend/display/chtmlwritedisplay.cpp:133 +msgid "Choose a font" +msgstr "" + +#: ../bibletime/frontend/display/chtmlwritedisplay.cpp:144 +msgid "Choose a font size" +msgstr "" + +#: ../bibletime/frontend/display/chtmlwritedisplay.cpp:164 +msgid "Bold" +msgstr "" + +#: ../bibletime/frontend/display/chtmlwritedisplay.cpp:186 +msgid "Underline" +msgstr "" + +#: ../bibletime/frontend/display/chtmlwritedisplay.cpp:258 +msgid "Select all" +msgstr "" + +#: ../bibletime/frontend/display/chtmlwritedisplay.cpp:262 +msgid "HTML editor window" +msgstr "" + +#: ../bibletime/frontend/display/creaddisplay.cpp:67 +msgid "Print keys" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:82 +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:134 +#: ../bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp:38 +#: ../bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp:111 +msgid "Next book" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:86 +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:140 +#: ../bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp:42 +#: ../bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp:117 +msgid "Previous book" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:90 +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:146 +#: ../bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp:46 +#: ../bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp:123 +msgid "Next chapter" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:94 +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:152 +#: ../bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp:50 +#: ../bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp:129 +msgid "Previous chapter" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:98 +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:158 +#: ../bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp:54 +#: ../bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp:135 +msgid "Next verse" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:102 +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:164 +#: ../bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp:58 +#: ../bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp:141 +msgid "Previous verse" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:113 +msgid "Copy chapter" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:118 +msgid "Save chapter as plain text" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:119 +msgid "Save chapter as HTML" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:123 +msgid "Print chapter" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:177 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:101 +msgid "Strong's Search" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:185 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:108 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:119 +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:65 +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:73 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:53 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:61 +msgid "Reference only" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:187 +msgid "Text of reference" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:189 +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:196 +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:202 +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:67 +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:75 +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:81 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:55 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:63 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:69 +msgid "Reference with text" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:191 +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:204 +msgid "Chapter" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:198 +msgid "Chapter as plain text" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:200 +msgid "Chapter as HTML" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:229 +msgid "Bible window" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:237 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:211 +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:63 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:51 +msgid "Copy..." +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:247 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:220 +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:71 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:59 +msgid "Save..." +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:254 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:226 +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:79 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:67 +msgid "Print..." +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:351 +msgid "Copy chapter to clipboard ..." +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:351 +msgid "Copying" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:372 +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:390 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:270 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:276 +msgid "Saving" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:372 +#: ../bibletime/frontend/displaywindow/cbiblereadwindow.cpp:390 +msgid "Saving chapter ..." +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbookreadwindow.cpp:65 +#: ../bibletime/frontend/displaywindow/cbookreadwindow.cpp:76 +msgid "Toggle tree view" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbookreadwindow.cpp:82 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:56 +msgid "Copy entry with text" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbookreadwindow.cpp:84 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:58 +msgid "Save entry as plain text" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbookreadwindow.cpp:85 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:59 +msgid "Save entry as HTML" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbookreadwindow.cpp:87 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:61 +msgid "Print entry with text" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbookreadwindow.cpp:174 +msgid "Book window" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbuttons.cpp:111 +msgid "Display settings: No options available" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbuttons.cpp:116 +msgid "Display settings" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbuttons.cpp:133 +msgid "Display options" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbuttons.cpp:136 +msgid "Use linebreaks after each verse" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbuttons.cpp:139 +msgid "Show versenumbers" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbuttons.cpp:141 +msgid "Show headings" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbuttons.cpp:145 +msgid "Highlight words of Jesus" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cbuttons.cpp:161 +msgid "Use alternative textual variant" +msgstr "" + +#: ../bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp:78 +#: ../bibletime/frontend/displaywindow/chtmlwritewindow.cpp:59 +#: ../bibletime/frontend/displaywindow/cplainwritewindow.cpp:55 +msgid "Sync with active Bible" +msgstr "" + +#: ../bibletime/frontend/displaywindow/ccommentaryreadwindow.cpp:197 +msgid "Commentary window" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cdisplaywindow.cpp:146 +#: ../bibletime/frontend/displaywindow/cdisplaywindow.cpp:197 +msgid "Back in history" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cdisplaywindow.cpp:153 +#: ../bibletime/frontend/displaywindow/cdisplaywindow.cpp:203 +msgid "Forward in history" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cdisplaywindow.cpp:161 +#: ../bibletime/frontend/searchdialog/csearchdialog.cpp:85 +msgid "Search" +msgstr "" + +#: ../bibletime/frontend/displaywindow/chtmlwritewindow.cpp:68 +#: ../bibletime/frontend/displaywindow/cplainwritewindow.cpp:65 +msgid "Save text" +msgstr "" + +#: ../bibletime/frontend/displaywindow/chtmlwritewindow.cpp:78 +#: ../bibletime/frontend/displaywindow/cplainwritewindow.cpp:76 +msgid "Delete current entry" +msgstr "" + +#: ../bibletime/frontend/displaywindow/chtmlwritewindow.cpp:88 +#: ../bibletime/frontend/displaywindow/cplainwritewindow.cpp:87 +msgid "Restore original text" +msgstr "" + +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:47 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:83 +msgid "Next entry" +msgstr "" + +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:51 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:88 +msgid "Previous entry" +msgstr "" + +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:110 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:121 +msgid "Entry with text" +msgstr "" + +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:115 +msgid "Entry as plain text" +msgstr "" + +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:117 +msgid "Entry as HTML" +msgstr "" + +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:200 +msgid "Lexicon window" +msgstr "" + +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:270 +#: ../bibletime/frontend/displaywindow/clexiconreadwindow.cpp:276 +msgid "Saving entry ..." +msgstr "" + +#: ../bibletime/frontend/displaywindow/cmodulechooserbutton.cpp:112 +#: ../bibletime/frontend/displaywindow/cmodulechooserbutton.cpp:159 +msgid "NONE" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cmodulechooserbutton.cpp:128 +#: ../bibletime/frontend/displaywindow/cmodulechooserbutton.cpp:129 +#: ../bibletime/frontend/displaywindow/cmodulechooserbutton.cpp:151 +msgid "Select a work" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cmodulechooserbutton.cpp:154 +msgid "Select an additional work" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cmodulechooserbutton.cpp:225 +msgid "[locked]" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cmodulechooserbutton.cpp:244 +msgid "No work selected" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cplainwritewindow.cpp:138 +msgid "Module is not writable." +msgstr "" + +#: ../bibletime/frontend/displaywindow/cplainwritewindow.cpp:139 +msgid "" +"Either the module may not be edited, or you do not have write permission." +msgstr "" + +#: ../bibletime/frontend/displaywindow/cplainwritewindow.cpp:141 +msgid "Module not writable" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cwritewindow.cpp:141 +msgid "Save text before closing?" +msgstr "" + +#: ../bibletime/frontend/displaywindow/cwritewindow.cpp:165 +msgid "Save changed text?" +msgstr "" + +#: ../bibletime/frontend/mainindex/cindexitem.cpp:391 +msgid "Change description ..." +msgstr "" + +#: ../bibletime/frontend/mainindex/cindexitem.cpp:391 +msgid "Enter a new description for the chosen bookmark." +msgstr "" + +#: ../bibletime/frontend/mainindex/cindexitem.cpp:486 +msgid "New folder" +msgstr "" + +#: ../bibletime/frontend/mainindex/cindexitem.cpp:595 +msgid "Daily devotionals" +msgstr "" + +#: ../bibletime/frontend/mainindex/cindexitem.cpp:604 +msgid "Old bookmarks" +msgstr "" + +#: ../bibletime/frontend/mainindex/cindexitem.cpp:607 +msgid "Unknown" +msgstr "" + +#: ../bibletime/frontend/mainindex/cindexitem.cpp:614 +msgid "Unknown language" +msgstr "" + +#: ../bibletime/frontend/mainindex/cindexitem.cpp:959 +#: ../bibletime/frontend/mainindex/cindexitem.cpp:967 +msgid "" +"*.btb | BibleTime bookmark files (*.btb)\n" +"*.* | All files (*.*)" +msgstr "" + +#: ../bibletime/frontend/mainindex/cindexitem.cpp:959 +msgid "BibleTime - Export bookmarks" +msgstr "" + +#: ../bibletime/frontend/mainindex/cindexitem.cpp:967 +msgid "BibleTime - Import bookmarks" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:149 +msgid "Create a new folder" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:150 +msgid "Change this folder" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:152 +msgid "Change bookmark description" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:153 +msgid "Import bookmarks" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:154 +msgid "Export bookmarks" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:155 +msgid "Print bookmarks" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:157 +msgid "Remove selected item(s)" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:159 +msgid "Edit this work" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:161 +msgid "Plain text" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:162 +msgid "HTML" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:164 +msgid "Search in selected work(s)" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:165 +msgid "Unlock this work" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:166 +msgid "About this work" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:534 +msgid "Delete Items" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:534 +msgid "Do you really want to delete the selected items and child-items?" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:574 +msgid "BibleTime - Unlock work" +msgstr "" + +#: ../bibletime/frontend/mainindex/cmainindex.cpp:575 +msgid "Enter the unlock key for this work." +msgstr "" + +#: ../bibletime/frontend/searchdialog/cmodulechooser.cpp:92 +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:49 +msgid "Work" +msgstr "" + +#: ../bibletime/frontend/searchdialog/cmodulechooser.cpp:271 +msgid "Choose work(s)" +msgstr "" + +#: ../bibletime/frontend/searchdialog/cmodulechooser.cpp:283 +msgid "Use chosen work(s)" +msgstr "" + +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:50 +msgid "Hits" +msgstr "" + +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:227 +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:236 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:212 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:231 +msgid "Copy search result..." +msgstr "" + +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:227 +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:236 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:212 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:231 +msgid "Copying search result" +msgstr "" + +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:245 +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:254 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:174 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:193 +msgid "Save search result..." +msgstr "" + +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:245 +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:254 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:174 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:193 +msgid "Saving search result" +msgstr "" + +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:263 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:163 +msgid "Print search result..." +msgstr "" + +#: ../bibletime/frontend/searchdialog/cmoduleresultview.cpp:263 +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:163 +msgid "Printing search result" +msgstr "" + +#: ../bibletime/frontend/searchdialog/crangechooser.cpp:74 +msgid "Search range editor" +msgstr "" + +#: ../bibletime/frontend/searchdialog/crangechooser.cpp:102 +msgid "Search range" +msgstr "" + +#: ../bibletime/frontend/searchdialog/crangechooser.cpp:110 +msgid "Add new range" +msgstr "" + +#: ../bibletime/frontend/searchdialog/crangechooser.cpp:114 +msgid "Delete current range" +msgstr "" + +#: ../bibletime/frontend/searchdialog/crangechooser.cpp:120 +msgid "Name:" +msgstr "" + +#: ../bibletime/frontend/searchdialog/crangechooser.cpp:125 +msgid "Edit current search range:" +msgstr "" + +#: ../bibletime/frontend/searchdialog/crangechooser.cpp:135 +msgid "Parsed search range:" +msgstr "" + +#: ../bibletime/frontend/searchdialog/crangechooser.cpp:164 +msgid "New range" +msgstr "" + +#: ../bibletime/frontend/searchdialog/crangechooser.cpp:229 +msgid "" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchanalysis.cpp:70 +msgid "Search analysis" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchanalysis.cpp:87 +msgid "Save search analysis as HTML" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchanalysis.cpp:519 +msgid "Save Search Analysis" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchanalysis.cpp:540 +msgid "BibleTime Search Analysis" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchanalysis.cpp:541 +msgid "Search text :" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchanalysis.cpp:543 +msgid "Book" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchanalysis.cpp:544 +msgid "Total hits" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchanalysis.cpp:580 +msgid "Created by" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchdialog.cpp:85 +msgid "Search dialog" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchdialog.cpp:111 +msgid "Missing indices" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchdialog.cpp:112 +msgid "" +"One or more modules need indexing before they can be searched.\n" +"This could take a long time. Proceed with indexing?" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchdialogpages.cpp:81 +msgid "Parsing Stong's Numbers" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchdialogpages.cpp:81 +msgid "Parsing Stong's numbers for translations." +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchdialogpages.cpp:650 +msgid "Searching in: " +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchdialogpages.cpp:723 +msgid "" +"

Enter search terms separated by spaces. By default the search function " +"will return results that match any of the search terms (OR). To search for " +"all the terms separate the terms by AND.

" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchdialogpages.cpp:726 +msgid "" +"

You can use wildcards: '*' matches any sequence of characters, while '?' " +"matches any single character. The use of brackets allows you to group your " +"search terms, e.g. '(Jesus OR spirit) AND God'.

" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchdialogpages.cpp:729 +msgid "" +"

To search text other than the main text, enter the text type followed by " +"\":\", and then the search term. For example, to search for the Strong's " +"number H8077, use 'strong:H8077'.

" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchdialogpages.cpp:732 +msgid "" +"

Available text types:
heading:searches " +"headings
footnote:searches footnotes
strong:searches Strong's Numbers
morph:" +"searches morphology codes

" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchdialogpages.cpp:737 +msgid "" +"

BibleTime uses the Lucene search engine to perform your searches. It has " +"many advanced features, and you can read more about it here: http://lucene." +"apache.org/java/docs/queryparsersyntax.html

" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchdialogpages.cpp:742 +msgid "Basic Search Syntax Introduction" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchdialogpages.cpp:750 +msgid "No search scope" +msgstr "" + +#: ../bibletime/frontend/searchdialog/csearchresultview.cpp:41 +msgid "Results" +msgstr "" + +#: ../bibletime/main.cpp:124 +msgid "Enable debug messages" +msgstr "" + +#: ../bibletime/main.cpp:125 +msgid "" +"Ignore the startup session that was saved when BibleTime was closed the last " +"time." +msgstr "" + +#: ../bibletime/main.cpp:126 +msgid "" +"Open the standard Bible with the given key. Use to open at a random " +"position." +msgstr "" + +#: ../bibletime/main.cpp:135 +msgid "Bible study tool for KDE" +msgstr "" + +#: ../bibletime/main.cpp:137 +msgid "(c)1999-2007, The BibleTime Team" +msgstr "" + +#: ../bibletime/main.cpp:138 +msgid "" +"BibleTime is an easy to use but powerful Bible study tool for KDE.\n" +"\n" +"We are looking for developers and translators.\n" +"If you'd like to join our team, please send an email to info@bibletime.info." +msgstr "" + +#: ../bibletime/main.cpp:147 +msgid "Project coordinator" +msgstr "" + +#: ../bibletime/main.cpp:149 +msgid "Frontend, backend" +msgstr "" + +#: ../bibletime/main.cpp:151 +msgid "Crystal icons, crystal startlogo, webpage" +msgstr "" + +#: ../bibletime/main.cpp:159 +msgid "Romanian translation" +msgstr "" + +#: ../bibletime/main.cpp:161 +msgid "High contrast template" +msgstr "" + +#: ../bibletime/main.cpp:163 +msgid "Installation manager" +msgstr "" + +#: ../bibletime/main.cpp:165 +msgid "Icons, startlogo" +msgstr "" + +#: ../bibletime/main.cpp:167 +msgid "GUI" +msgstr "" + +#: ../bibletime/main.cpp:169 +msgid "GUI, instant search" +msgstr "" + +#: ../bibletime/main.cpp:171 +msgid "GUI translations into Traditional and Simplified Chinese" +msgstr "" + +#: ../bibletime/main.cpp:173 +msgid "Binary packages" +msgstr "" + +#: ../bibletime/main.cpp:175 +msgid "Founder of the Sword project" +msgstr "" + +#: ../bibletime/main.cpp:177 +msgid "Sponsored our internet domain for many years" +msgstr "" + +#: ../bibletime/main.cpp:179 +msgid "Bible Study HowTo" +msgstr "" + +#: ../bibletime/main.cpp:181 ../bibletime/main.cpp:209 +msgid "Search dialog enhancements" +msgstr "" + +#: ../bibletime/main.cpp:183 +msgid "Language codes and names" +msgstr "" + +#: ../bibletime/main.cpp:185 +msgid "GUI improvements" +msgstr "" + +#: ../bibletime/main.cpp:187 +msgid "Finnish translation" +msgstr "" + +#: ../bibletime/main.cpp:189 ../bibletime/main.cpp:197 +msgid "Frontend" +msgstr "" + +#: ../bibletime/main.cpp:191 +msgid "Czech translation" +msgstr "" + +#: ../bibletime/main.cpp:193 +msgid "Searchdialog" +msgstr "" + +#: ../bibletime/main.cpp:195 +msgid "Polish translation" +msgstr "" + +#: ../bibletime/main.cpp:199 ../bibletime/main.cpp:207 +msgid "Russian website translation" +msgstr "" + +#: ../bibletime/main.cpp:201 +msgid "Spanish website translation updates" +msgstr "" + +#: ../bibletime/main.cpp:203 +msgid "Update to the russian website translation" +msgstr "" + +#: ../bibletime/main.cpp:205 +msgid "Documentation" +msgstr "" + +#: ../bibletime/main.cpp:211 +msgid "Very helpful and detailed testing" +msgstr "" + +#: ../bibletime/main.cpp:213 +msgid "The first lead developer" +msgstr "" + +#: ../bibletime/main.cpp:215 +msgid "Translation updates for the Dutch GUI, the website and the handbook" +msgstr "" + +#: ../bibletime/main.cpp:217 +msgid "French handbook translation" +msgstr "" + +#: ../bibletime/main.cpp:219 +msgid "Helpful source code additions" +msgstr "" + +#: ../bibletime/main.cpp:221 +msgid "Translated the GUI into Russian" +msgstr "" + +#: ../bibletime/main.cpp:223 +msgid "New Bible key choosers" +msgstr "" + +#: ../bibletime/main.cpp:225 +msgid "Spanish translation" +msgstr "" + +#: ../bibletime/main.cpp:229 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "" + +#: ../bibletime/main.cpp:230 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "" + +#: ../bibletime/main.cpp:256 +msgid "Starting BibleTime" +msgstr "" + +#: ../bibletime/rc-dummy.cpp:2 +msgid "&Search" +msgstr "" + +#: ../bibletime/rc-dummy.cpp:4 +msgid "Se&ttings" +msgstr "" + +#: ../bibletime/rc-dummy.cpp:5 +msgid "&Window" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:3 +msgid "The Bible was written so we could believe in Jesus. (John 20:31)\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:7 +msgid "" +"BibleTime includes a really useful handbook written by Fred Saalbach.\n" +"To read it choose the item \"Handbook\" in the \"Help\" menu of BibleTime.\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:12 +msgid "" +"No one is allowed by God to add anything to or take anything away from the " +"Word. (Revelation 22:18-19)\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:16 +msgid "The Bible is like a mirror. (James 1:23)\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:20 +msgid "" +"BibleTime does include a Bible Study HowTo!\n" +"It was written by Bob Harman and is a great introduction how to study the " +"Bible.\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:25 +msgid "" +"You can save, print and copy the whole search result by pressing the right " +"mouse button on the icon of the searched module in the search dialog.\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:29 +msgid "The Bible is our only spiritual weapon. (Ephesians 6:17)\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:33 +msgid "" +"To get the number of verses in the Bible search for a space in the module.\n" +"The search analysis shows you the number of verses of each book.\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:38 +msgid "The Bible is truth. (John 17:17)\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:42 +msgid "" +"If you would like to create a set of bookmarks around a specific topic with " +"comments containing what the Lord told you here, it's best to\n" +"make bookmarks from your personal commentary.\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:47 +msgid "" +"The scriptures give us the wisdom that leads to salvation. (2 Timothy 3:15)\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:51 +msgid "" +"To lookup the meaning of the original hebrew or greek word in a Bible " +"supporting Strong's numbers, switch them on and \n" +"click on the strong number. Now a new window showing the strong number with\n" +"it's explanation is shown. If your favourite translation doesn't support " +"Strong's numbers please refer to an alternate translation for the number of " +"the corresponding word.\n" +"Make sure you have set the default modules in the preferences.\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:58 +msgid "" +"If you want to use a commentary as a topical reference, search it for terms " +"your topic is about.\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:62 +msgid "" +"In the beginning was the Word, the Word was with God, and the Word was God. " +"(John 1:1)\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:66 +msgid "" +"We will be judged on the last day by the words Jesus spoke. (John 12:48)\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:70 +msgid "" +"If you want to find the full set of verses or entries on a area of content, " +"you should use the option \"Multiple words (OR)\" for searching.\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:74 +msgid "" +"If you are searching a verse you know only fuzzy or in a different " +"translation search for the most probable terms in multiple Bible " +"translations at the same time.\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:78 +msgid "" +"God's Word can be a lamp to your feet and a light to your path. (Psalm " +"119:105)\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:82 +msgid "" +"If you want to search a word in a foreign module (e.g. greek or hebrew), " +"open a display window and choose a chapter or an entry which contains this " +"word.\n" +"Select it and copy it to the clipboard. Now insert the copied word in the " +"search text box of the searchdialog.\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:87 +msgid "" +"The Word of God will not return to Him without accomplishing its purpose. " +"(Isaiah 55:11)\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:91 +msgid "" +"Foreign modules do often require a special font to display correctly. You " +"can set the font for each language in the preferences.\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:95 +msgid "" +"Did you know that the first book ever printed on a printing press was the " +"Bible (by Johann Gutenberg, in 1492)?\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:99 +msgid "" +"God has already given to us everything pertaining to life and godliness. (2 " +"Peter 1:3)\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:103 +msgid "" +"All important elements of BibleTime's graphical user interface have a " +"tooltip and a \"What's this?\" help.
\n" +"To read the \"What's this?\" help press the keys SHIFT+F1 and click on the " +"part.\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:108 +msgid "" +"The Word of God is living, active, and sharper than any two-edged sword. " +"(Hebrews 4:12)\n" +msgstr "" + +#: ../bibletime/tips-dummy.cpp:112 +msgid "" +"You are using a program that has been written for the glory of God.
May " +"He bless you as you study His Word!\n" +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:737 +msgid "" +"Open the printer dialog of BibleTime, where you can edit the print queue, " +"assign styles to the items and print them." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:741 +msgid "Close BibleTime and save the settings." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:748 +msgid "Show or hide the bookshelf." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:752 +msgid "Toggle the main toolbar view." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:760 +msgid "Open the search dialog to search in all works that are currently open." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:764 +msgid "Open the search dialog to search in the standard Bible." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:772 +msgid "Restore a saved BibleTime session." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:776 +msgid "Save current BibleTime session so that it can be reused later." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:780 +msgid "Create and save a new session." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:784 +msgid "Delete a BibleTime session." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:788 +msgid "Toggle fullscreen mode of the main window." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:792 +msgid "Vertically tile the open windows." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:796 +msgid "Horizontally tile the open windows." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:800 +msgid "Cascade the open windows." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:805 +msgid "Choose the way that is used to arrange the windows." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:809 +msgid "Automatically tile the open windows vertically." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:813 +msgid "Automatically tile the open windows horizontally." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:817 +msgid "Automatically cascade the open windows." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:822 +msgid "Close all open windows." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:830 +msgid "Open BibleTime's toolbar editor." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:834 +msgid "Open the dialog to set most of BibleTime's preferences." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:838 +msgid "" +"Open the dialog to configure your bookshelf and install/update/remove works." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:847 +msgid "Open BibleTime's handbook in the KDE helpbrowser." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:851 +msgid "" +"Open the Bible study HowTo included with BibleTime in the KDE helpbrowser. " +"
This HowTo is an introduction on how to study the Bible in an efficient " +"way." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:855 +msgid "Send a bugreport to the developers of BibleTime." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:859 +msgid "" +"Show a daily tip each time BibleTime starts.
The tips contain important " +"Bible quotations and helpful tips for using BibleTime." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:863 +msgid "Show detailed information about BibleTime." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:867 +msgid "Show detailed information about the KDE project." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:877 +msgid "Start to search the text in each of the chosen work(s)." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:881 +msgid "Stop the active search." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:888 +msgid "Open a dialog to choose work(s) for the search." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:892 +msgid "Enter the text you want to search in the chosen work(s) here." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:898 +msgid "" +"Treat the search text as multiple words. A text must contain all of the " +"words to match. The order of the words is unimportant." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:902 +msgid "" +"Treat the search text as multiple words. A text must contain one or more " +"words of to match. The order is unimportant." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:906 +msgid "The search text will be used exactly as entered." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:910 +msgid "" +"Treat the search string as a GNU regular expression. The BibleTime handbook " +"contains an introduction to regular expressions." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:918 +msgid "" +"If you choose this option the search will distinguish between upper and " +"lowercase characters." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:923 +msgid "" +"Choose a scope from the list. Select the first item to use no scope, the " +"second one is to use each work's last search result as search scope. The " +"others are user defined search scopes." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:931 +msgid "Select an item from the list to edit the search scope." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:935 +msgid "Change the name of the selected search scope." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:939 +msgid "" +"Change the search ranges of the selected search scope item. Have a look at " +"the predefined search scopes to see how search ranges are constructed." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:943 +msgid "Contains the search ranges which will be used for the search." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:947 +msgid "" +"Add a new search scope. First enter an appropriate name, then edit the " +"search ranges." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:951 +msgid "" +"Deletes the selected search scope. If you close the dialog using Cancel the " +"settings won't be saved." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:959 +msgid "The list of works chosen for the search." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:963 +msgid "This list contains the search result of the selected work." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:967 +msgid "The text preview of the selected search result item." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:979 +msgid "" +"This button is useful to scroll through the entries of the list. Press the " +"button and move the mouse to increase or decrease the item." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:983 +msgid "This button opens the search dialog with the work(s) of this window." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:988 +msgid "Go back one item in the display history." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:992 +msgid "Go forward one item in the display history." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:997 +msgid "" +"Show all occurences of the Strong number currently under the mouse cursor." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1003 +msgid "This list contains the books which are available in this work." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1007 +msgid "Show the next book of this work." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1011 +msgid "Show the previous book of this work." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1015 +msgid "" +"This list contains the chapters which are available in the current book." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1019 +msgid "Show the next chapter of the work." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1023 +msgid "Show the previous chapter of the work." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1027 +msgid "" +"This list contains the verses which are available in the current chapter." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1031 +msgid "" +"In Bible texts, the next verse will be highlighted. In commentaries, the " +"next entry will be shown." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1036 +msgid "" +"In Bible texts, the previous verse will be highlighted. In commentaries, the " +"previous entry will be shown." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1043 +msgid "" +"Synchronize the displayed entry of this work with the active Bible window." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1050 +msgid "This list contains the entries of the current work." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1054 +msgid "The next entry of the work will be shown." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1058 +msgid "The previous entry of the work will be shown." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1066 +msgid "Save the curent text into the work. The old text will be overwritten." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1070 +msgid "" +"Loads the old text from the work and loads it into the edit area. The " +"unsaved text will be lost." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1074 +msgid "Deletes the current entry out of the work. The text will be lost." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1080 +msgid "Toggle bold formatting of the selected text." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1084 +msgid "Toggle italic formatting of the selected text." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1088 +msgid "Toggle underlined formatting of the selected text." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1093 +msgid "The text will be aligned on the left side of the page." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1097 +msgid "Centers the text horizontally." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1101 +msgid "Aligns the text on the right side of the page." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1105 +msgid "Justifies the text on the page." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1110 +msgid "Choose a new font for the selected text." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1113 +msgid "Choose a new font size for the selected text." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1116 +msgid "Choose a new color for the selected text." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1126 +msgid "Activate this box to see a daily tip on startup." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1130 +msgid "Activate this to see the BibleTime logo on startup." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1134 +msgid "" +"Save the user's session when BibleTime is closed and restore it on the next " +"startup." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1141 +msgid "The font selection below will apply to all texts in this language." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1150 +msgid "Contains the languages which can be used for the biblical booknames." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1157 +msgid "The standard Bible is used when a hyperlink into a Bible is clicked." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1161 +msgid "" +"The standard commentary is used when a hyperlink into a commentary is " +"clicked." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1165 +msgid "" +"The standard lexicon is used when a hyperlink into a lexicon is clicked." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1169 +msgid "" +"The standard devotional will be used to display a short start up devotional." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1173 +msgid "" +"The standard Hebrew lexicon is used when a hyperlink into a Hebrew lexicon " +"is clicked." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1177 +msgid "" +"The standard Greek lexicon is used when a hyperlink into a Greek lexicon is " +"clicked." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1181 +msgid "" +"The standard morphological lexicon for Hebrew texts is used when a hyperlink " +"of a morphological tag in a Hebrew text is clicked." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1185 +msgid "" +"The standard morphological lexicon for Greek texts is used when a hyperlink " +"of a morphological tag in a Greek text is clicked." +msgstr "" + +#: ../bibletime/util/cresmgr.cpp:1194 +msgid "" +"Opens the search dialog to search in the work(s) that are currently open." +msgstr "" + +#: ../bibletime/util/ctoolclass.cpp:78 +msgid "The file already exists." +msgstr "" + +#: ../bibletime/util/ctoolclass.cpp:79 +msgid "Do you want to overwrite it?" +msgstr "" + +#: ../bibletime/util/ctoolclass.cpp:99 +msgid "The file couldn't be saved." +msgstr "" + +#: ../bibletime/util/ctoolclass.cpp:100 +msgid "Please check permissions etc." +msgstr "" + +#: ../bibletime/util/ctoolclass.cpp:209 +msgid "not set" +msgstr "" + +#: clanguagemgr.cpp:197 +msgid "Afrikaans" +msgstr "" + +#: clanguagemgr.cpp:200 +msgid "English, Old (ca.450-1100)" +msgstr "" + +#: clanguagemgr.cpp:202 +msgid "Arabic" +msgstr "" + +#: clanguagemgr.cpp:205 +msgid "Azerbaijani" +msgstr "" + +#: clanguagemgr.cpp:208 +msgid "Belarusian" +msgstr "" + +#: clanguagemgr.cpp:210 +msgid "Bulgarian" +msgstr "" + +#: clanguagemgr.cpp:216 +msgid "Breton" +msgstr "" + +#: clanguagemgr.cpp:218 +msgid "Bosnian" +msgstr "" + +#: clanguagemgr.cpp:220 +msgid "Catalan" +msgstr "" + +#: clanguagemgr.cpp:223 +msgid "Cebuano" +msgstr "" + +#: clanguagemgr.cpp:225 +msgid "Chamorro" +msgstr "" + +#: clanguagemgr.cpp:228 +msgid "Coptic" +msgstr "" + +#: clanguagemgr.cpp:230 +msgid "Czech" +msgstr "" + +#: clanguagemgr.cpp:232 +msgid "Church Slavic" +msgstr "" + +#: clanguagemgr.cpp:235 +msgid "Welsh" +msgstr "" + +#: clanguagemgr.cpp:237 +msgid "Danish" +msgstr "" + +#: clanguagemgr.cpp:239 +msgid "German" +msgstr "" + +#: clanguagemgr.cpp:243 +msgid "Greek, Modern (1453-)" +msgstr "" + +#: clanguagemgr.cpp:245 +msgid "English" +msgstr "" + +#: clanguagemgr.cpp:247 +msgid "American English" +msgstr "" + +#: clanguagemgr.cpp:249 +msgid "English, Middle (1100-1500)" +msgstr "" + +#: clanguagemgr.cpp:251 +msgid "Esperanto" +msgstr "" + +#: clanguagemgr.cpp:253 +msgid "Spanish" +msgstr "" + +#: clanguagemgr.cpp:255 +msgid "Estonian" +msgstr "" + +#: clanguagemgr.cpp:257 +msgid "Basque" +msgstr "" + +#: clanguagemgr.cpp:260 +msgid "Finnish" +msgstr "" + +#: clanguagemgr.cpp:264 +msgid "French" +msgstr "" + +#: clanguagemgr.cpp:266 +msgid "Frisian" +msgstr "" + +#: clanguagemgr.cpp:268 +msgid "Irish" +msgstr "" + +#: clanguagemgr.cpp:270 +msgid "Gaelic (Scots)" +msgstr "" + +#: clanguagemgr.cpp:275 +msgid "Gothic" +msgstr "" + +#: clanguagemgr.cpp:277 +msgid "Manx" +msgstr "" + +#: clanguagemgr.cpp:279 +msgid "Greek, Ancient (to 1453)" +msgstr "" + +#: clanguagemgr.cpp:281 +msgid "Hebrew" +msgstr "" + +#: clanguagemgr.cpp:283 +msgid "Hausa" +msgstr "" + +#: clanguagemgr.cpp:285 +msgid "Hawaiian" +msgstr "" + +#: clanguagemgr.cpp:289 +msgid "Croatian" +msgstr "" + +#: clanguagemgr.cpp:291 +msgid "Hungarian" +msgstr "" + +#: clanguagemgr.cpp:293 +msgid "Armenian" +msgstr "" + +#: clanguagemgr.cpp:298 +msgid "Indonesian" +msgstr "" + +#: clanguagemgr.cpp:302 +msgid "Icelandic" +msgstr "" + +#: clanguagemgr.cpp:304 +msgid "Italian" +msgstr "" + +#: clanguagemgr.cpp:308 +msgid "Japanese" +msgstr "" + +#: clanguagemgr.cpp:310 +msgid "Georgian" +msgstr "" + +#: clanguagemgr.cpp:319 +msgid "Korean" +msgstr "" + +#: clanguagemgr.cpp:322 +msgid "Kurdish" +msgstr "" + +#: clanguagemgr.cpp:326 +msgid "Kirghiz" +msgstr "" + +#: clanguagemgr.cpp:328 +msgid "Latin" +msgstr "" + +#: clanguagemgr.cpp:333 +msgid "Lithuanian" +msgstr "" + +#: clanguagemgr.cpp:335 +msgid "Latvian" +msgstr "" + +#: clanguagemgr.cpp:339 +msgid "Maori" +msgstr "" + +#: clanguagemgr.cpp:341 clanguagemgr.cpp:477 +msgid "Macedonian" +msgstr "" + +#: clanguagemgr.cpp:346 +msgid "More" +msgstr "" + +#: clanguagemgr.cpp:349 +msgid "Malay" +msgstr "" + +#: clanguagemgr.cpp:351 +msgid "Maltese" +msgstr "" + +#: clanguagemgr.cpp:358 +msgid "Low German; Low Saxon" +msgstr "" + +#: clanguagemgr.cpp:362 +msgid "Dutch" +msgstr "" + +#: clanguagemgr.cpp:365 +msgid "Norwegian" +msgstr "" + +#: clanguagemgr.cpp:377 +msgid "Papiamento" +msgstr "" + +#: clanguagemgr.cpp:380 +msgid "Polish" +msgstr "" + +#: clanguagemgr.cpp:383 +msgid "Portuguese" +msgstr "" + +#: clanguagemgr.cpp:385 +msgid "Brasilian Portuguese" +msgstr "" + +#: clanguagemgr.cpp:392 +msgid "Romanian" +msgstr "" + +#: clanguagemgr.cpp:394 +msgid "Russian" +msgstr "" + +#: clanguagemgr.cpp:400 +msgid "Scots" +msgstr "" + +#: clanguagemgr.cpp:406 +msgid "Slovak" +msgstr "" + +#: clanguagemgr.cpp:408 +msgid "Slovenian" +msgstr "" + +#: clanguagemgr.cpp:412 +msgid "Somali" +msgstr "" + +#: clanguagemgr.cpp:414 +msgid "Albanian" +msgstr "" + +#: clanguagemgr.cpp:420 +msgid "Swedish" +msgstr "" + +#: clanguagemgr.cpp:422 +msgid "Swahili" +msgstr "" + +#: clanguagemgr.cpp:424 +msgid "Syriac" +msgstr "" + +#: clanguagemgr.cpp:426 +msgid "Tamil" +msgstr "" + +#: clanguagemgr.cpp:430 +msgid "Thai" +msgstr "" + +#: clanguagemgr.cpp:433 +msgid "Tagalog" +msgstr "" + +#: clanguagemgr.cpp:435 +msgid "Tswana" +msgstr "" + +#: clanguagemgr.cpp:437 +msgid "Turkish" +msgstr "" + +#: clanguagemgr.cpp:442 +msgid "Tahitian" +msgstr "" + +#: clanguagemgr.cpp:446 +msgid "Ukrainian" +msgstr "" + +#: clanguagemgr.cpp:451 +msgid "Vietnamese" +msgstr "" + +#: clanguagemgr.cpp:457 +msgid "Xhosa" +msgstr "" + +#: clanguagemgr.cpp:459 +msgid "Bavarian" +msgstr "" + +#: clanguagemgr.cpp:461 +msgid "Zarma" +msgstr "" + +#: clanguagemgr.cpp:463 +msgid "Alemannisch" +msgstr "" + +#: clanguagemgr.cpp:465 +msgid "Haitian Creole French" +msgstr "" + +#: clanguagemgr.cpp:467 +msgid "Itzá" +msgstr "" + +#: clanguagemgr.cpp:469 +msgid "Shuar" +msgstr "" + +#: clanguagemgr.cpp:471 +msgid "Kekchí" +msgstr "" + +#: clanguagemgr.cpp:473 +msgid "Kabyle" +msgstr "" + +#: clanguagemgr.cpp:475 +msgid "Lombard" +msgstr "" + +#: clanguagemgr.cpp:479 +msgid "Tok Pisin" +msgstr "" + +#: clanguagemgr.cpp:481 +msgid "Uma" +msgstr "" + +#: clanguagemgr.cpp:483 +msgid "Romani, Vlax" +msgstr "" + +#: clanguagemgr.cpp:485 +msgid "Sango" +msgstr "" + +#: clanguagemgr.cpp:487 +msgid "Sranan" +msgstr "" + +#: clanguagemgr.cpp:492 +msgid "Chinese" +msgstr "" + +#: clanguagemgr.cpp:494 +msgid "Zulu" +msgstr "" diff --git a/pot/preparetips b/pot/preparetips new file mode 100755 index 0000000..1e5c35a --- /dev/null +++ b/pot/preparetips @@ -0,0 +1,45 @@ +# !/usr/bin/perl +# little script to extract the text from the tips file +# and output it, so xgettext can add the tips to the po file +# +# 2000 by Matthias Kiefer +# Command line option added by Joachim Ansorg + +open(FILE,"<$ARGV[0]") || die "unable to open tips file"; + +$inTip=0; + +while() +{ + chomp; + + # tip starts with + if(/^\s*/i) + { + $inTip=1; + print "\ni18n(\n"; + next; + } + + if($inTip!=0) + { + # tip ends with + if(/^\s*<\/html>/i) + { + print ");\n"; + $inTip=0; + } + else + { + # replace \ with \\ + s/\\/\\\\/g; + + # replace " with \" + s/"/\\"/g; + + print "\"$_\\n\"\n"; + } + } +} + +close(FILE); diff --git a/sword.m4 b/sword.m4 new file mode 100644 index 0000000..6041aa8 --- /dev/null +++ b/sword.m4 @@ -0,0 +1,227 @@ +## -*- autoconf -*- +dnl This file was created by Joachim Ansorg +dnl It provides macord for the autoconf package to find the Sword library on your system. + +dnl ---------------------------------------------------------------------- +dnl Check wheter to use static linking +dnl first parameter is the required version +dnl second is whether to use static sword library +dnl ---------------------------------------------------------------------- +AC_DEFUN(AC_CHECK_SWORD, +[ +dnl AC_MSG_CHECKING([for a Sword installation]) + +dnl The option for the configure script +AC_ARG_WITH(sword-dir, +[ --with-sword-dir=DIR Path where Sword is being installed (default=/usr) ], +[ + ac_sword_dir=$withval +],ac_sword_dir=/usr +) + +AC_ARG_ENABLE(static-sword, +[ --enable-static-sword Link to the static Sword library], + ac_static_sword="YES", + [ ac_static_sword="$2" ] +) + +dnl try to find Sword library files +AC_MSG_CHECKING([for Sword library files]) +AC_REQUIRE([AC_FIND_ZLIB]) +ac_sword_library_dirs="$ac_sword_dir/lib $exec_prefix/lib $prefix/lib /usr/lib /usr/lib64 /usr/lib/sword /usr/local/lib /usr/local/lib/sword /usr/local/sword/lib" + +if test "x$ac_static_sword" = "xYES"; then + SEARCH_LIBS="libsword.a"; +else + SEARCH_LIBS="libsword.so libsword.so.3 libsword.so.4 libsword.a"; +fi + + +AC_CACHE_VAL(ac_cv_sword_libdir, AC_FIND_FILE($SEARCH_LIBS, $ac_sword_library_dirs, ac_cv_sword_libdir)) + +if test "x$ac_cv_sword_libdir" = "xNO"; then + AC_MSG_ERROR(SWORD library not found. Try to use configure with --with-sword-dir=/your/SWORD/path!); +fi + +if test "x$ac_static_sword" = "xYES"; then + LIB_SWORD="$ac_cv_sword_libdir/libsword.a"; +else + LIB_SWORD="-lsword"; +fi + +AC_SUBST(SWORD_LIBRARY_PATH) +AC_SUBST(LIB_SWORD) +all_libraries="$all_libraries -L$ac_cv_sword_libdir" + +if test "x$ac_static_sword" = "xYES"; then + MESSAGE="static library $ac_cv_sword_libdir/libsword.a"; +else + MESSAGE="$ac_cv_sword_libdir"; +fi +AC_MSG_RESULT([$MESSAGE]) + +dnl -- try to find Swords include files -- +AC_MSG_CHECKING([for Sword include files]) +ac_sword_include_dirs="$ac_sword_dir/include/sword $ac_sword_dir/include $exec_prefix/include $prefix/include /usr/include/sword /usr/include /usr/local/include/sword /usr/local/include /usr/local/sword/include /usr/local/sword/include/sword" + +AC_CACHE_VAL(ac_cv_sword_incdir, AC_FIND_FILE(swmgr.h, $ac_sword_include_dirs, ac_cv_sword_incdir)) + +if test "x$ac_cv_sword_incdir" = "xNO"; then + AC_MSG_ERROR([The Sword include file files were not found. +Please try to use configure with --with-sword-dir=/your/SWORD/path ! +]) +fi + +SWORD_INCLUDES="-I$ac_cv_sword_incdir" +AC_SUBST(SWORD_INCLUDES) +all_includes="$all_includes -I$ac_cv_sword_incdir" + +AC_MSG_RESULT([$ac_cv_sword_incdir]) + + + +dnl -- Sword version tests -- +dnl First test for installed Sword version +dnl Then check if it's recent enough + +AC_MSG_CHECKING([for installed Sword version]) + +AC_CACHE_VAL(ac_cv_installed_sword_version, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH +ac_LIBRARY_PATH="$LIBRARY_PATH" +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$" +LDFLAGS="$LDFLAGS -L$ac_cv_sword_libdir" +LIBS="$LIB_SWORD -lz" +LD_LIBRARY_PATH="$ac_cv_sword_libdir" +export LD_LIBRARY_PATH +LIBRARY_PATH= +export LIBRARY_PATH + +cat > conftest.$ac_ext < +#include + +#ifdef SWORD_NAMESPACE_START +using namespace sword; +#endif + +int main(int argc, char** argv) { + std::cout << SWVersion::currentVersion << std::endl; + return 0; +} +EOF + + +ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +if AC_TRY_EVAL(ac_link) && test -s conftest; then + if test -x conftest; then + eval ac_cv_installed_sword_version=`./conftest 2>&5` + fi +else + echo "configure: failed program was:" >&AC_FD_CC + AC_MSG_ERROR([Failed to compile the test program to check the Sword version! Please have a look at config.log! Report this to the BibleTime developers!]); + cat conftest.$ac_ext >&AC_FD_CC +fi + +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" +export LD_LIBRARY_PATH +LIBRARY_PATH="$ac_LIBRARY_PATH" +export LIBRARY_PATH +AC_LANG_RESTORE +]) +AC_MSG_RESULT([$ac_cv_installed_sword_version]) + + + + +dnl *** Now check if the installed version is recent enough +AC_MSG_CHECKING([whether your Sword installation is recent enough]) + +AC_CACHE_VAL(ac_cv_sword_recent_version, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH +ac_LIBRARY_PATH="$LIBRARY_PATH" +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$" +LDFLAGS="$LDFLAGS -L$ac_cv_sword_libdir" +LIBS="$LIB_SWORD -lz" +LD_LIBRARY_PATH="$ac_cv_sword_libdir" +export LD_LIBRARY_PATH +LIBRARY_PATH= +export LIBRARY_PATH + +cat > conftest.$ac_ext < +#include + +#ifdef SWORD_NAMESPACE_START +using namespace sword; +#endif + + +int main(int argc, char** argv) { + if (argc == 2) { //compare required with installed Sword version + const char* requiredVersion( argv[[1]] ); + if ( (SWVersion( requiredVersion ) < SWVersion::currentVersion) || (SWVersion( requiredVersion ) == SWVersion::currentVersion) ) { + std::cout << "ok"; + return -1; + } + else { + std::cout << "not-ok"; + return -2; //version not recent enough + } + } + return 0; +} +EOF + +ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +if AC_TRY_EVAL(ac_link) && test -s conftest; then + if test -x conftest; then + eval ac_cv_sword_recent_version=`./conftest $1 2>&5` + fi +else + echo "configure: failed program was:" >&AC_FD_CC + AC_MSG_ERROR([Failed to compile the test program to check the Sword version! Please have a look at config.log! Report this to the BibleTime developers!]); + cat conftest.$ac_ext >&AC_FD_CC +fi; + +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" +export LD_LIBRARY_PATH +LIBRARY_PATH="$ac_LIBRARY_PATH" +export LIBRARY_PATH +AC_LANG_RESTORE +]) + +if test "x$ac_cv_sword_recent_version" = "xok"; then + AC_MSG_RESULT([yes]); +elif test "x$ac_cv_sword_recent_version" = "xnot-ok"; then + AC_MSG_RESULT([no]); + AC_MSG_ERROR([Your Sword installation is not recent enought! Please upgrade to version $1! Get the Sword library at www.crosswire.org.]); +else + AC_MSG_ERROR([Invalid return code of the internal Sword version test program. Please submit a bugreport!]); +fi; + +])