From 3af5832abe7c802a384cd58d34f7cc4433595ced Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Mon, 7 Oct 2013 23:28:24 +0200 Subject: [PATCH] Initial import of kscope 1.6.2 --- AUTHORS | 1 + COPYING | 20 + ChangeLog | 408 ++ Doxyfile | 259 + INSTALL | 167 + Makefile.am | 22 + NEWS | 1 + README | 1 + TODO | 17 + acinclude.m4 | 11345 ++++++++++++++++++++++++++++++++++ aclocal.m4 | 902 +++ config.h.in | 252 + configure.files | 2 + configure.in | 93 + configure.in.in | 17 + doc/Makefile.am | 6 + doc/en/Makefile.am | 5 + doc/en/about.docbook | 31 + doc/en/autocomp_dlg.png | Bin 0 -> 12457 bytes doc/en/bookmarks.docbook | 28 + doc/en/bookmarks.png | Bin 0 -> 23860 bytes doc/en/call_graph.png | Bin 0 -> 23525 bytes doc/en/call_tree.png | Bin 0 -> 94329 bytes doc/en/config_dlg.docbook | 206 + doc/en/editing.docbook | 138 + doc/en/index.docbook | 174 + doc/en/main_menu.docbook | 465 ++ doc/en/main_window.docbook | 24 + doc/en/main_window.png | Bin 0 -> 719478 bytes doc/en/pos_history.docbook | 101 + doc/en/pref_clrs.png | Bin 0 -> 43746 bytes doc/en/pref_fonts.png | Bin 0 -> 30787 bytes doc/en/pref_opts.png | Bin 0 -> 41987 bytes doc/en/pref_progs.png | Bin 0 -> 47959 bytes doc/en/project_details.png | Bin 0 -> 31041 bytes doc/en/project_files.png | Bin 0 -> 72430 bytes doc/en/project_make.png | Bin 0 -> 106302 bytes doc/en/project_open.png | Bin 0 -> 22418 bytes doc/en/project_opts.png | Bin 0 -> 28292 bytes doc/en/project_types.png | Bin 0 -> 20111 bytes doc/en/projects.docbook | 394 ++ doc/en/query_dlg.png | Bin 0 -> 24116 bytes doc/en/query_filter.png | Bin 0 -> 16118 bytes doc/en/query_system.docbook | 434 ++ doc/en/quick_start.docbook | 41 + po/Makefile.am | 1 + po/kscope.pot | 1515 +++++ po/zh_CN.po | 1642 +++++ src/Makefile.am | 68 + src/autocompletionlayout.ui | 217 + src/bookmark.png | Bin 0 -> 690 bytes src/bookmarksdlg.cpp | 60 + src/bookmarksdlg.h | 53 + src/bookmarkslayout.ui | 116 + src/call_graph.png | Bin 0 -> 741 bytes src/called_tree.png | Bin 0 -> 463 bytes src/calling_tree.png | Bin 0 -> 445 bytes src/calltreedlg.cpp | 336 + src/calltreedlg.h | 111 + src/calltreelayout.ui | 430 ++ src/calltreemanager.cpp | 136 + src/calltreemanager.h | 71 + src/configfrontend.cpp | 172 + src/configfrontend.h | 77 + src/cscopefrontend.cpp | 524 ++ src/cscopefrontend.h | 186 + src/cscopemsgdlg.cpp | 66 + src/cscopemsgdlg.h | 49 + src/cscopemsglayout.ui | 79 + src/ctagsfrontend.cpp | 179 + src/ctagsfrontend.h | 77 + src/ctagslist.cpp | 446 ++ src/ctagslist.h | 108 + src/dirscanner.cpp | 164 + src/dirscanner.h | 144 + src/dotfrontend.cpp | 297 + src/dotfrontend.h | 76 + src/dotparse.ypp | 234 + src/dotscan.lpp | 36 + src/editormanager.cpp | 89 + src/editormanager.h | 56 + src/editorpage.cpp | 720 +++ src/editorpage.h | 215 + src/editortabs.cpp | 640 ++ src/editortabs.h | 129 + src/encoder.cpp | 114 + src/encoder.h | 53 + src/file_ro.png | Bin 0 -> 892 bytes src/file_rw.png | Bin 0 -> 647 bytes src/file_save.png | Bin 0 -> 838 bytes src/filelist.cpp | 197 + src/filelist.h | 75 + src/fileview.cpp | 131 + src/fileview.h | 80 + src/fileviewlayout.ui | 136 + src/frontend.cpp | 365 ++ src/frontend.h | 212 + src/graphedge.cpp | 306 + src/graphedge.h | 143 + src/graphnode.cpp | 192 + src/graphnode.h | 123 + src/graphprefdlg.cpp | 82 + src/graphprefdlg.h | 54 + src/graphpreflayout.ui | 262 + src/graphwidget.cpp | 1162 ++++ src/graphwidget.h | 213 + src/hi16-app-kscope.png | Bin 0 -> 815 bytes src/hi32-app-kscope.png | Bin 0 -> 1828 bytes src/historypage.cpp | 124 + src/historypage.h | 72 + src/historyview.cpp | 124 + src/historyview.h | 91 + src/kscope.cpp | 1754 ++++++ src/kscope.desktop | 12 + src/kscope.h | 235 + src/kscope.lsm | 16 + src/kscope_config | 165 + src/kscopeactions.cpp | 533 ++ src/kscopeactions.h | 98 + src/kscopeconfig.cpp | 768 +++ src/kscopeconfig.h | 218 + src/kscopepixmaps.cpp | 376 ++ src/kscopepixmaps.h | 77 + src/kscopeui.rc | 141 + src/lo16-app-kscope.png | Bin 0 -> 326 bytes src/lo32-app-kscope.png | Bin 0 -> 308 bytes src/main.cpp | 97 + src/makedlg.cpp | 267 + src/makedlg.h | 78 + src/makefrontend.cpp | 134 + src/makefrontend.h | 61 + src/makelayout.ui | 245 + src/newprojectdlg.cpp | 354 ++ src/newprojectdlg.h | 112 + src/newprojectlayout.ui | 778 +++ src/openprojectdlg.cpp | 131 + src/openprojectdlg.h | 61 + src/openprojectlayout.ui | 202 + src/prefcolor.cpp | 172 + src/prefcolor.h | 59 + src/prefcolorlayout.ui | 69 + src/preferencesdlg.cpp | 206 + src/preferencesdlg.h | 93 + src/preffont.cpp | 174 + src/preffont.h | 60 + src/preffontlayout.ui | 69 + src/preffrontend.cpp | 238 + src/preffrontend.h | 65 + src/preffrontendlayout.ui | 193 + src/prefopt.cpp | 145 + src/prefopt.h | 58 + src/prefoptlayout.ui | 217 + src/progressdlg.cpp | 116 + src/progressdlg.h | 66 + src/project.cpp | 442 ++ src/project.h | 92 + src/projectbase.cpp | 190 + src/projectbase.h | 281 + src/projectfilesdlg.cpp | 439 ++ src/projectfilesdlg.h | 104 + src/projectfileslayout.ui | 201 + src/projectmanager.cpp | 180 + src/projectmanager.h | 56 + src/query_locked.png | Bin 0 -> 774 bytes src/query_unlocked.png | Bin 0 -> 923 bytes src/querypage.cpp | 211 + src/querypage.h | 86 + src/querypagebase.cpp | 194 + src/querypagebase.h | 148 + src/queryresultsmenu.cpp | 170 + src/queryresultsmenu.h | 110 + src/queryview.cpp | 444 ++ src/queryview.h | 217 + src/queryviewdlg.cpp | 111 + src/queryviewdlg.h | 88 + src/queryviewdriver.cpp | 180 + src/queryviewdriver.h | 84 + src/queryviewlayout.ui | 167 + src/querywidget.cpp | 601 ++ src/querywidget.h | 152 + src/querywidgetlayout.ui | 62 + src/scanprogressdlg.cpp | 82 + src/scanprogressdlg.h | 69 + src/scanprogresslayout.ui | 115 + src/searchlist.cpp | 270 + src/searchlist.h | 144 + src/searchresultsdlg.cpp | 160 + src/searchresultsdlg.h | 74 + src/searchresultslayout.ui | 214 + src/symbolcompletion.cpp | 344 ++ src/symbolcompletion.h | 195 + src/symboldlg.cpp | 334 + src/symboldlg.h | 91 + src/symbollayout.ui | 297 + src/tab_list.png | Bin 0 -> 279 bytes src/tabwidget.cpp | 84 + src/tabwidget.h | 59 + src/treewidget.cpp | 260 + src/treewidget.h | 82 + src/welcomedlg.ui | 126 + stamp-h.in | 0 subdirs | 3 + templates/cpp | 26 + templates/h | 26 + 204 files changed, 46362 insertions(+) create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 ChangeLog create mode 100644 Doxyfile create mode 100644 INSTALL create mode 100644 Makefile.am create mode 100644 NEWS create mode 100644 README create mode 100644 TODO create mode 100644 acinclude.m4 create mode 100644 aclocal.m4 create mode 100644 config.h.in create mode 100644 configure.files create mode 100644 configure.in create mode 100644 configure.in.in create mode 100644 doc/Makefile.am create mode 100644 doc/en/Makefile.am create mode 100644 doc/en/about.docbook create mode 100644 doc/en/autocomp_dlg.png create mode 100644 doc/en/bookmarks.docbook create mode 100644 doc/en/bookmarks.png create mode 100644 doc/en/call_graph.png create mode 100644 doc/en/call_tree.png create mode 100644 doc/en/config_dlg.docbook create mode 100644 doc/en/editing.docbook create mode 100644 doc/en/index.docbook create mode 100644 doc/en/main_menu.docbook create mode 100644 doc/en/main_window.docbook create mode 100644 doc/en/main_window.png create mode 100644 doc/en/pos_history.docbook create mode 100644 doc/en/pref_clrs.png create mode 100644 doc/en/pref_fonts.png create mode 100644 doc/en/pref_opts.png create mode 100644 doc/en/pref_progs.png create mode 100644 doc/en/project_details.png create mode 100644 doc/en/project_files.png create mode 100644 doc/en/project_make.png create mode 100644 doc/en/project_open.png create mode 100644 doc/en/project_opts.png create mode 100644 doc/en/project_types.png create mode 100644 doc/en/projects.docbook create mode 100644 doc/en/query_dlg.png create mode 100644 doc/en/query_filter.png create mode 100644 doc/en/query_system.docbook create mode 100644 doc/en/quick_start.docbook create mode 100644 po/Makefile.am create mode 100644 po/kscope.pot create mode 100644 po/zh_CN.po create mode 100644 src/Makefile.am create mode 100644 src/autocompletionlayout.ui create mode 100644 src/bookmark.png create mode 100644 src/bookmarksdlg.cpp create mode 100644 src/bookmarksdlg.h create mode 100644 src/bookmarkslayout.ui create mode 100644 src/call_graph.png create mode 100644 src/called_tree.png create mode 100644 src/calling_tree.png create mode 100644 src/calltreedlg.cpp create mode 100644 src/calltreedlg.h create mode 100644 src/calltreelayout.ui create mode 100644 src/calltreemanager.cpp create mode 100644 src/calltreemanager.h create mode 100644 src/configfrontend.cpp create mode 100644 src/configfrontend.h create mode 100644 src/cscopefrontend.cpp create mode 100644 src/cscopefrontend.h create mode 100644 src/cscopemsgdlg.cpp create mode 100644 src/cscopemsgdlg.h create mode 100644 src/cscopemsglayout.ui create mode 100644 src/ctagsfrontend.cpp create mode 100644 src/ctagsfrontend.h create mode 100644 src/ctagslist.cpp create mode 100644 src/ctagslist.h create mode 100644 src/dirscanner.cpp create mode 100644 src/dirscanner.h create mode 100644 src/dotfrontend.cpp create mode 100644 src/dotfrontend.h create mode 100644 src/dotparse.ypp create mode 100644 src/dotscan.lpp create mode 100644 src/editormanager.cpp create mode 100644 src/editormanager.h create mode 100644 src/editorpage.cpp create mode 100644 src/editorpage.h create mode 100644 src/editortabs.cpp create mode 100644 src/editortabs.h create mode 100644 src/encoder.cpp create mode 100644 src/encoder.h create mode 100644 src/file_ro.png create mode 100644 src/file_rw.png create mode 100644 src/file_save.png create mode 100644 src/filelist.cpp create mode 100644 src/filelist.h create mode 100644 src/fileview.cpp create mode 100644 src/fileview.h create mode 100644 src/fileviewlayout.ui create mode 100644 src/frontend.cpp create mode 100644 src/frontend.h create mode 100644 src/graphedge.cpp create mode 100644 src/graphedge.h create mode 100644 src/graphnode.cpp create mode 100644 src/graphnode.h create mode 100644 src/graphprefdlg.cpp create mode 100644 src/graphprefdlg.h create mode 100644 src/graphpreflayout.ui create mode 100644 src/graphwidget.cpp create mode 100644 src/graphwidget.h create mode 100644 src/hi16-app-kscope.png create mode 100644 src/hi32-app-kscope.png create mode 100644 src/historypage.cpp create mode 100644 src/historypage.h create mode 100644 src/historyview.cpp create mode 100644 src/historyview.h create mode 100644 src/kscope.cpp create mode 100644 src/kscope.desktop create mode 100644 src/kscope.h create mode 100644 src/kscope.lsm create mode 100644 src/kscope_config create mode 100644 src/kscopeactions.cpp create mode 100644 src/kscopeactions.h create mode 100644 src/kscopeconfig.cpp create mode 100644 src/kscopeconfig.h create mode 100644 src/kscopepixmaps.cpp create mode 100644 src/kscopepixmaps.h create mode 100644 src/kscopeui.rc create mode 100644 src/lo16-app-kscope.png create mode 100644 src/lo32-app-kscope.png create mode 100644 src/main.cpp create mode 100644 src/makedlg.cpp create mode 100644 src/makedlg.h create mode 100644 src/makefrontend.cpp create mode 100644 src/makefrontend.h create mode 100644 src/makelayout.ui create mode 100644 src/newprojectdlg.cpp create mode 100644 src/newprojectdlg.h create mode 100644 src/newprojectlayout.ui create mode 100644 src/openprojectdlg.cpp create mode 100644 src/openprojectdlg.h create mode 100644 src/openprojectlayout.ui create mode 100644 src/prefcolor.cpp create mode 100644 src/prefcolor.h create mode 100644 src/prefcolorlayout.ui create mode 100644 src/preferencesdlg.cpp create mode 100644 src/preferencesdlg.h create mode 100644 src/preffont.cpp create mode 100644 src/preffont.h create mode 100644 src/preffontlayout.ui create mode 100644 src/preffrontend.cpp create mode 100644 src/preffrontend.h create mode 100644 src/preffrontendlayout.ui create mode 100644 src/prefopt.cpp create mode 100644 src/prefopt.h create mode 100644 src/prefoptlayout.ui create mode 100644 src/progressdlg.cpp create mode 100644 src/progressdlg.h create mode 100644 src/project.cpp create mode 100644 src/project.h create mode 100644 src/projectbase.cpp create mode 100644 src/projectbase.h create mode 100644 src/projectfilesdlg.cpp create mode 100644 src/projectfilesdlg.h create mode 100644 src/projectfileslayout.ui create mode 100644 src/projectmanager.cpp create mode 100644 src/projectmanager.h create mode 100644 src/query_locked.png create mode 100644 src/query_unlocked.png create mode 100644 src/querypage.cpp create mode 100644 src/querypage.h create mode 100644 src/querypagebase.cpp create mode 100644 src/querypagebase.h create mode 100644 src/queryresultsmenu.cpp create mode 100644 src/queryresultsmenu.h create mode 100644 src/queryview.cpp create mode 100644 src/queryview.h create mode 100644 src/queryviewdlg.cpp create mode 100644 src/queryviewdlg.h create mode 100644 src/queryviewdriver.cpp create mode 100644 src/queryviewdriver.h create mode 100644 src/queryviewlayout.ui create mode 100644 src/querywidget.cpp create mode 100644 src/querywidget.h create mode 100644 src/querywidgetlayout.ui create mode 100644 src/scanprogressdlg.cpp create mode 100644 src/scanprogressdlg.h create mode 100644 src/scanprogresslayout.ui create mode 100644 src/searchlist.cpp create mode 100644 src/searchlist.h create mode 100644 src/searchresultsdlg.cpp create mode 100644 src/searchresultsdlg.h create mode 100644 src/searchresultslayout.ui create mode 100644 src/symbolcompletion.cpp create mode 100644 src/symbolcompletion.h create mode 100644 src/symboldlg.cpp create mode 100644 src/symboldlg.h create mode 100644 src/symbollayout.ui create mode 100644 src/tab_list.png create mode 100644 src/tabwidget.cpp create mode 100644 src/tabwidget.h create mode 100644 src/treewidget.cpp create mode 100644 src/treewidget.h create mode 100644 src/welcomedlg.ui create mode 100644 stamp-h.in create mode 100644 subdirs create mode 100644 templates/cpp create mode 100644 templates/h diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..347a597 --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ +Elad Lahav diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..1c86e1a --- /dev/null +++ b/COPYING @@ -0,0 +1,20 @@ +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..6e6f7c9 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,408 @@ +1.6.2 (?) + +* New: Support for hidden project folders under the source root +* Bug fix: Make the configuration script sh-friendly +* Bug fix: Handle unicode characters on gcc's output +* Bug fix: KScope crashes when clicking on empty area in the tree view +* Bug fix: Do not show the "Function" column in the error list +* Bug fix: Do not close KScope when choosing "Cancel" in the "Save Files?" + message box + +1.6.1 (9-Jan-2008) + +* New: Support for case-insensitive queries +* New: Per-project Ctags command line (for advanced users only) +* Bug fix: Stop queries when their result windows are destroyed +* Bug fix: Query results sorted by line numbers are sorted numerically +* Translation: Chinese + +1.6.0 (10-Jul-2007) + +* Improved: Updated the documentation +* Improved: Implemented multiple-call nodes in the call-graph +* Improved: Workspace toolbar buttons re-arranged +* Improved: Hitting Enter in the "Open Project" dialogue's list of + recent projects opens the selected project +* Bug fix: Handle file extensions correctly in the file list +* Bug fix: Avoid hanging status bar messages when a project is closed +* Bug fix: Prevent infinite loops in the file finder in the presence of + recursive symbolic links +* Bug fix: Child windows should not disappear when dialogues are invoked +* Bug fix: Added padding to the call graph, to avoid chopped-off drawing + of nodes close to the borders +* Bug fix: Honour the preferred font when drawing the graph +* Bug fix: Delete temporary dot files used for drawing graphs +* Bug fix: Save call-tree files when a project is closed +* Bug fix: Clean-up a project's directory name after it is created + +1.5.2 (7-May-2007) + +* New: Useable global bookmarks system +* Improved: Better infrastructure for handling projects +* Improved: The soure root is set in the project properties dialogue +* Improved: When saving a new file, the user is asked whether to include + it in the project +* Improved: New toolbar layout +* Improved: Temporary projects appear in the list of recently open + projects +* Improved: Load a temporary project's cscope.files file, if it exists +* Bug fix: Enable file/project menu items only when a file/project is + open +* Bug fix: Handle column numbers in make output +* Bug fix: Do not allow multiple instances of the same command in the + make history +* Bug fix: Dropped project semaphores (too much hassle for a minor + feature) +* Compilation fix: Support for automake 1.10 + +1.5.1 (15-Feb-2007) + +* Improved: Support for recursive builds (make changing directories) +* Improved: Show build errors/warnings on a separate list +* Bug fix: The main window was not activated when requesting a source + position in a child window (call tree or the make window) +* Bug fix: Maintain Call-tree child item order (by line) +* Bug fix: Build output occasionally mixed standard output with standard + error + +1.5.0 (6-Feb-2007) + +* New: Make front-end (Rudimentary) +* New: Global bookmarks list +* New: Support for Cscope's -c and -D command-line options (-D requires + a patch to Cscope) +* Improved: Detect Cscope's executable and capabilities on each load +* Improved: Graph windows are no longer top-level (can be minimised or + hidden behind the main window) +* Improved: Do not automatically open a project if it was already loaded + by another instance of KScope +* Improved: Show #include directives in the tag list +* Bug fix: Better calculation of the area defined by a graph arrow +* Bug fix: Files could not be found in the file list when using a common + root ($) + +1.4.3 (15-Jan-2007) + +* New: Option for negating filters on query result lists +* New: Command for setting the keyboard focus to the tag list +* Improved: Restrict tag/file list navigation to current search pattern +* Improved: Show goto labels in the tag list +* Bug fix: Crash due to in-edges not being removed along with a function +* Bug fix: Connected components disappeared after filtering calling/ + called functions +* Bug fix: Use only sh-style ouput redirection in kscope_config + +1.4.2 (16-Oct-2006) + +* New: Tool-tips for the project's file list +* New: "Find Definition" entry in the query-results popup menu +* Improved: Added '*.S' (kernel assembly files) to the list of standard + file types +* Improved: Some code clean-ups in the query-results popup menu +* Bug fix: All query results following a global definition were omitted + +1.4.1 (23-Aug-2006) + +* Improved: Speed-up result list filtering +* Improved: Keyboard shortcuts for the first entries in the Window menu +* Improved: Show assmebly labels in the tag list +* Bug fix: KScope crashes when a node is removed from the graph +* Bug fix: KScope crashes when Next/Previous Result is invoked on an + empty query results list +* Bug fix: Prevent whitespace in project names +* Bug fix: Add entries to the results query list in the right order +* Bug fix: Fixed several memory leaks + +1.4.0 (9-Aug-2006) + +* New: Option for sorting the file list when a project is loaded (on by + default) +* Improved: The documentation is now up to date +* Improved: Nicer layout for the "New Project" dialogue +* Improved: Corrections to the desktop file (thanks to Tom Albers) +* Improved: Close a project automatically before a new one is created +* Bug fix: Do not show the progress dialogue if building fails to start +* Compilation fix: Include stdlib.h in graphwidget.cpp +* Compilation fix: Support for autoconf 2.6x +* Compilation fix: Removed unnecessary options from the YACC source file +* Compilation fix: Abort configuration if lex/flex and yacc/bison are not + found + +1.3.4 (14-Apr-2006) + +* New: Use graphviz from the command-line (dot). Should finally solve _all_ + licensing issues +* New: Informative welcome message +* Improved: Allow multiple files on "File->Open..." +* Improved: Better tool-tips for the tag list +* Bug fix: KScope crashes after startup when attempting to set the cursor + to a non-existing line + +1.3.3 (5-Jan-2006) + +* License changed to BSD due to incompatibility between the GPL and the CPL + (graphviz) +* New: Multiple-view call graph/tree dialogue +* Improved: Function name is displayed first (consistent behaviour for query + views and call tree widgets) +* Improved: Updated to the latest KDE 'configure' template + +1.3.2 (16-Nov-2005) + +* New: Support for graphviz 2.6 +* Improved: The 'configure' script detects he graphviz version and build flags +* Improved: Better automatic configuration script for Cscope and Ctags +* Improved: Added 'exctags' to the search for exuberant-ctags (FreeBSD) +* Bug fix: Cursor set to the end of the line when jumping to a location in the + code +* Bug fix: Draw the call graph using the current DPI settings +* Bug fix: Automatic configuration script no longer depends on "source" (which + is not available for all shells) +* Bug fix: Editor GUI not merged upon opening a project if the selected file is + the last one loaded + +1.3.1 (14-Oct-2005) + +* New: "Save All" menu command (was not included in previous release, despite + a claim to the contrary) +* New: List and filter called/calling functions in the call graph +* New: Delete graph nodes +* New: Limit graph node in/out degree (requires latest Cscope CVS snapshot) +* Improved: Redesigned node menu in the graph widget +* Improved: All query result views share the same widget +* Improved: Session management remembers file locations and last open file + (thanks to Alexander Kern) +* Bug Fix: Delete graph files when they are no longer required (i.e., after + a graph dialogue is manually closed) +* Bug fix: Do not show a border around the graph (nasty fix, but it works) +* Bug fix: Nodes are now always drawn on top of edges +* Compilation fix: Use QPtrList instead of the deprecated QList +* Compilation fix: Should now compile with gcc 4.x + +1.3.0 (29-Jun-2005) + +* New: A new call graph based on the graphviz library +* New: Use a special dialogue for executing and displaying quick + definition queries +* New: Use the project's root in the file list (root directory replaced + by a $ symbol) +* Improved: Faster compilation through the inclusion of moc files +* Improved: Better organised menu and toolbars +* Improved: Quick definition does not write into the query widget + +1.2.0 (25-May-2005) + +* New: Keyboard shortcut for setting the focus to the file list +* Improved: Documentation is now up to date +* Improved: Use standard configuration actions +* Improved: Faster loading times for projects +* Bug fix: Incorrect sorting of the symbol history combo-box +* Bug fix: Query window hidden unnecessarily on some occasions +* Bug fix: A hidden query window is shown by the "Position History" menu + command +* Bug fix: Modifying non-project files triggered a database rebuild + +1.1.1 (17-Mar-2005) + +* New: A new tab widget that displays a popup-menu with all open tabs +* New: Automatic configuration of Cscope/Ctags paths and parameters +* New: Filter query results +* New: Tag list can be hidden +* Improved: Display unique entries in the completion list +* Improved: Two options for the editor's popup menu: Cscope actions embedded + in the editor's own menu, or the old-style KScope-only menu +* Improved: The process of closing all editor windows (explicitly, when closing a + project or when exiting KScope) is much faster +* Bug fix: Do not show a hidden query window when browsing through position + history +* Bug fix: Refreshing a locked query opened a new page +* Bug fix: Possibly wrong tag-highlighting if cursor was moved while Ctags is + working +* Compilation Fix: Compiles under KDE 3.2 again + +1.1.0 (1-Feb-2005) + +* New: Cross-reference database is rebuilt automatically +* New: Symbol completion (manual and automatic) +* New: Allow multiple queries to be issued simultaneously +* New: Query dialogue with symbol hinting, history, substring search option + and and the ability to change the query type +* New: System profiles (fast/slow) determine default settings for + time-consuming operations +* New: Multiple position history paths +* New: Postion history can be saved and restored +* New: Drag&Drop support +* New: Optional warnings when file is modified outside KScope (Supports Kate + part only) +* New: Call Tree support for both Called and Calling tree modes +* New: Call Tree save/restore support within the project +* New: Unobtrusive progress information for all Cscope queries +* New: Query results popup-menu for copying and removing items +* New: Menu option for showing/hiding the toolbar +* New: Configurable keyboard shortcuts +* Improved: More command line options +* Improved: External editor can be invoked in read-write mode +* Improved: Faster project load times (file list is not sorted by default) +* Bug fix: Symbol list last entry was not found +* Bug fix: Crashed when jumping to a new position and no pages are open +* Bug fix: Synchronise splitter sizes whenever a page gains focus +* Bug fix: Query dialogue suggested text did not check current character +* Bug fix: the progress information did not work with inverted index or + regular expressions + + +1.0 (7-Dec-2004) +* Bug fix: Selecting entries in the position history dialogue messes up the + history (thanks to Fekete Gabor) +* Bug fix: Double clicking a directory name in the file system tree view opens + an editor page (thanks to Fekete Gabor) +* Bug fix: "No source file found" message not detected since error output may + be broken (fix allows Cscope restart mechanism to be re-enabled) +* Bug fix: Return file-system root as the root directory of a temporary project +* Bug fix: Handle file names without an extension in the file list (thanks to + Anton G. Alvedro) +* Bug fix: Show the main window before loading the last project (fixes + problems with the width of the tag list) +* Bug fix: Use CTRL-5 for the EGrep pattern shortcut (CTRL-6 is already used + by Kate) +* Bug fix: Do not restart Cscope when a file of the wrong format is opened as + a cscope.out file +* Bug fix: Open editor pages were not found when using relative paths in + cscope.files (thanks to Chris Mason) +* Bug fix: Cannot rebuild database when working with temporary projects, + re-run Cscope instead (thanks to Chris Mason) +* Bug fix: Do not populate file tree recursively (may significantly + increase the project loading time) (thanks to Albert Yosher) +* Bug fix: Maximise main window before displaying the welcome message (on + first time usage) +* Bug fix: Empty position history was added if jumping when no files were + open (thanks to Fekete Gabor) +* Bug fix: Editor was not set to read-write mode if the edited file changed + its permission (thanks to Albert Yosher) +* Bug fix: Clean paths from '.' and '..' before opening a file (thanks to + Albert Yosher) +* Bug fix: KScope Crashes after applying new configuration if an empty query page + exists +* Bug fix: Use Ctrl-\ for a call tree (Ctrl-- is already used by Kate) +* Improved project loading process +* Made documentation compliant with KDE's conventions + +0.9 (14-Oct-2004) +* Option for using an external editor +* File-system tree-view +* Use application icons for tabs (for consistent look across themes) +* Option for shorter query captions (thanks to Fekete Gabor) +* Store current location before jumping (fixes position history behaviour) +* Show current file path in KScope's title bar +* Handle read-only files correctly +* Show a special tab icon for a read-only file +* Vim-style quick definition +* Bug fix: ignore Cscope's "Possible references retrieved" messages + (thanks to Fekete Gabor) +* Bug fix: report Cscope is working when rebuilding the cross-reference + database + +0.8 (2-Aug-2004) +* Select word from cursor position when initiating a query +* Show cursor position in status bar +* Highlight relevant tag based on cursor position +* Allow running KScope in read-only mode +* "Fonts" preference page +* "Options" preference page +* A "refresh query" command for the query pages +* Query file format changed to include query type and text (old files will + not be loaded) +* Bug fix: restore file icon to unchanged when all undo levels have been + applied (thanks to Fekete Gabor) +* Bug fix: better handling of the tag list width +* Bug fix: accept any file name containing "ctags" as the Ctags executable + (since Gentoo is using exuberant-ctags) +* Bug fix: files could not be reopened after "Close All Windows" (thanks to + Fekete Gabor) +* Bug fix: query window may be incorrectly hidden if query returns a + single record + +0.7 (15-Jun-2004) +* Restore project session (open files and locked queries) +* Lock/unlock queries +* Prompt to save files before any file is closed +* Use KTabWidget for both the Editors window and the Query window +* Mark modified files +* Show/hide the file list and the query window (thanks to Fekete Gabor) +* Save/restore main window layout +* Better Ctags support (using native Ctags files) +* Open Cscope.out files in temporary projects, also available from the + command line (thanks to Fekete Gabor) +* Removed sort buttons (requires further consideration) +* Tag list sorting order is saved +* Query page buttons to the right of the query widget +* Bug fix: project was not closed if program was terminated from the main + window's title-bar +* Bug fix: allow ctags-exuberant as the programme name for Ctags + +0.6 (21-Apr-2004) +* Adjusted to KDE 3.2 (previous versions are no longer supported) +* Implemented standard "New File" and "Open File" commands +* Line numbers are aligned to the right +* Display the type of each file in the file list +* Use unsigned int for the entry size in Frontend (fixes compiler warnings) +* Implemented Cscope's search for file query +* Files are opened automatically if only one record was returned by a query +* Close buttons for the editor tabs +* Display Cscope error messages in a modeless dialogue +* Basic navigation through position history +* Open last project on restart +* Option to build inverted index for projects (thanks to Fekete Gabor) +* Project properties dialogue +* Bug fix: calling for an including files query prompts for an EGrep pattern + (thanks to Fekete Gabor) +* Bug fix: program crashes on including files query +* Bug fix: set keyboard focus to editor when moving between tabs + +0.5 (3-Jan-2004) +* Moved project to KDevelop 3.0 format +* A new "Window" menu displaying a list of open files +* The full path name appears as a tool-tip on each editor tab +* Close buttons for query results windows +* Fixed Tab order in dialogues + +0.4 (9-Oct-2003) +* New integrated manual +* Project files dialogue (add/remove source files) +* Prompt for files when a project is empty +* Bug fix: Error in rebuild command to cscope (string too long) +* Bug fix: Directory names in the paths configuration were mistaken as legal + executable files +* Bug fix: The directory scanner did not clean its list between consecutive + searches (thanks to Craig Graham for this fix) +* Bug fix: Initial file count in the dir scanning progress dialogue showed + '123456' instead of '0' +* Prompt the user to close the active project before creating a new one +* Prevent the user from cancelling an already-finished query (i.e., while + results are written to the query window) + +0.3 (3-Aug-2003) +* Context menu for running queries from an editor window +* A dummy progress dialogue is displayed when progress information is + unavailable (simply to indicate that KScope is working) +* Bug fix: Mix-up between the "Calling functions" and "Called functions" in + the query page titles +* Bug fix: Only ".c" and ".h" files could be added to a project +* New query type: find #including files +* Inform the user when a query ends with no results +* Menu command to close the active project +* All query pages are removed when a project is closed + +0.2 (21-Jul-2003) +* Call tree window +* High-colour icons +* Sort buttons for the tag list +* Partial fix for the cursor positioning bug in Kate + +0.1 (3-Jul-2003) +* First public release +* Front-end to most CScope features +* Basic editing environment (multiple windows) +* Tag list for each open editor +* Multiple query windows +* Basic project management diff --git a/Doxyfile b/Doxyfile new file mode 100644 index 0000000..beead8d --- /dev/null +++ b/Doxyfile @@ -0,0 +1,259 @@ +# Doxyfile 1.4.1-KDevelop + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = KScope +PROJECT_NUMBER = 1.3.3 +OUTPUT_DIRECTORY = +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +DISTRIBUTE_GROUP_DOC = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = NO +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = YES +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = YES +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = src +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.idl \ + *.odl \ + *.cs \ + *.php \ + *.php3 \ + *.inc \ + *.C \ + *.H \ + *.tlh \ + *.diff \ + *.patch \ + *.moc \ + *.xpm \ + *.dox +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = NO +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = NO +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = YES +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = NO +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = YES +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 1000 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..02a4a07 --- /dev/null +++ b/INSTALL @@ -0,0 +1,167 @@ +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/Makefile.am b/Makefile.am new file mode 100644 index 0000000..cac2bf1 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,22 @@ +SUBDIRS = $(TOPSUBDIRS) + +$(top_srcdir)/configure.in: configure.in.in $(top_srcdir)/subdirs + cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.in ; + +$(top_srcdir)/subdirs: + cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common subdirs + +$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in + @cd $(top_srcdir) && cat admin/acinclude.m4.in admin/libtool.m4.in > acinclude.m4 + +MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 configure.files + +package-messages: + $(MAKE) -f admin/Makefile.common package-messages + $(MAKE) -C po merge + +EXTRA_DIST = admin COPYING configure.in.in + +dist-hook: + cd $(top_distdir) && perl admin/am_edit -padmin + cd $(top_distdir) && $(MAKE) -f admin/Makefile.common subdirs diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..0519ecb --- /dev/null +++ b/NEWS @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/README b/README new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/README @@ -0,0 +1 @@ + diff --git a/TODO b/TODO new file mode 100644 index 0000000..0eb7e72 --- /dev/null +++ b/TODO @@ -0,0 +1,17 @@ +KScope TODO List +================ + +No. Problem Type Target Version +~~~ ~~~~~~~ ~~~~ ~~~~~~~~~~~~~~ + +01. Project bookmark infrastructure/GUI Feat ? + +02. "Find Next" in search lists Feat ? + +03. New call tree widget Feat ? + +04. Plugin architecture Feat ? + +05. New GUI Feat ? + * IDEAl-style main window (?) + * True MDI (?) diff --git a/acinclude.m4 b/acinclude.m4 new file mode 100644 index 0000000..e6a6582 --- /dev/null +++ b/acinclude.m4 @@ -0,0 +1,11345 @@ +## -*- 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., 51 Franklin Street, Fifth Floor, +dnl Boston, MA 02110-1301, 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 + if test "$KDECONFIG" != "compiled"; then + if test `$KDECONFIG --version | grep KDE | sed 's/KDE: \(...\).*/\1/'` = 3.2; then + kde33ornewer= + fi + 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" -a "$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 + KDE_CHECK_PIE_SUPPORT + +# 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 + +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" + +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 + LIBQT="-l$qtlib-mt" + kde_int_qt="-l$qtlib-mt" + 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 it is 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 + case $host in + *cygwin*) lib_kded="-lkdeinit_kded" ;; + *) lib_kded="" ;; + esac + AC_SUBST(LIB_KDED, $lib_kded) + 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") + AC_SUBST(LIB_KUNITTEST, "-lkunittest") +# 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( +[ +#ifdef __cplusplus +extern "C" { +#endif +void jpeg_CreateDecompress(); +#ifdef __cplusplus +} +#endif +], +[jpeg_CreateDecompress();], + 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([KDE_FIND_LIBEXR], +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_REQUIRE([AC_FIND_ZLIB]) +AC_CACHE_VAL(ac_cv_libexr, +[ + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + AC_MSG_CHECKING([for OpenEXR libraries]) + + if test "$PKG_CONFIG" = "no" ; then + AC_MSG_RESULT(no) + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + if !(`$PKG_CONFIG --exists OpenEXR`) ; then + AC_MSG_RESULT(no) + EXRSTATUS=no + else + if !(`$PKG_CONFIG --atleast-version="1.1.1" OpenEXR`) ; then + AC_MSG_RESULT(no) + EXRSTATUS=old + else + kde_save_LIBS="$LIBS" + LIBS="$LIBS $all_libraries $USER_LDFLAGS $LIBZ `pkg-config --libs OpenEXR`" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + kde_save_CXXFLAGS="$CXXFLAGS" + EXR_FLAGS=`$PKG_CONFIG --cflags OpenEXR` + CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES $EXR_FLAGS" + + AC_TRY_LINK(dnl + [ + #include + ], + [ + using namespace Imf; + RgbaInputFile file ("dummy"); + return 0; + ], + eval "ac_cv_libexr='`pkg-config --libs OpenEXR`'", + eval "ac_cv_libexr=no" + ) + LIBS="$kde_save_LIBS" + CXXFLAGS="$kde_save_CXXFLAGS" + AC_LANG_RESTORE + ])dnl + if eval "test ! \"`echo $ac_cv_libexr`\" = no"; then + AC_DEFINE_UNQUOTED(HAVE_EXR, 1, [Define if you have OpenEXR]) + LIB_EXR="$ac_cv_libexr" + AC_MSG_RESULT($ac_cv_libexr) + else + AC_MSG_RESULT(no) + LIB_EXR="" + fi + fi + fi + fi + AC_SUBST(LIB_EXR) + AC_SUBST(EXR_FLAGS) +]) + + + +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 +]) + + +AC_DEFUN([KDE_CHECK_FOR_BAD_COMPILER], +[ + AC_MSG_CHECKING([whether $CC is blacklisted]) + + dnl In theory we have tu run this test against $CC and $CXX + dnl in C and in C++ mode, because its perfectly legal for + dnl the user to mix compiler versions, since C has a defined + dnl ABI. + dnl + dnl For now, we assume the user is not on crack. + + AC_TRY_COMPILE([ +#ifdef __GNUC__ +#if __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 0 +choke me +#endif +#endif +], , + kde_bad_compiler=no, + kde_bad_compiler=yes +) + + AC_MSG_RESULT($kde_bad_compiler) + +if test "$kde_bad_compiler" = "yes"; then + AC_MSG_ERROR([ + +This particular compiler version is blacklisted because it +is known to miscompile KDE. Please use a newer version, or +if that is not yet available, choose an older version. + +Please do not report a bug or bother us reporting this +configure error. We know about it, and we introduced +it by intention to avoid untraceable bugs or crashes in KDE. + +]) +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 + + KDE_CHECK_FOR_BAD_COMPILER + + 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 $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"]) + dnl ### FIXME: revert for KDE 4 + KDE_CHECK_COMPILER_FLAG(Wno-non-virtual-dtor,[CXXFLAGS="$CXXFLAGS -Wno-non-virtual-dtor"]) + 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_ENABLE_HIDDEN_VISIBILITY], +[ + AC_BEFORE([AC_PATH_QT_1_3], [KDE_ENABLE_HIDDEN_VISIBILITY]) + + AC_MSG_CHECKING([grepping for visibility push/pop in headers]) + + if test "x$GXX" = "xyes"; then + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_EGREP_CPP( + [GCC visibility push], + [ #include + ], + [ + AC_MSG_RESULT(yes) + kde_stdc_visibility_patched=yes ], + [ + AC_MSG_RESULT(no) + AC_MSG_WARN([Your libstdc++ doesn't appear to be patched for + visibility support. Disabling -fvisibility=hidden]) + + kde_stdc_visibility_patched=no ]) + + AC_LANG_RESTORE + + kde_have_gcc_visibility=no + KDE_CHECK_COMPILER_FLAG(fvisibility=hidden, + [ + kde_have_gcc_visibility=yes + dnl the whole toolchain is just a mess, gcc is just too buggy + dnl to handle STL with visibility enabled. Lets reconsider + dnl when gcc 4.2 is out or when things get fixed in the compiler. + dnl Contact mueller@kde.org for details. + AC_ARG_ENABLE(gcc-hidden-visibility, + AC_HELP_STRING([--enable-gcc-hidden-visibility],[toolchain hidden visibility [default=no]]), + [kde_have_gcc_visibility=$enableval], + [kde_have_gcc_visibility=no]) + + AC_CACHE_CHECK([if Qt is patched for -fvisibility], kde_cv_val_qt_gcc_visibility_patched, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + safe_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$CXXFLAGS $all_includes" + + AC_TRY_COMPILE( + [ +#include +#if Q_EXPORT - 0 != 0 +/* if this compiles, then Q_EXPORT is undefined */ +/* if Q_EXPORT is nonempty, this will break compilation */ +#endif + ], [/* elvis is alive */], + kde_cv_val_qt_gcc_visibility_patched=no, kde_cv_val_qt_gcc_visibility_patched=yes) + + CXXFLAGS=$safe_CXXFLAGS + AC_LANG_RESTORE + ] + ) + + if test x$kde_have_gcc_visibility = "xyes" && test x$kde_stdc_visibility_patched = "xyes" && test x$kde_cv_val_qt_gcc_visibility_patched = "xyes"; then + 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 + ]) + fi +]) + +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) + +# This hack ensures that libtool creates shared libs for kunittest plugins. By default check_LTLIBRARIES makes static libs. +KDE_CHECK_PLUGIN="\$(KDE_PLUGIN) -rpath \$(libdir)" +AC_SUBST(KDE_CHECK_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" + LIBS="-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", [ + LIBS="-lXdpms $LIBS" + 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 + #include ]) + AH_TEMPLATE(HAVE_DPMSINFO_PROTO, + [Define if you have the DPMSInfo prototype in ]) + AC_CHECK_DECL(DPMSInfo, + AC_DEFINE(HAVE_DPMSINFO_PROTO),, + [#include + #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) +]) + + +dnl Check for PIE support in the compiler and linker +AC_DEFUN([KDE_CHECK_PIE_SUPPORT], +[ + AC_CACHE_CHECK([for PIE support], kde_cv_val_pie_support, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + safe_CXXFLAGS=$CXXFLAGS + safe_LDFLAGS=$LDFLAGS + CXXFLAGS="$CXXFLAGS -fpie" + LDFLAGS="$LDFLAGS -pie" + + AC_TRY_LINK([int foo;], [], [kde_cv_val_pie_support=yes], [kde_cv_val_pie_support=no]) + + CXXFLAGS=$safe_CXXFLAGS + LDFLAGS=$safe_LDFLAGS + AC_LANG_RESTORE + ]) + + AC_MSG_CHECKING(if enabling -pie/fpie support) + + AC_ARG_ENABLE(pie, + AC_HELP_STRING([--enable-pie],[platform supports PIE linking [default=detect]]), + [kde_has_pie_support=$enableval], + [kde_has_pie_support=detect]) + + if test "$kde_has_pie_support" = "detect"; then + kde_has_pie_support=$kde_cv_val_pie_support + fi + + AC_MSG_RESULT([$kde_has_pie_support]) + + KDE_USE_FPIE="" + KDE_USE_PIE="" + + AC_SUBST([KDE_USE_FPIE]) + AC_SUBST([KDE_USE_PIE]) + + if test "$kde_has_pie_support" = "yes"; then + KDE_USE_FPIE="-fpie" + KDE_USE_PIE="-pie" + fi +]) +# 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_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 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_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([LT_AC_PROG_SED])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(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 + +ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) +ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], +enable_win32_dll=yes, enable_win32_dll=no) + +AC_ARG_ENABLE([libtool-lock], + [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. +set dummy $CC +compiler="[$]2" +])# _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_PROG_ECHO_BACKSLASH +# -------------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) + +# 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) +AC_DIVERT_POP +])# _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 + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-linux*) + # Test if the compiler is 64bit + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *"ELF 32"*) + LINUX_64_MODE="32" + ;; + *"ELF 64"*) + LINUX_64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_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 + ;; +ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], +[*-*-cygwin* | *-*-mingw* | *-*-pw32*) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + + # recent cygwin and mingw systems supply a stub DllMain which the user + # can override, but on older systems we have to supply one + AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain, + [AC_TRY_LINK([], + [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*); + DllMain (0, 0, 0);], + [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])]) + + case $host/$CC in + *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*) + # old mingw systems require "-dll" to link a DLL, while more recent ones + # require "-mdll" + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -mdll" + AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch, + [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])]) + CFLAGS="$SAVE_CFLAGS" ;; + *-*-cygwin* | *-*-pw32*) + # cygwin systems need to pass --dll to the linker, and not link + # crt.o which will require a WinMain@16 definition. + lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;; + esac + ;; + ]) +esac + +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_CACHE_CHECK([$1], [$2], + [$2=no + ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $3" + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + if (eval $ac_compile 2>conftest.err) && 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 + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + else + $2=yes + fi + fi + $rm conftest* + CFLAGS="$save_CFLAGS" +]) + +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" + echo "$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 $host_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; + ;; + + *) + # 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 + ;; + + cygwin* | mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + 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 + ifelse([$1],[],[save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"], + [$1],[CXX],[save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -o out/conftest2.$ac_objext"], + [$1],[GCJ],[save_GCJFLAGS="$GCJFLAGS" + GCJFLAGS="$GCJFLAGS -o out/conftest2.$ac_objext"]) + echo "$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 . + + if (eval $ac_compile 2>out/conftest.err) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s out/conftest.err; then + # Append any errors to the config.log. + cat out/conftest.err 1>&AS_MESSAGE_LOG_FD + else + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + ifelse([$1],[],[CFLAGS="$save_CFLAGS"], + [$1],[CXX],[CXXFLAGS="$save_CXXFLAGS"], + [$1],[GCJ],[GCJFLAGS="$save_GCJFLAGS"]) + 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)"; 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 + AC_MSG_RESULT([no]) +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= +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}.so$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}.so$major' + ;; + +aix4* | aix5*) + version_type=linux + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}.so$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}.so' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi4*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + need_version=no + need_lib_prefix=no + case $GCC,$host_os in + yes,cygwin*) + library_names_spec='$libname.dll.a' + sys_lib_search_path_spec="/lib /lib/w32api /usr/lib /usr/local/lib" + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' + postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog .libs/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + ;; + yes,mingw*) + library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://"` + if echo "$sys_lib_search_path_spec" | [egrep ';[C-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 + ;; + yes,pw32*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' + ;; + *) + library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + # FIXME: Relying on posixy $() will cause problems for + # cross-compilation, but unfortunately the echo tests do not + # yet detect zsh echo's removal of \ escapes. + library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' + soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd*) + objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + 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}.so$versuffix ${libname}${release}.so${major} ${libname}.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + if test "$host_cpu" = ia64; then + 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}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$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 + else + 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}.sl$versuffix ${libname}${release}.sl$major $libname.sl' + soname_spec='${libname}${release}.sl$major' + fi + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) version_type=irix ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}.so$major' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*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}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$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}.so$versuffix ${libname}.so$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' + soname_spec='${libname}${release}.so$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}.so$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' + need_lib_prefix=no + library_names_spec='$libname.dll $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}.so' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' + shlibpath_var=LD_LIBRARY_PATH + 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}.so$major' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + shlibpath_var=LD_LIBRARY_PATH + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + version_type=linux + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + ;; + 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.so.$versuffix $libname.so.$major $libname.so' + soname_spec='$libname.so.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + 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 @<:@CXX,GCJ@:>@])], + [tagnames="$withval"], + [tagnames="CXX,GCJ" + case $host_os in + mingw*|cygwin*) tagnames="$tagnames,RC" ;; + esac]) + +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) + AC_LIBTOOL_LANG_CXX_CONFIG + ;; + + GCJ) + AC_LIBTOOL_LANG_GCJ_CONFIG + ;; + + 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. + available_tags="$available_tags $tagname" + 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_PATH_TOOL_PREFIX +# ------------------- +# find a file program which can recognise shared library +AC_DEFUN([AC_PATH_TOOL_PREFIX], +[AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_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 path 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([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 GCC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + 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. + if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break + fi + fi + done + IFS="$lt_save_ifs" +else + lt_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$lt_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +AC_PROG_LD_GNU +])# AC_PROG_LD + + +# AC_PROG_LD_GNU +# -------------- +AC_DEFUN([AC_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU ld's only accept -v. +if $LD -v 2>&1 &5; then + lt_cv_prog_gnu_ld=yes +else + lt_cv_prog_gnu_ld=no +fi]) +with_gnu_ld=$lt_cv_prog_gnu_ld +])# AC_PROG_LD_GNU + + +# AC_PROG_LD_RELOAD_FLAG +# ---------------------- +# find reload flag for linker +# -- PORTME Some linkers may need a different reload flag. +AC_DEFUN([AC_PROG_LD_RELOAD_FLAG], +[AC_CACHE_CHECK([for $LD option to reload object files], + lt_cv_ld_reload_flag, + [lt_cv_ld_reload_flag='-r']) +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +])# AC_PROG_LD_RELOAD_FLAG + + +# AC_DEPLIBS_CHECK_METHOD +# ----------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +AC_DEFUN([AC_DEPLIBS_CHECK_METHOD], +[AC_CACHE_CHECK([how to recognise dependant libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given egrep regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix4* | aix5*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi4*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin* | mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' + lt_cv_file_magic_cmd='/usr/bin/file -L' + case "$host_os" in + rhapsody* | darwin1.[[012]]) + lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System` + ;; + *) # Darwin 1.3 on + lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' + ;; + esac + ;; + +freebsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + if test "$host_cpu" = ia64; then + 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 + else + 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 + fi + ;; + +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 | mipsel | 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]]+$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +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 + ;; + 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 path 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 + if ("$tmp_nm" -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then + lt_cv_path_NM="$tmp_nm -B" + break + elif ("$tmp_nm" -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then + lt_cv_path_NM="$tmp_nm -p" + break + else + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + fi + fi + done + IFS="$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*) + # These system don't have libm + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, main, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, main, LIBM="-lm") + ;; +esac +])# AC_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, main, + [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], + [if test x"$enable_ltdl_install" = xno; then + AC_MSG_WARN([libltdl not installed, but installation disabled]) + else + enable_ltdl_install=yes + fi + ]) + if test x"$enable_ltdl_install" = x"yes"; then + ac_configure_args="$ac_configure_args --enable-ltdl-install" + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + else + ac_configure_args="$ac_configure_args --enable-ltdl-install=no" + LIBLTDL="-lltdl" + LTDLINCL= + fi + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_INSTALLABLE + + +# If this macro is not defined by Autoconf, define it here. +ifdef([AC_PROVIDE_IFELSE], + [], + [define([AC_PROVIDE_IFELSE], + [ifdef([AC_PROVIDE_$1], + [$2], [$3])])]) + + +# 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_LANG_CXX + + +# 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_LANG_GCJ + + +# AC_LIBTOOL_RC +# -------------- +# enable support for Windows resource files +AC_DEFUN([AC_LIBTOOL_RC], +[AC_REQUIRE([AC_PROG_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;" + +# Code to be used in simple link tests +lt_simple_link_test_code='main(){return(0);}' + +_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 " | egrep -e "[[ ]]$]_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_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +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 + ;; +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_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_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)= + +# 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;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(int char *[]) { return(0); }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${CXX-"c++"} +set dummy $CC +compiler="[$]2" +_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 + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if eval "`$CC -print-prog-name=ld` --version 2>&1" | \ + egrep 'GNU ld' > /dev/null; then + with_gnu_ld=yes + + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_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" | \ + egrep '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 $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | egrep "\-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 $libobjs $deplibs $compiler_flags `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 $libobjs $deplibs $compiler_flags `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 $libobjs $deplibs $compiler_flags ${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 $libobjs $deplibs $compiler_flags ${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 + ;; + 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*) + ;; + hpux*) + if test $with_gnu_ld = no; then + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + else + _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' + fi + fi + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + else + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + fi + _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) + case $host_os in + hpux9*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + ;; + *) + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + fi + ;; + 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) | 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 + if test $with_gnu_ld = no; then + case $host_os in + hpux9*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + ;; + *) + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + fi + ;; + 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 $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -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 $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${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 $predep_objects $libobjs $deplibs $postdep_objects $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $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)='templib=`echo $lib | sed -e "s/\.so\..*/\.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='templib=`echo $lib | sed -e "s/\.so\..*/\.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest.so 2>&1 | egrep "ld"`; rm -f libconftest.so; 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 $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _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 $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_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*) + # NetBSD uses g++ - do we need to do anything? + ;; + 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)='templib=`echo $lib | sed -e "s/\.so\..*/\.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --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} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${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} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${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 | egrep "\-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)='templib=`echo $lib | sed -e "s/\.so\..*/\.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --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} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -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 "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $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} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${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 | egrep "\-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 $predep_objects $libobjs $deplibs $postdep_objects $compiler_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~ + $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$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 | egrep "\-R|\-L"`; 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 $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_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 | egrep -v '^2\.7' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $linker_flags ${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 $predep_objects $libobjs $deplibs $postdep_objects $linker_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | egrep \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $linker_flags ${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 $predep_objects $libobjs $deplibs $postdep_objects $linker_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | egrep \"\-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 + +# Figure out "hidden" C++ library dependencies from verbose +# compiler output whening linking a shared library. +cat > 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. + +# 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 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) + +# 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 sed program that does not truncate output. +SED=$lt_SED + +# 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" + +# 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 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) + +# 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.so 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) + +# 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 + ;; + + cygwin* | mingw* | pw32* | os2*) + cat <<'EOF' >> "$cfgfile" + # This is a source program that is used to create dlls on Windows + # Don't remove nor modify the starting and closing comments + _LT_AC_FILE_LTDLL_C + # This is a source program that is used to create import libraries + # on Windows for dlls which lack them. Don't remove nor modify the + # starting and closing comments + _LT_AC_FILE_IMPGEN_C +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 -c conftest.$ac_ext], [], + [_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]]' + ;; +solaris* | sysv5*) + symcode='[[BDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# Handle CRLF in mingw tool chain +opt_cr= +case $host_os in +mingw*) + opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then + symcode='[[ABCDGISTW]]' +fi + +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do + + # Write the raw and C identifiers. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if egrep ' nm_test_var$' "$nlist" >/dev/null; then + if egrep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_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* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + cygwin* | mingw* | 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' + ;; + *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, but not for PA HP-UX. + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + fi + ;; + *) + _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" + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + *) + ;; + 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* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + cygwin* | mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_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, but not for PA HP-UX. + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + fi + ;; + + *) + _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 + ;; + + cygwin* | mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + # 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*) + if test "$CC" = "icc"; then + _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' + fi + ;; + + 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*) + if test "x$host_vendor" = xsni; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-LD' + else + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + fi + _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) -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) -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 | egrep '(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 + ;; + cygwin* | mingw* | pw32*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + *) + _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(archive_cmds, $1)= + _LT_AC_TAGVAR(archive_cmds_need_lc, $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_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(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 egrep regular expression of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _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 | egrep ': 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 $libobjs $deplibs $compiler_flags ${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)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + + extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ + sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ + test -f $output_objdir/impgen.exe || (cd $output_objdir && \ + if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ + else $CC -o impgen impgen.c ; fi)~ + $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' + + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' + + # cygwin and mingw dlls have different entry points and sets of symbols + # to exclude. + # FIXME: what about values for MSVC? + dll_entry=__cygwin_dll_entry@12 + dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ + case $host_os in + mingw*) + # mingw values + dll_entry=_DllMainCRTStartup@12 + dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ + ;; + esac + + # mingw and cygwin differ, and it's simplest to just exclude the union + # of the two symbol sets. + dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 + + # recent cygwin and mingw systems supply a stub DllMain which the user + # can override, but on older systems we have to supply one (in ltdll.c) + if test "x$lt_cv_need_dllmain" = "xyes"; then + ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " + ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ + test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' + else + ltdll_obj= + ltdll_cmds= + fi + + # Extract the symbol export list from an `--export-all' def file, + # then regenerate the def file from the symbol export list, so that + # the compiled dll only exports the symbol export list. + # Be careful not to strip the DATA tag left by newer dlltools. + _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"' + $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ + sed -e "1,/EXPORTS/d" -e "s/ @ [[0-9]]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' + + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is. + # If DATA tags from a recent dlltool are present, honour them! + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname-def; + else + echo EXPORTS > $output_objdir/$soname-def; + _lt_hint=1; + cat $export_symbols | while read symbol; do + set dummy \$symbol; + case \[$]# in + 2) echo " \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; + *) echo " \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;; + esac; + _lt_hint=`expr 1 + \$_lt_hint`; + done; + fi~ + '"$ltdll_cmds"' + $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ + $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ + $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ + $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ + $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris* | sysv5*) + if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then + _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 | egrep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_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 | egrep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_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' + case $host_os in + cygwin* | mingw* | pw32*) + # dlltool doesn't understand --whole-archive et. al. + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + ;; + *) + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | egrep '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 + ;; + esac + 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 | egrep '(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 $libobjs $deplibs $compiler_flags `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 $libobjs $deplibs $compiler_flags `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 $libobjs $deplibs $compiler_flags ${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 $libobjs $deplibs $compiler_flags ${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)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # FIXME: Setting linknames here is a bad hack. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _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"`' + ;; + + darwin* | rhapsody*) + case "$host_os" in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' + ;; + *) # Darwin 1.3 on + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' + ;; + esac + + # FIXME: Relying on posixy $() will cause problems for + # cross-compilation, but unfortunately the echo tests do not + # yet detect zsh echo's removal of \ escapes. Also zsh mangles + # `"' quotes if we put them in here... so don't! + _LT_AC_TAGVAR(archive_cmds, $1)='$CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs $deplibs$linker_flags -install_name $rpath/$soname $verstring' + # We need to add '_' to the symbols in $export_symbols first + #_LT_AC_TAGVAR(archive_expsym_cmds, $1)="$_LT_AC_TAGVAR(archive_cmds, $1)"' && strip -s $export_symbols' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' + ;; + + 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 $libobjs $deplibs $compiler_flags' + _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* | hpux10* | hpux11*) + if test "$GCC" = yes; then + case $host_os in + hpux9*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + ;; + *) + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + esac + else + case $host_os in + hpux9*) + _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' + ;; + *) + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + ;; + esac + fi + if test "$host_cpu" = ia64; then + _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 + else + _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 + fi + # 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' + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + 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' + 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 $libobjs $deplibs $linker_flags' + _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 $libobjs $deplibs $linker_flags' + _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 $libobjs $deplibs $compiler_flags $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} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _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} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _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 "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + _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 $libobjs $deplibs $compiler_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~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$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 $libobjs $deplibs $compiler_flags' + 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) + if test "x$host_vendor" = xsni; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -Bsymbolic -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + else + _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 + fi + 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 $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + 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? +# +_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* + echo 'static int dummy;' > 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 +])# 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_FILE_IMPGEN_C +# -------------------- +# Be careful that the start marker always follows a newline. +AC_DEFUN([_LT_AC_FILE_IMPGEN_C], [ +# /* impgen.c starts here */ +# /* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. +# +# This file is part of GNU libtool. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# */ +# +# #include /* for printf() */ +# #include /* for open(), lseek(), read() */ +# #include /* for O_RDONLY, O_BINARY */ +# #include /* for strdup() */ +# +# /* O_BINARY isn't required (or even defined sometimes) under Unix */ +# #ifndef O_BINARY +# #define O_BINARY 0 +# #endif +# +# static unsigned int +# pe_get16 (fd, offset) +# int fd; +# int offset; +# { +# unsigned char b[2]; +# lseek (fd, offset, SEEK_SET); +# read (fd, b, 2); +# return b[0] + (b[1]<<8); +# } +# +# static unsigned int +# pe_get32 (fd, offset) +# int fd; +# int offset; +# { +# unsigned char b[4]; +# lseek (fd, offset, SEEK_SET); +# read (fd, b, 4); +# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); +# } +# +# static unsigned int +# pe_as32 (ptr) +# void *ptr; +# { +# unsigned char *b = ptr; +# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); +# } +# +# int +# main (argc, argv) +# int argc; +# char *argv[]; +# { +# int dll; +# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; +# unsigned long export_rva, export_size, nsections, secptr, expptr; +# unsigned long name_rvas, nexp; +# unsigned char *expdata, *erva; +# char *filename, *dll_name; +# +# filename = argv[1]; +# +# dll = open(filename, O_RDONLY|O_BINARY); +# if (dll < 1) +# return 1; +# +# dll_name = filename; +# +# for (i=0; filename[i]; i++) +# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') +# dll_name = filename + i +1; +# +# pe_header_offset = pe_get32 (dll, 0x3c); +# opthdr_ofs = pe_header_offset + 4 + 20; +# num_entries = pe_get32 (dll, opthdr_ofs + 92); +# +# if (num_entries < 1) /* no exports */ +# return 1; +# +# export_rva = pe_get32 (dll, opthdr_ofs + 96); +# export_size = pe_get32 (dll, opthdr_ofs + 100); +# nsections = pe_get16 (dll, pe_header_offset + 4 +2); +# secptr = (pe_header_offset + 4 + 20 + +# pe_get16 (dll, pe_header_offset + 4 + 16)); +# +# expptr = 0; +# for (i = 0; i < nsections; i++) +# { +# char sname[8]; +# unsigned long secptr1 = secptr + 40 * i; +# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); +# unsigned long vsize = pe_get32 (dll, secptr1 + 16); +# unsigned long fptr = pe_get32 (dll, secptr1 + 20); +# lseek(dll, secptr1, SEEK_SET); +# read(dll, sname, 8); +# if (vaddr <= export_rva && vaddr+vsize > export_rva) +# { +# expptr = fptr + (export_rva - vaddr); +# if (export_rva + export_size > vaddr + vsize) +# export_size = vsize - (export_rva - vaddr); +# break; +# } +# } +# +# expdata = (unsigned char*)malloc(export_size); +# lseek (dll, expptr, SEEK_SET); +# read (dll, expdata, export_size); +# erva = expdata - export_rva; +# +# nexp = pe_as32 (expdata+24); +# name_rvas = pe_as32 (expdata+32); +# +# printf ("EXPORTS\n"); +# for (i = 0; i/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=$TMPDIR/sed$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in $TMPDIR" >&2 + { (exit 1); exit 1; } +} + _max=0 + _count=0 + # Add /usr/xpg4/bin/sed as it is typically found on Solaris + # along with /bin/sed that truncates output. + for _sed in $_sed_list /usr/xpg4/bin/sed; do + test ! -f ${_sed} && break + cat /dev/null > "$tmp/sed.in" + _count=0 + echo $ECHO_N "0123456789$ECHO_C" >"$tmp/sed.in" + # Check for GNU sed and select it if it is found. + if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then + lt_cv_path_SED=${_sed} + break; + fi + while true; do + cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" + mv "$tmp/sed.tmp" "$tmp/sed.in" + cp "$tmp/sed.in" "$tmp/sed.nl" + echo >>"$tmp/sed.nl" + ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break + cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break + # 10000 chars as input seems more than enough + test $_count -gt 10 && break + _count=`expr $_count + 1` + if test $_count -gt $_max; then + _max=$_count + lt_cv_path_SED=$_sed + fi + done + done + rm -rf "$tmp" +]) +AC_MSG_RESULT([$SED]) +]) diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..583efff --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,902 @@ +# 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.62],, +[m4_warning([this file was generated for autoconf 2.62. +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])]) + +# Copyright (C) 1998, 1999, 2000, 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 5 + +# AM_PROG_LEX +# ----------- +# Autoconf leaves LEX=: if lex or flex can't be found. Change that to a +# "missing" invocation, for better error output. +AC_DEFUN([AM_PROG_LEX], +[AC_PREREQ(2.50)dnl +AC_REQUIRE([AM_MISSING_HAS_RUN])dnl +AC_REQUIRE([AC_PROG_LEX])dnl +if test "$LEX" = :; then + LEX=${am_missing_run}flex +fi]) + +# 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/config.h.in b/config.h.in new file mode 100644 index 0000000..c22241f --- /dev/null +++ b/config.h.in @@ -0,0 +1,252 @@ +/* config.h.in. Generated from configure.in by autoheader. */ + +/* 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 + +/* Define a safe value for MAXPATHLEN */ +#undef KDEMAXPATHLEN + +/* 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 + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ +#if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +#elif ! defined __LITTLE_ENDIAN__ +# undef WORDS_BIGENDIAN +#endif + +/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a + `char[]'. */ +#undef YYTEXT_POINTER + +/* + * 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.files b/configure.files new file mode 100644 index 0000000..030bce8 --- /dev/null +++ b/configure.files @@ -0,0 +1,2 @@ +./admin/configure.in.min +configure.in.in diff --git a/configure.in b/configure.in new file mode 100644 index 0000000..f15e1ab --- /dev/null +++ b/configure.in @@ -0,0 +1,93 @@ +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(kscope, 1.6.2) 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 + +KDE_USE_QT(3.3) +AC_PATH_KDE +#MIN_CONFIG(3.3) + +dnl PACKAGE set before +AC_C_BIGENDIAN +AC_CHECK_KDEMAXPATHLEN + +AM_PROG_LEX +AC_CHECK_PROG(HAVE_LEX, $LEX, yes, no) +if [[ "$HAVE_LEX" = "no" ]]; then + AC_MSG_ERROR(Lex/Flex is required in order to build KScope) +fi + +AC_PROG_YACC +AC_CHECK_PROG(HAVE_YACC, $YACC, yes, no) +if [[ "$HAVE_YACC" = "no" ]]; then + AC_MSG_ERROR(Yacc/Bison is required in order to build KScope) +fi +KDE_CREATE_SUBDIRSLIST +AC_CONFIG_FILES([ Makefile ]) +AC_CONFIG_FILES([ doc/Makefile ]) +AC_CONFIG_FILES([ doc/en/Makefile ]) +AC_CONFIG_FILES([ po/Makefile ]) +AC_CONFIG_FILES([ src/Makefile ]) +AC_OUTPUT +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..032475b --- /dev/null +++ b/configure.in.in @@ -0,0 +1,17 @@ +#MIN_CONFIG(3.3) + +AM_INIT_AUTOMAKE(kscope, 1.6.2) +AC_C_BIGENDIAN +AC_CHECK_KDEMAXPATHLEN + +AM_PROG_LEX +AC_CHECK_PROG(HAVE_LEX, $LEX, yes, no) +if [[ "$HAVE_LEX" = "no" ]]; then + AC_MSG_ERROR(Lex/Flex is required in order to build KScope) +fi + +AC_PROG_YACC +AC_CHECK_PROG(HAVE_YACC, $YACC, yes, no) +if [[ "$HAVE_YACC" = "no" ]]; then + AC_MSG_ERROR(Yacc/Bison is required in order to build KScope) +fi diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..7e7a4a8 --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,6 @@ +# the SUBDIRS is filled automatically by am_edit. If files are +# in this directory they are installed into the english dir + +KDE_LANG = en +KDE_DOCS = kscope +SUBDIRS = $(AUTODIRS) diff --git a/doc/en/Makefile.am b/doc/en/Makefile.am new file mode 100644 index 0000000..fef2a0a --- /dev/null +++ b/doc/en/Makefile.am @@ -0,0 +1,5 @@ +KDE_DOCS = kscope +KDE_LANG = en +kde_docs_KDEDOCS = call_tree.png main_window.png pref.png project_files.png \ + project_new.png project_open.png query_dlg.png autocomp_dlg.png query_filter.png \ + call_graph.png diff --git a/doc/en/about.docbook b/doc/en/about.docbook new file mode 100644 index 0000000..1bb7173 --- /dev/null +++ b/doc/en/about.docbook @@ -0,0 +1,31 @@ + +About &kapp; + + +&kapp; is a KDE-based source-editing environment for C and C-style languages. Primarily, it is a front-end to the veteran Cscope, a source-code browser originally developed at Bell Labs. Cscope works by parsing a set of source files, creating a cross-reference database, and allowing the user to query this database. &kapp; extends the feature-set of Cscope with a contemporary user interface, editor integration, project management capabilities, multiple query result windows, call trees and graphs, and more. + + + +&kapp; implements (almost) all of Cscope's query types. Among these are: + +Browse for all references to a symbol; +Get the global definition of a symbol; +Find all functions calling to or called by a function; +Find a text string or an EGrep pattern; +and more. + + + + +The main purpose of &kapp; is to provide developers with a rich environment for code editing and analysis. It is specifically geared towards large projects, with thousands of source files and millions of lines of code. Many traditional C/C++ IDEs do not scale well to handle projects of this magnitude, either because they do not provide adequate tools for understanding the code base, or because they are unable to efficiently digest that much information. By using Cscope as its underlying engine, &kapp; can easily handle projects such as the Linux kernel, WINE, PostgreSQL, etc. + + + +It has been reported by some users that &kapp; can be successfully used for C++ development. Nonetheless, &kapp; is mainly a tool for developing in pure C (either ANSI or K&R style). Most C++ features will not be recognised by the cross-reference generator. + + + +&kapp; is a part of an ongoing effort to expand the range of open source applications. It could not have been created without the previous work of many devoted developers. &kapp; is therefore freely distributed, along with its source code, for the benefit of the open source community. I hope it can be of use to others, and I would appreciate any help in the form of bug reports or improvement suggestions. + + + diff --git a/doc/en/autocomp_dlg.png b/doc/en/autocomp_dlg.png new file mode 100644 index 0000000000000000000000000000000000000000..21d39e403669a42df8b5ad401d1ff2cfafd46704 GIT binary patch literal 12457 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 literal 0 HcmV?d00001 diff --git a/doc/en/bookmarks.docbook b/doc/en/bookmarks.docbook new file mode 100644 index 0000000..8607645 --- /dev/null +++ b/doc/en/bookmarks.docbook @@ -0,0 +1,28 @@ + +Bookmarks + + +Bookmarks provide an easy way to navigate through a defined set of positions in the source code. Most editors support the concept of bookmarks as tags attached to lines in a source file. &kapp; can enhance the usablity of per-file markers by enabling users to access the bookmarks currently defined in all open files. &kapp; also saves and restores these bookmarks as part of its session-management services. + + + +The Bookmarks dialogue is invoked by the GoGlobal Bookmarks menu command. Once open, it displays the set bookmarks among all currently-open files. This includes the file path, the source line and the line's text (similar to other source views available in &kapp;). + + + +The Bookmarks dialogue + + + + + +The Bookmarks dialogue + + + + + +Navigating to a defined bookmark can be done by either double-clicking an entry in the dialogue, or by choosing the View Source item from the context menu (available by right-clicking over a bookmark entry). Other choices presented by the context menu include Copy [FIELD] for copying the contents of the current field to the clipboard, Filter... for selecting entries based on some criteria, Show All for removing all filters and Remove Item for deleting the bookmark. + + + \ No newline at end of file diff --git a/doc/en/bookmarks.png b/doc/en/bookmarks.png new file mode 100644 index 0000000000000000000000000000000000000000..2f20be78d4043f36b18763ec0bded57632cbfd8f GIT binary patch literal 23860 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 YRIKZfO{0@~A#j~^I_voAnBSeh0~U1$(*OVf literal 0 HcmV?d00001 diff --git a/doc/en/call_graph.png b/doc/en/call_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..719f3f7cccc5c46c2adc9f7b8d3c576315f5e743 GIT binary patch literal 23525 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 +The Configuration Dialogue + + +The configuration dialogue is the main tool for setting parameters required by &kapp;, or adjusting the user's preferences. The dialogue is displayed the first time &kapp; is run, and can be invoked later by using the SettingsConfigure KScope... menu command. + + + +The dialogue is composed of several pages, each of which handles a different set of parameters. + + + +The Programmes Page + + +&kapp; serves as a front-end to several console-based programmes: Cscope, Ctags and Dot (which is part of the Graphviz suite). Since &kapp; invokes these programmes directly, without using a shell, it cannot determine their paths. Therefore, it is required to inform &kapp; of the paths where the relevant executable files reside. Note that &kapp; needs the full path to each programme, along with the name of the executable. + + + +Another parameter required by &kapp; is whether Cscope supports the command line option. This is a relatively new feature, added to Cscope in version 15.5. It allows &kapp; to display accurate progress information during time-consuming operations, such as building the cross-reference database, or running a long query. It is highly recommended that you upgrade Cscope to a version that supports the option, as the user experience of &kapp; is much improved with it. However, if you choose to use an older version of Cscope, make sure the check-box for using the option is cleared. + + + +You can determine whether your version of Cscope supports this option by running . + + + +The easiest way to configure programme paths is by using the automated script provided with &kapp;. This script can be activated by clicking the Guess... button. Once invoked, the script looks for the required programmes (using the shell's which utility). The script also makes sure that the found executables adhere to the standards required by &kapp; (e.g., that Ctags is the one provided by Exuberant-Ctags and that Dot supports the command-line option). &kapp; uses the results of the script to adjust the values in the dialogue's controls. + + + +The script will not override paths already set by the user. Instead, it will only verify the validity of these paths. For the script to determine paths automatically, the relevant text fields in the dialogue need to be cleared. + + + + +The Programmes page + + + + + +The Programmes page + + + + + + +Cscope Path +The full path of the Cscope executable. The name of this executable must be cscope. + + +Use verbose mode (-v) +Instructs Cscope to produce verbose progress output, by appending to the command line. + + +Ctags Path +The full path of the Ctags executable. The name of this executable must contain the string ctags. + + +Dot Path +The full path of the Dot executable. The name of this executable must be dot. + + +Guess +Runs a script which attempts to determine the previous values automatically. This script should work in most cases, by may fail to correctly obtain some or all of the values. + + +If the file names on your system do not conform to the limitations described above, please create symbolic links to the executables. + + + + + +The Colours Page + + + +The Colours page + + + + + +The Colours page + + + + +The Colours page allows you to configure &kapp; to look the way you want it to, by changing the foreground and background colours of some of &kapp;'s GUI elements. The elements that can be modified are: + +The project's file list (to the right of the editing area) +The editor's symbol (or tag) list (to the left of each editor window) +The query results window +The call graph's background and nodes + + + + +To change the colour of a GUI element, double-click over the element's entry in the list (or select this element and click Enter). + + + +The editor's own colours are determined by the settings of the embedded editor, and are not controlled by &kapp;. + + + + + +The Fonts Page + + + +The Fonts page + + + + + +The Fonts page + + + + +The Fonts page allows you to determine the fonts used by any of &kapp;'s windows (see The Colours Page section for a description of these windows.) + + + +To change the colour of a GUI element, double-click over the element's entry in the list (or select this element and click Enter). + + + +As with the colour scheme, the fonts used by the embedded editor are not determined by &kapp;. + + + + + +The Options Page + + +This page allows the user to configure certain parameters that affect the behaviour of &kapp;. + + + + +The Options page + + + + + +The Options page + + + + + +External Editor +Specifies a command line for invoking an external editor application. &kapp; will replace the escape sequence %F with the file path, and the sequence %L with the current line number. + + +Read-Only Mode +If set, the embedded editor will be work in read-only mode, i.e., &kapp; will not allow any changes to the displayed source files (but you can still use the external editor). + + +Open Last Project on Start-Up +Determines whether &kapp; should automatically attempt to load the last active project when started. + + +Automatic Tag Highlighting +If set, &kapp; will highlight tags in the tag list based on the current position of the text cursor. + + +Brief Tab Captions for Query Pages +This option allows some space to be saved by using shortcuts for the page titles in the query window. + + +Warn When a File is Modified Outside &kapp; +If set, &kapp; will issue a warning whenever a file is changed on the hard drive, while it is open for editing in &kapp;. This option will only work in conjunction with the Kate text editor). + + +Automatically Sort Files in the File List +By default, &kapp; will sort the files in the project's file list whenever a project is loaded. However, such behaviour may not be suitable for large projects on older machines, causing &kapp; to hang for long periods when loading such projects. Uncheck this option to avoid automatic sorting. + + +System Profile +Allows the choice between a fast and a slow system configuration. The fast profile will take certain actions automatically which are not appropriate for a slower system (for example, automatic database rebuilds and auto-completion are enabled by default for fast systems and disabled for slow systems). Note that the terms "fast" and "slow" do not necessarily refer to the particular machine which runs &kapp;, but rather to the complete environment (e.g., a fast machine may still be using a relatively slow file server). + + +Editor Popup Menu +Provides two choices for the embedded editor's context menu: + +Embedded: A menu with Cscope actions is included as a sub-menu of the editor's own context menu. +&kapp; Only: Only Cscope actions are available through the context menu. + +The second choice provides quicker access to Cscope commands, but the editor's menu is discarded. + + + + + + + + diff --git a/doc/en/editing.docbook b/doc/en/editing.docbook new file mode 100644 index 0000000..2aeeece --- /dev/null +++ b/doc/en/editing.docbook @@ -0,0 +1,138 @@ + +Editing Source Files + + +The Editor + + +&kapp; does not provide its own editor. Instead, it utilises KDE's KTextEditor infrastructure to embed the system's default editor. This means that any editor that supports the KTextEditor interface (e.g., &kate;, KVim) can be used with &kapp;. The editor is defined in KDE's control centre. + + +In any matter related to operating or configuring the editor, please refer to the manual of the editor itself. + + + + + +Opening Files for Editing + + +Files are usually opened for editing as part of a project. However, &kapp; enables the user to edit an occasional file that is not related to the project, through the FileOpen... menu command. Note, however, that query results on files outside a project are meaningless. + + + +Once a project has been opened, the list of all project files appears in the file list, to the right of the editing area. Each file entry in the list shows the file's type, its name, and its full path. Files are opened by either double-clicking their entry in the list, or by selecting the entry, and hitting the Enter key. The edit-box above the list can be used to quickly search for a file. Typing in this box selects the first list entry whose file name begins with the entered text. + + + +Files can also be opened through the file tree, which shares its location with the project's file list (using a tabbed-window.) The file tree displays all files in the system, starting with a specific root directory. A root directory for the file tree is set on a per-project basis by using the Set Root... button. The file tree also sports a Find File... button for launching the file search Cscope query. + + + + +To decrease the loading time of projects, files and directories are only added to the tree when their parent directory is expanded. Therefore directories will not be marked as expandable by default, even if they are not empty. + + + + +For each file opened, &kapp; creates a separate editor window, inside the editing area. Each editor is associated with a tab, displaying the name of the edited file. Thus &kapp; provides a convenient multi-editor environment. You can switch between open files by selecting their respective tabs, or by using the Window menu. + + + +To work on a new file, the user first needs to create it using the FileNew... menu command. This opens an empty editor, that is not associated with a file name or path. Upon saving the work in this new editor, &kapp; will prompt the user for a file name and directory. Note that this does not add the file to the project. The user still needs to invoke the Project Files dialogue and add the new file to an open project. + + + + + +File Tags + + +In addition to being a front-end to Cscope, &kapp; also uses Ctags to display a list of symbols defined in the current file. Each editor window is added a list of these symbols to its left. This list displays the name of a symbol, its type (as a graphic shape), and the line where it is defined. Double-clicking a symbol, or selecting it and hitting the Enter key, sets the cursor to the beginning of this symbol's definition line. The list of symbols is refreshed whenever a file is saved. + + + +The edit-box above the list of symbols can be used for quick symbol look-ups. Entering text in this box selects the first symbol whose name begins with this text. + + + +By default, tags are sorted by to their name in ascending order. Click on a column header to sort the tags according to that column. A triangle to the side of a column name indicates this is the sorting column, and shows the sorting order (ascending or descending.) Once a sorting order is chosen, it becomes the default, and is used for all newly created lists (though not for currently open, unmodified, editor windows.) + + + + + +Other File Options + + +&kapp;'s File menu includes further options, such as saving, printing and closing files. In addition, specific editors can offer extended features under the Tools menu (e.g., syntax highlighting, indentation, etc.) + + + + + +Symbol Completion + + +Symbol completion is a convenient feature that enables the user to enter previously declared symbols with fewer key strokes. Since the cross-reference database keeps record of all globally declared symbols, it can be queried for a complete symbol name based on a given prefix. + +There are two types of symbol completion: manual and automatic. Manual symbol completion is always available, and can be invoked by the EditComplete Symbol menu command (or, more conveniently, by pressing CtrlSpace). Once a completion request has been issued, &kapp; uses the characters immediately preceding the current cursor position as a prefix, and queries the database for possible completions. These completions are displayed in a list box, which can be browsed using the arrow keys. Pressing Enter replaces the prefix with the selected symbol. The Esc key hides the list without completing the symbol. + + + +Automatic Symbol Completion + + +In addition to manual symbol completion, &kapp; can also provide automatic completion based on changes made by the user to the edited source code. Specifically, &kapp; tracks changes to the edited file, and if certain criteria are met, initiates a symbol completion query to the cross-reference database. Once a completion list is displayed, symbol completion behaves in the same way as in the manual case. + + + +Automatic symbol completion is configured on a per-project basis. This feature is enabled or disabled via the Use Symbol Auto-Completion check-box in the New Project dialogue (this option can also be changed after a project has been created by invoking the Project Properties dialogue). + + + + +For performance reasons, it is highly recommended that automatic symbol completion will be used in conjunction with the inverted-index option. + + + + +As mentioned above, &kapp; uses several parameters to decide whether automatic symbol completion should be initiated. These parameters can be configured by clicking on the Options... button in the New Project dialogue (or, later, in the Project Properties dialogue). Clicking this button invokes the Auto-Completion Properties dialogue. + + +The auto-completion properties dialogue + + + + + +The auto-completion properties dialogue + + + + + + +Minimum Characters +The minimal length of a symbol for which completion is provided. + + +Delay (ms) +Specifies a time interval that should elapse after the last change to the edited text and before the symbol completion query is executed. + + +Maximum Entries +The symbol completion list will display at most this number of possible completions. If the number of matched symbols in the database is greater, a message will be displayed (and no symbols will be available). + + + + + +The main purpose of these parameters is to reduce the load on the system caused by frequent queries to the database. The default values have been tested in various scenarios, and are usually adequate. + + + + + + + diff --git a/doc/en/index.docbook b/doc/en/index.docbook new file mode 100644 index 0000000..705988d --- /dev/null +++ b/doc/en/index.docbook @@ -0,0 +1,174 @@ + +KScope'> + + + + + + + + + + + + + + + + +]> + + + + + + + + +The &kapp; Handbook + + + +Elad + +Lahav + +
elad_lahav@users.sourceforge.net
+
+
+
+ + + + +2003-2007 +Elad Lahav + + + +&FDLNotice; + + + +08/07/2007 +1.6.0 + + + + + +&kapp; is a source-editing environment for KDE, based on Cscope. + + + + + + +KDE +KScope +Cscope +source +editor +browser + + +
+ + + + +Introduction + +&about; +&quick-start; + + + + +Using &kapp; + +&main-window; +&projects; +&editing; +&query-system; +&position-history; +&bookmarks; + + + + +Configuring &kapp; + +&config-dlg; + + + + +Command Reference + +&main-menu; + + + + + + + +Credits and License + + +&kapp; + + +Programme copyright 2003-2007 Elad Lahav elad_lahav@users.sourceforge.net + + +I would like to thank: + +The KDE team +The KDevelop team +Hans-Bernhard Broker, who maintains Cscope + + + + +Documentation copyright 2007-2006 Elad Lahav elad_lahav@users.sourceforge.net + + + + +&underFDL; + + + + +&underBSDLicense; + + + +
diff --git a/doc/en/main_menu.docbook b/doc/en/main_menu.docbook new file mode 100644 index 0000000..18a4d2b --- /dev/null +++ b/doc/en/main_menu.docbook @@ -0,0 +1,465 @@ + +&kapp;'s Main Menu + + +This section describes the menu entries declared by &kapp; only. Additional entries may be added to the main menu by the embedded editor (e.g., Edit, View or Tools.) Please refer to the editor's manual for a description of the commands under these sub-menus. + + + +The File Menu + + + + + + +CtrlN + +File +New + +Opens an empty editor window. + + + + +CtrlO + +File +Open... + +Opens a file for editing. + + + + +CtrlW + +File +Close + +Closes the active editor window + + + + +CtrlQ + +File +Quit + +Quits &kapp; + + + + +Other file operations such as Save and Print are not integral &kapp; actions, but are rather defined by the type of editor used. + + + + + +The Edit Menu + + + + + + +CtrlE + +Edit +Edit in External Editor + +Launches an editor application for the current file and line number + + + + +CtrlShiftT + +Edit +Go To Tag + +Moves the cursor to the tag list, used for browsing through the file's tags + + + + +CtrlSpace + +Edit +Complete Symbol + +Generates a list of possible symbol completions for the text to the left of the cursor. Note that this option is available even if automatic completion is disabled. + + + + + + + +The View Menu + + + + + + +Ctrl/ + +View +Toggle File List + +Shows or hides the project's file list window. + + + + +Ctrl. + +View +Toggle Query Window + +Shows or hides the query window. + + + + +Ctrl. + +View +Toggle Tag List + +Shows or hides the tag lists attached to the editor windows. + + + + + + + +The Project Menu + + + + + +Project +New... + +Displays the New Project dialogue box.Use this dialogue to create a new project. + + + +Project +Open... + +Displays the Open Project dialogue box, which lets you search for an existing project to open. + + + +Project +Open Cscope.out... + +Prompts for an existing Cscope.out, which can be opened as a temporary project. + + + +Project +Add/Remove Files... + +Displays the Project Files dialogue box, which allows you to add source files to the current project, or remove files from it. + + + +Project +Properties... + +Displays the Project Properties dialogue box. + + + + +CtrlM + +Project +Make Project... + +Displays the Build dialogue. + + + + +CtrlShiftM + +Project +Remake Project + +Displays the Build dialogue and executes the last build command. + + + +Project +Close + +Closes the active project, along with all open editor windows. + + + + + + + +The Cscope Menu + + + + + +Cscope +Rebuild Database + +Updates the cross-reference database for the current project + + + + +Ctrl0 + +Cscope +References... + +Finds all references to a given symbol + + + + +Ctrl1 + +Cscope +Definition... + +Finds the global definition of a symbol + + + + +Ctrl2 + +Cscope +Called Functions... + +Finds all functions called by a given function + + + + +Ctrl3 + +Cscope +Calling Functions... + +Finds all functions calling a given function + + + + +Ctrl4 + +Cscope +Find Text... + +Finds all occurrences of a text string + + + + +Ctrl5 + +Cscope +Find EGrep Pattern... + +Finds all text strings matching a regular expression + + + + +Ctrl8 + +Cscope +Find Including Files... + +Finds all files #including a given file + + + + +Ctrl] + +Cscope +Quick Definition + +Finds the global definition of the symbol currently under the cursor. The symbol dialogue appears only if a symbol cannot be determined automatically. + + + + +Ctrl\ + +Cscope +Call Graph... + +Displays a call-graph and/or a call-tree for a given function + + + + + + + +The Go Menu + + + + + + +AltUp Arrow + +Go +Previous Result + +Selects the previous result in the current query window. + + + + +AltDown Arrow + +Go +Next Result + +Selects the next result in the current query window. + + + + +AltLeft Arrow + +Go +Previous Position + +Jumps to the previous stored position in the active history list. + + + + +AltRight Arrow + +Go +Next Position + +Jumps to the next stored position in the active history list. + + + + +CtrlH + +Go +Position History... + +Selects the active position history page in the query window. If the query window is hidden, it becomes visible. + + + + +CtrlShiftG + +Go +Global Bookmarks... + +Displays the Bookmarks dialogue. + + + + + + + +The Window Menu + + + + + +Window +Close All + +Closes all open editor windows + + + + +AltShiftLeft Arrow + +Window +Go Left + +Selects the editor window to the left of the current one. + + + + +AltShiftRight Arrow + +Window +Go Right + +Selects the editor window to the right of the current one. + + + + +This menu displays the full path of each file edited in an open window. Clicking a +file name will make its editor window active. + + + + + +The Settings Menu + + + + + +Settings +Toolbars + +Toggles the different toolbars. + + + +Settings +Configure Shortcuts... + +Allows the user to assign different shortcuts to &kapp; commands. + + + +Settings +Configure KScope... + +Displays the &kapp; configuration dialogue + + + + +A menu item to configure the embedded editor may also appear under this menu. + + + + + diff --git a/doc/en/main_window.docbook b/doc/en/main_window.docbook new file mode 100644 index 0000000..ada3fd8 --- /dev/null +++ b/doc/en/main_window.docbook @@ -0,0 +1,24 @@ + +The Main Window + + +&kapp;'s main window is divided into three. The central area is dedicated to source editing, and holds a set of editor windows, one for each source file being viewed or edited. This area is greyed-out if no files are open for editing. The window to the right is the file browser, comprised of a list of project files, and a tree-like view of the file system. The project file list will only display files after a project has been created and source files have been added to it. The bottom area contains the query windows, which hold the results of Cscope queries, and the history pages that display locations in the source code visited by the user. + + +The Main Window + + + + + +&kapp;'s main window + + + + +The size of each of these sub-windows can be changed to meet the user's personal preferences. This is done by dragging the lines that separate one area from the other. The new sizes will be kept and used on the next sessions as well. + + +The file browser and the query window can be hidden in order to free up desktop space (especially on low resolution displays). Hiding and showing these windows is done through the View menu. A window can also be hidden by clicking on its close button, at the upper right corner. As with window sizes, the visibility status will be saved when &kapp; is closed. + + diff --git a/doc/en/main_window.png b/doc/en/main_window.png new file mode 100644 index 0000000000000000000000000000000000000000..b5842af14cef794365fd12f1a2bd999c0843622e GIT binary patch literal 719478 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
fc|sFPV;I{z6D^N7eCx%24oxLxnA$x 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�|1flE+tp_kdF$Z z%L1e-$@=D;xIDLDra9BVBcP{r#`h&;k2^*~HiM^;eqW;(MCx5$8lWt>%tk@*U@E&L>zB_v$7)nqRq2cy?rEXxpmtQwF?M% z0#BV=#gC{4MgYG)=q3xI_6rZ7s>Ud|J;IqEC7DTXo9^)2m?01E+ZJwNPP^J05%dtD zR1L?CQujYy1gV}D~aWd=>p#0a;9zzL68BX zf$qp8kr6|^%nzYX5+P7T;pm*2d}6ib44*yaVGt^>t-Y1g6y?Okgo=C#S|X||mU`WRR$v->0X*gdFpy`1mVp3oa~YX2ftgaicV zFIVXPyand(di|@U;|en*sG~s-o27MducaNgHp%h*at?EG9heZ*35wayxh^m*eUAc~ zbT?k~^kp{meCWN=SqO`DlxfDk0^vP&e+4VoaL+e?qGn^%Rw{|R)J#*SF8(sn6*&Gn zef%gBNT;4$GHnYw}k)WdufTg_st{_k11B#|%V8t|e_ z(eP_6I@_Cafu_+vgG;F(ZK4F-pP{l{@Pr}46M>~VBNC4ZG$;8lfw~C!|%}{ zOObvLCu3MlcsG3QmNU6hk(DC2Zy`q%{2N>8bQ)(_CkqSvt&+ux|Bh@e|Gdi_ZrgZ> zz8RLscKs`_1(1P_x_tKrGIJ&0LkN&=aPiCG<>s4u@=v9$hjo7Nd&{5tav_1RVO2$w zX#$EM@~)O8ZZ(+Bcs^?Vv8d%A@%X(>truXGr|!#dWbKmf3Jo?W=$_Vy`{&$CsY6k` z`o4Ofc>Y`6RaVR(Ol=Us@jDG_)Er2l#rI?0 z9Sbx^Xi$&jE&^D-?_|C`2gg2LB}xfA9lc#cMdrU5|hT8S1@{Vw}j{tURH`Uoq9ewDVCmQGX2=;=7ov(V54 z_C>5`{@8YfsRYisG=raF5B_ok2DQ~Fc36NysHo=AFOslreQ0C;l}2fXeHHezH~U+!h>5+7)u*S7rR>#A z?gBaf1cBs;EaVNqoYsbu${sa*o#@*~En^!UYv8iH$ zD1j9c{usR-(zI1#%>DLL#;fksd3thb#2{utNs3_2nDs)*lU|YYyFSy6B?~!>3v#T5 zb?{_?aTrV^Mk6-IwkfnD#7@Yd3sP>WIGjyi+&4_Y5AzqkZD$qwL8l}UH%(k7QG1Tu zS1 z>{cO$pkLJVS~a*=5)W6PGk}7n(HbBeA-L(&QYk(xFLUN#ndof(R4^@Nt8`Q&g zO5Y914-=L&F55QF#aCZNv=Hy#UzIMD!^=v`GRpog>b{~Cc7k8Rd{`tg)O;T~T|5FD zkS?${>cIco0rcQ{1Tf(V#_GAM9{%A6el2B@`~%ah<%?vN1_ILGJkmsAqsmRbMT=&6 z9x}mu7I+G*b8u%Dp1fDx`r`|`9B!87L>FCI*HT>6<&ilG;!mXmU9C%>mo>h(@vfa@ zTB~;z>?n)eUcRHl@?UCKk4@$yCk!{v=Ji7?XbtrlJDn7F^BW1ZH8fiOJR(Ty+p@L2 zYpWXkY4RY3dTrW|(16tR(jSG=C@<;71S7;3d#{gRzm2DuyW9|{bnOJN>Djq?;u`fK zLhIh?E)041{_WMcrnNz{8*2=@AN{4_goL>iL=>Ak2vTaOnskD%=)D{L^d##h?Kr^i zX=`%1A0Beyg(zANz%|Q@imy1IUXdQJc#u<{$C1zQX7^u#*nw>KKl9)H*0?&7zcMBU z05>y;_s#JPN1sO6m&wFceXB$tn1XLfM%!;_AXnYN9U>zd8@TmK$)wz_z;Z4t<767F zY~MnLbs@N5Gd;Nx_$px1k5&5A#_pUB{h8Emy(=4_Z+@W7FxTvPH#3oirs^C!#>UPT z{tyAUMlG7HCZP0otDJ_P!O?IToYh7oX*u5Nc+w`oR_|%35$ke~Upe*N_ak;^wwt2Z z4_b88+6M|xwEzmn7}}WR7#Bn~Zv>r!`#m4Yr55$jd()OVCMk5ug!1C~w#xhK;Y@Gz z_cvmc_H7w7TEAD^SW32!YNFsh@n7G4)%FnB9w~SQZau1Av9$sa4M^9^bmS9P=QM*f zY;$UO!Qy@6LRA@1VK+@gGzH@|;9I8$uyjj~9TMD?%`p6$Aif5^$8pJh(7()A+quKny$?E zNn-mpvl>DDD;!_o%FY$z0XfmX)el0&&hWL+j~TcYevf#Opu4!bcHlwZrWX2}r=zB& zJRYxye1!iW-hJW1*&_s(dSZbx9FMQZqboUz@vMZNj~H#x zaHE_B7N=(cM&u_EKomylTlwYY31L(0oDv)ChkSMZa~A|jzrm&Mw>Zl}xzP-CQSZH& zqJa(XHT36zRJJWWCIRJgRq*A6;fBNDuiDWY$~1^(MD-ez2bqm}BaS;=9+$=r-1qx) zX?xtngS_a<1I$U03+5Ser13f%Gk3sVT+?TLa2bJO%GN2k8*E&(Nb2PGf$9UVY+G=) z^I)G-yo%_2uNt$!3aO+FjbT_*T?xx&0*a zU%Y`1T_fNzr1HIS*dS1h(C(V5gWxmmllc2nfepe;DW4q*jx*!!rjLvk@qKKG7sR!+ z4q+R7tLgn>dcrt{cZPR!ZHUR!l;&xZDXnyyXQ1)i8MacfsgsEHhP=SzDGG-vf_l|@ z^jy>x@YdAL)#*?iO!Ylw9UMtp!Zkids7d{mN+$*$2W5imj@24;{)d7wFN@ zY<-+@OwgQKsIQ1d7kVV#*%7|pTLrI82HI!)%8V$(1g3e1MZjtHY3@d@ZAH4k-7l@e z1DDMV^ie@kL3k6;j5y}CYN=_h)EUjtC`n4+icy9tb?clSKIBP4&H4%8?E(wUmIMB8 z&6RmmYLZ6trhNVY->TVHA~^E&o}eAaz#E|fM)E*@Y5(WjB*CZOGGFXroM8@eZ0Pco z^U@wU5d5vC_kNovyBR%<*+$!{+l#XOfjNlcc~>}ZtQJ$TiZcGoT@NK7jV-@d%3i#B@)3il?(xsncf#+Z5Fc&%(R0nn;lxgb?jK^eWU==_iDYG&hs?9)?4tNA}szO?~sSDHki{5_{m%FFA za#{SAY%3kRziI5`~^JmbQLNjJzp7 zdSR;fMA+jSpkxc1a1x^nN( z#htV7>C6!JzZpQueD}&W z!-7_v%s2XPE>{Fg=*|Ffb!O31Af*I8RUxpC_x1Uy7r9-#T|12tLk>^QPbBf>%Om?` ztvizwMdxBvR~r0d$`P%(P-_9HwNTs0)Yn}*>`=n9hO_U|KO!Q`M69PP6x}fA9gK{O zaDU#ukKhfF-T!ImyU+2{6X(@TLXcXmnpkEz)LqTp=z>Ve==0@2e^8I-F&VS8>bK0k z7M#_WS)`n;H@JPT%iqCtb4?xF2$7B#H-FrTU;&oL!aecMPf4MMPh&dBc<_0e?RE*e zNajiAXAf()+keM!$yn#czH9p;P4|7ra(D4Cm3c)#U)7Q?$sn~mg|AJbjkk>yt<1#e z`TPL%V4QxU8q@8w3@=&LaYe!{T|c$!;?7K3X0THPZP8*QahAnOTE%et6kZ zZ-o*vKvm>oYrak@Zt`_jGRTV%bF)0zN>7Fp1CyXX)$5Xl@zCIH8xR+UI1SUi8u{@H zfW~Mc^63Ezp>q_?^KNKwdRzmmJHrRX(bgXs$O3)MvG?$(c#)JFj!o^<(0C*41hV5d zw21V$&X07qA2IW)-S+j|Nr&yDOR^(TW5s@B93UiGJI{&0(c#dFfyOwAVCLK37J3yN zdSqC?F=qqqiH2Vy?4bt3>((w+B99^5-}2KxJVbpH2(eAJ6~Q6V;$q`6Asz=2*>;cs zTm#Pe;I5w6thVwzjmD>YBP556$l7Xw%~00Y%Ps}OBR?OeUa(Nun&>of_t?+iX3W5A zo|M?)Pp#o!QLC}?`^V1KqSsB9q*i@J;C};KXG*NUVw;ewUVxGQtE?l2)vc0= z$lcbD#85OO11)L6YfhU$-RIX4N3BBH0pGyAF@u=X^9;8Er7H~hX4;oEzc=8yHtMwV zPr@^wER5-4_m{3cSpk?9>q7j&)5^*1L|Bem^@T1hmw0Zj5)Zh#|3Y?Iwh86Im6P%F zfPeVXvjz`%%lPVV7STH#s6LOi*8Dhf`-}G)DS6Rp%)(*Qm(T-|n?EbA}%!Cf}MFFsv^9%EbU1?#w05I`E36Ec??O z#Mya@ZR2%oR(y@uXA@+G&bdOnGK^<|>Od4Xir6wzBa-imewRv_P^Q(meMB}D>mPMA z4n_duqTPrCT(D=Uw2?6PI&A(IP3Y;|9LJ;=i%0RMj{WS|*pKdYeuDb3m`0aWad z!kLgs2z&0BY?M2Kr|S$#3((65T&%i6UMbSD`$}Kr?1KaEyF}}aOUQTH)-6veJOi4d zQ3!&Y>8`ytcM$yBQKHYSMc?FaU79~UyC(WViPIjbU`>m#{_TxchtP((_mo5S8wwJP zt06D>i-Ih9u_Sh`DEf<|GT9=tX5uTpE?7$c_{=JR@$N~8I6Q83F2xKZEtas4Dqr@U z#s$ZTUymyLRC)_m)x>eaF1C`%5@W^-nn-wt0P#Jt43ROp5R!IKifc*26Rdws?4iX| zI!+3`qm9qI)-Mf@pi+;0O4b~S}HT>1Y z*&LdEQU)rbyS<5I#|XMLX1Z$!_z&?qLrUGhcGdMLs0IY9Sr3lE9~z&88TD`fiPlZ}!v#pjn!7;{UX$MEp8 z4rgsKiLKhCa^^L%wgT#27323Wbz5DVqYeYAz!$oYdYWT>8E(*n@dzpD z_-GnyJRMIKKsN5x4Ku(?xegqEqFE76Nlby6Z(!%Z+k_>+vY@Q+Cb>}g!-ypj?l@(c zB}6r4;cyXC{M=``AB|H!l_fu@UeV~s9{OH_oAL=TO}G;aCZ#1c@g9DiRj)ORyD|p(|jD z&6pGn=dH@;hh=(XOYgozOyQS&Gcg5~@w~prQd#NA+-RGhTj8FSjbpEEoRnaB;DHPh z6PP^}3&#A@5S%Q_7BEu)IXil5T2=q=>Sef-hWUdh;`|o}emUrsi3%rMEy#g;!a@Sm zEO{T;44V1&`hHROAag||6f2@9cniE`IK3N3kQ*WNk8vi)o%Z*RtD&7vi2&s>=wY~GH)xU_QOa^Z4ueHh#L&Pq4Qr%&lgq1$iv zi(2maNceuICY}n=zVW587-01)b6`NRq2)5_1tQX>1O87ZwQM3N`)zb+*$L5wvf)($ ztY9+&8>dEksTY6B;9m#VH3$E~&9jnGSC z0kcfCth%fMs(c+6HCw6igaKm(cZSk4qu2Byx1h3^R4$!MqVt$@d|!Q9LzK#H1vgQ* zA#iOa`(r+;RFQQo7@39i<97Xe%}%2Fa)N7;W_z%_M)00&ZfsPaJ`=PRiJPdWCfyc> z>242h+vH0*eFc|1CDt=-v~RQz_YXC~e&Ix}Qi);`Sopp0`$rP24mNxC7kI9x=gH{c z?uFu=HT)PVvF~^$()amgnRgW(nn5A1~^6YskH$Ci5-l zbe%aK(4DNaVJ|3BC%^>L53_Jz)4hngcahD%_?Gh!_Y?)gQz_$HenjU$=fjV0jdJ1! zzvDP9m0@bd`4eMMjg(Omxmr}WNvlT}e}J|7Q4}}Rs6Tg58 zMj8Pk$LFF_`3U)d_s|^lA_+?d8abi;fvNyMQh&Na8h_BW&IrP+$6POo@noJ>A{8na zyW2pmOIf2k03thNg4aU0puf&Trf}*7>jfh~et-S`E^x7=Xb5z(LVtV~0HNJXb=O%< zX$0wi0B);F2q8;tlMh8BMP7F@EJjmQ;YxAs{)&0Ur-XB z5+ixTU60EglMycI4cMihb*t}%e`9$Mqup!=?}9y*?z_N{r)wYUaETacJst?;JN-+K z)z{wtYCs;gE>dN30p;TZ4M2W?W~ocpQ#!2WXg)PN49qp$PBejUW2=zbr_NR0hT zx$OLoVbCz%y_d~X1QrP;`SF;%N^}>4k87VEleee(e#%(%RvGH+ zT278xjS|>TY>K6YFk$JTF9Nzv`kiy7_pjio7dX)Ad=@=aUsy`0vW9KI;PTywST($m z?@vu|h2o#FU~^6zbzDR2G7KH`+QbHwpo3?NBF*NIQ-#ghrE+NRC|;!?@oxF7E#)YL zoxvrs1TgLGLV(`Gu8C>-5*tu>_x5QuNqAA7)V?SAt&TpEGky{NJ4qe*-_4Axxf=6s zg2$HR*8D;>jm$h`^}KDvq??nmD+=aE**PMij4};1(bId(tl$;=2u(H@43B$Wba5-Aycj){Yk$Iw z$51l)xcTA+R%Ybn?@nrcq_p?!z_G1j_>+zhJ{-aY-^uV!q`^S{rFlz`jW=O|^;6o9 zF$O?Y3}f+YE`)maYS1MOdgTR8F`qso6EC0cUdw|HXCw6f_95nWLuDGl&N@)E&=a>5l?$>5>c&gS;iu9`>Ojb3C!^=r5aU0UcqY z{&(UK1)690SgUV1)Y5)g+zXg8i&5g19hDt%QHx*ikGL1kLMe-*v_jF&3Yh5wy$ihy ztqlKK<->Q`8u&<8Jw%MRr7a@uY|tH#$Y`aF<8{_NW0&|09ROzG@35Rg*dKCSTcapx z!)rRp76JlaN88;|)Smfy)lQ?A)Hc733$<d#}GRyRH;l^RM}PI*B{M7jP#2!eWw;%uU|W zUjJIwpQP}Ac7Z=U>#We|4Att`tbjXLs>ML@Wx;dxH296!GV-FfTLPBHrV(FAG|Y<7 zfHMDY?@tYFQUs+=%C%L2NE!plM2sotnovPv$SIM@`US$vDKt|OSX^-)@r#zl*i8R5 zgc`6|Z>%~medu8SaTD+{tr8HC`4i20zT*Z!Cba?uEDgODA*ub7s4oJEapPbWna;e> zpwq+%SJli1=thP_#**n?M*fmYD?BtUz8Ck&YfJ=vY!S zRkw(M>5#Bu7ud&`I-Qz+N)THH%#2!Y!&6mSo8$5UfGN_ zq!l7)U=RFVI8$s!XmP)7*Bt{5Tycf>NBoX-;Qq%K(0NK!0

XysrcDZ$^XirxpvYbxEVYC^5I7@fSir~SW(8`- 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�UgoF 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⩔)8~WdrvBBR5cTGM$UDJx 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