From ee0d2e6e1967294f4a62da1840b0ffdaa3124a2d Mon Sep 17 00:00:00 2001 From: tpearson Date: Fri, 19 Feb 2010 18:29:46 +0000 Subject: [PATCH] Added old abandoned KDE3 version of Konversation git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/konversation@1092922 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- AUTHORS | 7 + COPYING | 280 + COPYING-DOCS | 397 + ChangeLog | 1333 ++ INSTALL | 181 + Makefile.am | 5 + Makefile.am.in | 4 + README | 4 + TODO | 3 + VERSION | 1 + acinclude.m4 | 12643 ++++++++++++++++ aclocal.m4 | 910 ++ config.h.in | 252 + configure.files | 3 + configure.in | 234 + configure.in.in | 11 + doc/Makefile.am | 5 + doc/da/Makefile.am | 2 + doc/da/index.docbook | 5935 ++++++++ doc/es/Makefile.am | 2 + doc/es/addchannel.png | Bin 0 -> 11767 bytes doc/es/addnetwork_co.png | Bin 0 -> 38945 bytes doc/es/addserver_co.png | Bin 0 -> 19211 bytes doc/es/channel_screen_tour_co.png | Bin 0 -> 87922 bytes doc/es/channellist_screen_co.png | Bin 0 -> 92402 bytes doc/es/checkidentities.png | Bin 0 -> 19017 bytes doc/es/colorchooser_screen.png | Bin 0 -> 18441 bytes doc/es/colorize.png | Bin 0 -> 1022 bytes doc/es/common/1.png | Bin 0 -> 235 bytes doc/es/common/2.png | Bin 0 -> 260 bytes doc/es/common/3.png | Bin 0 -> 264 bytes doc/es/common/4.png | Bin 0 -> 259 bytes doc/es/common/5.png | Bin 0 -> 260 bytes doc/es/common/6.png | Bin 0 -> 277 bytes doc/es/common/7.png | Bin 0 -> 252 bytes doc/es/common/8.png | Bin 0 -> 274 bytes doc/es/common/9.png | Bin 0 -> 283 bytes doc/es/configure.png | Bin 0 -> 1054 bytes doc/es/dccstatus_screen_co.png | Bin 0 -> 40081 bytes doc/es/first_channel_co.png | Bin 0 -> 55889 bytes doc/es/first_serverlist_co.png | Bin 0 -> 24256 bytes doc/es/highlighting_screen_co.png | Bin 0 -> 89347 bytes doc/es/identities_adv_co.png | Bin 0 -> 34376 bytes doc/es/identities_away_co.png | Bin 0 -> 34513 bytes doc/es/identities_gen_co.png | Bin 0 -> 41119 bytes doc/es/irc_admin.png | Bin 0 -> 205 bytes doc/es/irc_away.png | Bin 0 -> 181 bytes doc/es/irc_halfop.png | Bin 0 -> 212 bytes doc/es/irc_normal.png | Bin 0 -> 206 bytes doc/es/irc_op.png | Bin 0 -> 212 bytes doc/es/irc_owner.png | Bin 0 -> 212 bytes doc/es/irc_voice.png | Bin 0 -> 212 bytes doc/es/kaddressbook.png | Bin 0 -> 783 bytes doc/es/kimproxy_create_screen2.png | Bin 0 -> 23652 bytes doc/es/kimproxy_create_screen_co.png | Bin 0 -> 58630 bytes doc/es/led_blue_off.png | Bin 0 -> 282 bytes doc/es/led_blue_on.png | Bin 0 -> 250 bytes doc/es/led_green_off.png | Bin 0 -> 277 bytes doc/es/led_green_on.png | Bin 0 -> 245 bytes doc/es/led_red_off.png | Bin 0 -> 248 bytes doc/es/led_red_on.png | Bin 0 -> 255 bytes doc/es/led_yellow_off.png | Bin 0 -> 259 bytes doc/es/led_yellow_on.png | Bin 0 -> 224 bytes doc/es/logviewer_co.png | Bin 0 -> 105998 bytes doc/es/nicksonline_co.png | Bin 0 -> 43449 bytes doc/es/nickthemes_screen_co.png | Bin 0 -> 88233 bytes doc/es/notification_screen_co.png | Bin 0 -> 72555 bytes doc/es/notifylist_screen_co.png | Bin 0 -> 83279 bytes doc/es/osd_demo.png | Bin 0 -> 67027 bytes doc/es/osd_screen_co.png | Bin 0 -> 92388 bytes doc/es/quickbuttons_screen.png | Bin 0 -> 100953 bytes doc/es/quickconnect_screen.png | Bin 0 -> 15369 bytes doc/es/serverlist_co.png | Bin 0 -> 29459 bytes doc/es/urlcatcher_screen_co.png | Bin 0 -> 41032 bytes doc/es/webbrowser_screen_co.png | Bin 0 -> 98548 bytes doc/et/Makefile.am | 2 + doc/et/index.docbook | 5981 ++++++++ doc/it/Makefile.am | 2 + doc/it/addchannel.png | Bin 0 -> 6493 bytes doc/it/addnetwork_co.png | Bin 0 -> 29590 bytes doc/it/addserver_co.png | Bin 0 -> 12390 bytes doc/it/channel_screen_tour_co.png | Bin 0 -> 87723 bytes doc/it/channellist_screen_co.png | Bin 0 -> 63868 bytes doc/it/checkidentities.png | Bin 0 -> 12118 bytes doc/it/colorchooser_screen.png | Bin 0 -> 9637 bytes doc/it/first_channel_co.png | Bin 0 -> 78996 bytes doc/it/first_serverlist_co.png | Bin 0 -> 15863 bytes doc/it/identities_adv_co.png | Bin 0 -> 24545 bytes doc/it/identities_away_co.png | Bin 0 -> 26257 bytes doc/it/identities_gen_co.png | Bin 0 -> 28834 bytes doc/it/index.docbook | 5935 ++++++++ doc/it/nicksonline_co.png | Bin 0 -> 43056 bytes doc/it/notification_screen_co.png | Bin 0 -> 48043 bytes doc/it/notifylist_screen_co.png | Bin 0 -> 42182 bytes doc/it/osd_demo.png | Bin 0 -> 71780 bytes doc/it/osd_screen_co.png | Bin 0 -> 48937 bytes doc/it/quickbuttons_screen.png | Bin 0 -> 75688 bytes doc/it/quickconnect_screen.png | Bin 0 -> 11062 bytes doc/it/serverlist_co.png | Bin 0 -> 17643 bytes doc/konversation/Makefile.am | 9 + doc/konversation/addchannel.png | Bin 0 -> 6040 bytes doc/konversation/addnetwork_co.png | Bin 0 -> 14855 bytes doc/konversation/addserver_co.png | Bin 0 -> 7753 bytes doc/konversation/channel_screen_co.png | Bin 0 -> 25490 bytes doc/konversation/channel_screen_tour_co.png | Bin 0 -> 42891 bytes doc/konversation/channellist_screen_co.png | Bin 0 -> 28003 bytes doc/konversation/checkidentities.png | Bin 0 -> 7639 bytes doc/konversation/colorchooser_screen.png | Bin 0 -> 7155 bytes doc/konversation/colorize.png | Bin 0 -> 1011 bytes doc/konversation/configure.png | Bin 0 -> 1094 bytes doc/konversation/dccstatus_screen_co.png | Bin 0 -> 18463 bytes doc/konversation/editserver_screen_co.png | Bin 0 -> 8594 bytes doc/konversation/first_channel_co.png | Bin 0 -> 28553 bytes doc/konversation/first_serverlist_co.png | Bin 0 -> 9272 bytes doc/konversation/highlighting_screen_co.png | Bin 0 -> 29812 bytes doc/konversation/identities_adv_co.png | Bin 0 -> 13151 bytes doc/konversation/identities_away_co.png | Bin 0 -> 27971 bytes doc/konversation/identities_gen_co.png | Bin 0 -> 14338 bytes doc/konversation/index.docbook | 3483 +++++ doc/konversation/irc_admin.png | Bin 0 -> 205 bytes doc/konversation/irc_away.png | Bin 0 -> 181 bytes doc/konversation/irc_halfop.png | Bin 0 -> 212 bytes doc/konversation/irc_normal.png | Bin 0 -> 206 bytes doc/konversation/irc_op.png | Bin 0 -> 212 bytes doc/konversation/irc_owner.png | Bin 0 -> 212 bytes doc/konversation/irc_voice.png | Bin 0 -> 212 bytes doc/konversation/kaddressbook.png | Bin 0 -> 672 bytes doc/konversation/kimproxy_create_screen2.png | Bin 0 -> 11651 bytes .../kimproxy_create_screen_co.png | Bin 0 -> 53750 bytes doc/konversation/led_blue_off.png | Bin 0 -> 282 bytes doc/konversation/led_blue_on.png | Bin 0 -> 250 bytes doc/konversation/led_green_off.png | Bin 0 -> 277 bytes doc/konversation/led_green_on.png | Bin 0 -> 245 bytes doc/konversation/led_red_off.png | Bin 0 -> 248 bytes doc/konversation/led_red_on.png | Bin 0 -> 255 bytes doc/konversation/led_yellow_off.png | Bin 0 -> 259 bytes doc/konversation/led_yellow_on.png | Bin 0 -> 224 bytes doc/konversation/logviewer_co.png | Bin 0 -> 22420 bytes doc/konversation/nicksonline_co.png | Bin 0 -> 32817 bytes doc/konversation/nickthemes_screen_co.png | Bin 0 -> 27299 bytes doc/konversation/notification_screen_co.png | Bin 0 -> 60442 bytes doc/konversation/notifylist_screen_co.png | Bin 0 -> 64301 bytes doc/konversation/osd_demo.png | Bin 0 -> 67027 bytes doc/konversation/osd_screen_co.png | Bin 0 -> 67636 bytes doc/konversation/prefs_identity_screen_co.png | Bin 0 -> 21694 bytes doc/konversation/quickbuttons_screen.png | Bin 0 -> 29444 bytes doc/konversation/quickconnect_screen.png | Bin 0 -> 7586 bytes doc/konversation/serverlist_co.png | Bin 0 -> 11629 bytes doc/konversation/serverlist_screen_co.png | Bin 0 -> 16017 bytes doc/konversation/urlcatcher_screen_co.png | Bin 0 -> 22315 bytes doc/konversation/webbrowser_screen_co.png | Bin 0 -> 70507 bytes doc/pt/Makefile.am | 2 + doc/pt/index.docbook | 5959 ++++++++ doc/ru/Makefile.am | 2 + doc/ru/index.docbook | 5961 ++++++++ doc/sv/Makefile.am | 2 + doc/sv/addchannel.png | Bin 0 -> 3984 bytes doc/sv/addnetwork_co.png | Bin 0 -> 11968 bytes doc/sv/addserver_co.png | Bin 0 -> 5900 bytes doc/sv/channel_screen_tour_co.png | Bin 0 -> 27271 bytes doc/sv/channellist_screen_co.png | Bin 0 -> 28917 bytes doc/sv/checkidentities.png | Bin 0 -> 5652 bytes doc/sv/colorchooser_screen.png | Bin 0 -> 5191 bytes doc/sv/dccstatus_screen_co.png | Bin 0 -> 14108 bytes doc/sv/first_channel_co.png | Bin 0 -> 20621 bytes doc/sv/first_serverlist_co.png | Bin 0 -> 6882 bytes doc/sv/highlighting_screen_co.png | Bin 0 -> 25707 bytes doc/sv/identities_adv_co.png | Bin 0 -> 10426 bytes doc/sv/identities_away_co.png | Bin 0 -> 11280 bytes doc/sv/identities_gen_co.png | Bin 0 -> 11731 bytes doc/sv/index.docbook | 5965 ++++++++ doc/sv/kimproxy_create_screen2.png | Bin 0 -> 9385 bytes doc/sv/kimproxy_create_screen_co.png | Bin 0 -> 19639 bytes doc/sv/logviewer_co.png | Bin 0 -> 18170 bytes doc/sv/nicksonline_co.png | Bin 0 -> 20764 bytes doc/sv/nickthemes_screen_co.png | Bin 0 -> 22362 bytes doc/sv/notification_screen_co.png | Bin 0 -> 19049 bytes doc/sv/notifylist_screen_co.png | Bin 0 -> 24737 bytes doc/sv/osd_demo.png | Bin 0 -> 23486 bytes doc/sv/osd_screen_co.png | Bin 0 -> 26120 bytes doc/sv/quickbuttons_screen.png | Bin 0 -> 27270 bytes doc/sv/quickconnect_screen.png | Bin 0 -> 5645 bytes doc/sv/serverlist_co.png | Bin 0 -> 9385 bytes doc/sv/urlcatcher_screen_co.png | Bin 0 -> 12773 bytes doc/sv/webbrowser_screen_co.png | Bin 0 -> 28892 bytes konversation/Makefile.am | 19 + konversation/NEWS | 5 + konversation/configure.files | 3 + konversation/configure.in.in | 48 + konversation/images/Makefile.am | 1 + konversation/images/icons/Makefile.am | 1 + konversation/images/icons/README-kimproxy | 5 + .../images/icons/cr16-action-kimproxyaway.png | Bin 0 -> 521 bytes .../icons/cr16-action-kimproxyoffline.png | Bin 0 -> 540 bytes .../icons/cr16-action-kimproxyonline.png | Bin 0 -> 460 bytes .../images/icons/cr22-action-char.png | Bin 0 -> 342 bytes .../images/icons/cr22-action-kimproxyaway.png | Bin 0 -> 685 bytes .../icons/cr22-action-kimproxyoffline.png | Bin 0 -> 711 bytes .../icons/cr22-action-kimproxyonline.png | Bin 0 -> 590 bytes .../images/icons/cr22-action-konv_message.png | Bin 0 -> 1091 bytes .../images/icons/cr32-action-kimproxyaway.png | Bin 0 -> 1007 bytes .../icons/cr32-action-kimproxyoffline.png | Bin 0 -> 1030 bytes .../icons/cr32-action-kimproxyonline.png | Bin 0 -> 816 bytes .../icons/crsc-action-kimproxyaway.svgz | Bin 0 -> 1272 bytes .../icons/crsc-action-kimproxyoffline.svgz | Bin 0 -> 1284 bytes .../icons/crsc-action-kimproxyonline.svgz | Bin 0 -> 1305 bytes .../icons/crsc-action-konv_message.svgz | Bin 0 -> 2946 bytes .../images/icons/hi128-app-konversation.png | Bin 0 -> 11281 bytes .../images/icons/hi16-app-konversation.png | Bin 0 -> 827 bytes .../images/icons/hi22-app-konversation.png | Bin 0 -> 1198 bytes .../images/icons/hi32-app-konversation.png | Bin 0 -> 1806 bytes .../images/icons/hi48-app-konversation.png | Bin 0 -> 3358 bytes .../images/icons/hi64-app-konversation.png | Bin 0 -> 4757 bytes .../images/icons/hisc-app-konversation.svgz | Bin 0 -> 3051 bytes konversation/images/nickicons/Makefile.am | 1 + .../images/nickicons/alternative/Makefile.am | 3 + .../nickicons/alternative/index.desktop | 57 + .../nickicons/alternative/irc_admin.png | Bin 0 -> 797 bytes .../images/nickicons/alternative/irc_away.png | Bin 0 -> 225 bytes .../nickicons/alternative/irc_halfop.png | Bin 0 -> 784 bytes .../nickicons/alternative/irc_normal.png | Bin 0 -> 746 bytes .../images/nickicons/alternative/irc_op.png | Bin 0 -> 892 bytes .../nickicons/alternative/irc_owner.png | Bin 0 -> 824 bytes .../nickicons/alternative/irc_voice.png | Bin 0 -> 811 bytes .../images/nickicons/christmas/Makefile.am | 3 + .../images/nickicons/christmas/index.desktop | 68 + .../images/nickicons/christmas/irc_admin.png | Bin 0 -> 777 bytes .../images/nickicons/christmas/irc_away.png | Bin 0 -> 770 bytes .../images/nickicons/christmas/irc_halfop.png | Bin 0 -> 859 bytes .../images/nickicons/christmas/irc_normal.png | Bin 0 -> 871 bytes .../images/nickicons/christmas/irc_op.png | Bin 0 -> 938 bytes .../images/nickicons/christmas/irc_owner.png | Bin 0 -> 868 bytes .../images/nickicons/christmas/irc_voice.png | Bin 0 -> 697 bytes .../images/nickicons/classic/Makefile.am | 3 + .../images/nickicons/classic/index.desktop | 70 + .../images/nickicons/classic/irc_admin.png | Bin 0 -> 250 bytes .../images/nickicons/classic/irc_away.png | Bin 0 -> 111 bytes .../images/nickicons/classic/irc_halfop.png | Bin 0 -> 275 bytes .../images/nickicons/classic/irc_normal.png | Bin 0 -> 246 bytes .../images/nickicons/classic/irc_op.png | Bin 0 -> 234 bytes .../images/nickicons/classic/irc_owner.png | Bin 0 -> 242 bytes .../images/nickicons/classic/irc_voice.png | Bin 0 -> 246 bytes .../images/nickicons/default/Makefile.am | 3 + .../images/nickicons/default/index.desktop | 69 + .../images/nickicons/default/irc_admin.png | Bin 0 -> 225 bytes .../images/nickicons/default/irc_away.png | Bin 0 -> 193 bytes .../images/nickicons/default/irc_halfop.png | Bin 0 -> 236 bytes .../images/nickicons/default/irc_normal.png | Bin 0 -> 227 bytes .../images/nickicons/default/irc_op.png | Bin 0 -> 238 bytes .../images/nickicons/default/irc_owner.png | Bin 0 -> 238 bytes .../images/nickicons/default/irc_voice.png | Bin 0 -> 238 bytes .../images/nickicons/oxygen/Makefile.am | 3 + .../images/nickicons/oxygen/index.desktop | 22 + .../images/nickicons/oxygen/irc_admin.png | Bin 0 -> 754 bytes .../images/nickicons/oxygen/irc_away.png | Bin 0 -> 472 bytes .../images/nickicons/oxygen/irc_halfop.png | Bin 0 -> 750 bytes .../images/nickicons/oxygen/irc_normal.png | Bin 0 -> 743 bytes .../images/nickicons/oxygen/irc_op.png | Bin 0 -> 752 bytes .../images/nickicons/oxygen/irc_owner.png | Bin 0 -> 739 bytes .../images/nickicons/oxygen/irc_voice.png | Bin 0 -> 743 bytes .../images/nickicons/smiling/Makefile.am | 3 + .../images/nickicons/smiling/index.desktop | 70 + .../images/nickicons/smiling/irc_admin.png | Bin 0 -> 813 bytes .../images/nickicons/smiling/irc_away.png | Bin 0 -> 442 bytes .../images/nickicons/smiling/irc_halfop.png | Bin 0 -> 972 bytes .../images/nickicons/smiling/irc_normal.png | Bin 0 -> 921 bytes .../images/nickicons/smiling/irc_op.png | Bin 0 -> 919 bytes .../images/nickicons/smiling/irc_owner.png | Bin 0 -> 898 bytes .../images/nickicons/smiling/irc_voice.png | Bin 0 -> 923 bytes .../images/nickicons/square/Makefile.am | 3 + .../images/nickicons/square/index.desktop | 69 + .../images/nickicons/square/irc_admin.png | Bin 0 -> 570 bytes .../images/nickicons/square/irc_away.png | Bin 0 -> 578 bytes .../images/nickicons/square/irc_halfop.png | Bin 0 -> 631 bytes .../images/nickicons/square/irc_normal.png | Bin 0 -> 331 bytes .../images/nickicons/square/irc_op.png | Bin 0 -> 546 bytes .../images/nickicons/square/irc_owner.png | Bin 0 -> 611 bytes .../images/nickicons/square/irc_voice.png | Bin 0 -> 559 bytes konversation/scripts/Makefile.am | 4 + konversation/scripts/README | 55 + konversation/scripts/bug | 18 + konversation/scripts/cmd | 31 + konversation/scripts/fortune | 53 + konversation/scripts/fortunes.dat | 680 + konversation/scripts/gauge | 71 + konversation/scripts/kdeversion | 9 + konversation/scripts/mail | 70 + konversation/scripts/media | 484 + konversation/scripts/sayclip | 19 + konversation/scripts/sysinfo | 86 + konversation/scripts/tinyurl | 31 + konversation/scripts/uptime | 56 + konversation/scripts/weather | 70 + konversation/src/Makefile.am | 73 + konversation/src/alias_preferences.cpp | 223 + konversation/src/alias_preferences.h | 51 + konversation/src/alias_preferencesui.ui | 174 + konversation/src/autoreplace_preferences.cpp | 403 + konversation/src/autoreplace_preferences.h | 57 + konversation/src/autoreplace_preferencesui.ui | 292 + konversation/src/awaymanager.cpp | 372 + konversation/src/awaymanager.h | 73 + konversation/src/blowfish/BlowfishCbc.cpp | 654 + konversation/src/blowfish/BlowfishCbc.h | 228 + konversation/src/blowfish/Makefile.am | 7 + konversation/src/blowfish/README | 3 + konversation/src/blowfish/b64stuff.cpp | 218 + konversation/src/blowfish/b64stuff.h | 53 + konversation/src/blowfish/blowfish.cpp | 129 + konversation/src/blowfish/blowfish.h | 30 + konversation/src/blowfish/mc_blowfish.cpp | 63 + konversation/src/blowfish/mc_blowfish.h | 34 + konversation/src/blowfish/newblowfish.cpp | 208 + konversation/src/blowfish/newblowfish.h | 32 + konversation/src/blowfish/oldblowfish.cpp | 425 + konversation/src/blowfish/oldblowfish1.h | 141 + konversation/src/blowfish/oldblowfish2.h | 295 + konversation/src/channel.cpp | 2960 ++++ konversation/src/channel.h | 375 + konversation/src/channeldialog.cpp | 82 + konversation/src/channeldialog.h | 46 + konversation/src/channellistpanel.cpp | 597 + konversation/src/channellistpanel.h | 147 + konversation/src/channellistviewitem.cpp | 40 + konversation/src/channellistviewitem.h | 31 + konversation/src/channelnick.cpp | 259 + konversation/src/channelnick.h | 95 + konversation/src/channeloptionsdialog.cpp | 537 + konversation/src/channeloptionsdialog.h | 102 + konversation/src/channeloptionsui.ui | 559 + konversation/src/chatwindow.cpp | 526 + konversation/src/chatwindow.h | 205 + .../src/chatwindowappearance_preferences.ui | 378 + .../src/chatwindowbehaviour_preferences.ui | 374 + .../src/colorsappearance_preferences.ui | 1395 ++ konversation/src/commit.h | 4 + konversation/src/common.cpp | 196 + konversation/src/common.h | 56 + konversation/src/config/Makefile.am | 8 + konversation/src/config/konversation.kcfg | 996 ++ konversation/src/config/preferences.cpp | 605 + konversation/src/config/preferences.h | 169 + .../src/config/preferences_base.kcfgc | 8 + .../src/connectionbehavior_preferences.ui | 187 + konversation/src/connectionmanager.cpp | 580 + konversation/src/connectionmanager.h | 95 + konversation/src/connectionsettings.cpp | 55 + konversation/src/connectionsettings.h | 61 + konversation/src/dcc_preferences.cpp | 54 + konversation/src/dcc_preferences.h | 38 + konversation/src/dcc_preferencesui.ui | 527 + konversation/src/dccchat.cpp | 473 + konversation/src/dccchat.h | 102 + konversation/src/dcccommon.cpp | 118 + konversation/src/dcccommon.h | 48 + konversation/src/dccrecipientdialog.cpp | 100 + konversation/src/dccrecipientdialog.h | 47 + konversation/src/dccresumedialog.cpp | 198 + konversation/src/dccresumedialog.h | 59 + konversation/src/dcctransfer.cpp | 358 + konversation/src/dcctransfer.h | 186 + .../src/dcctransferdetailedinfopanel.cpp | 214 + .../src/dcctransferdetailedinfopanel.h | 44 + .../src/dcctransferdetailedinfopanelui.ui | 492 + konversation/src/dcctransfermanager.cpp | 238 + konversation/src/dcctransfermanager.h | 95 + konversation/src/dcctransferpanel.cpp | 459 + konversation/src/dcctransferpanel.h | 113 + konversation/src/dcctransferpanelitem.cpp | 403 + konversation/src/dcctransferpanelitem.h | 98 + konversation/src/dcctransferrecv.cpp | 799 + konversation/src/dcctransferrecv.h | 184 + konversation/src/dcctransfersend.cpp | 509 + konversation/src/dcctransfersend.h | 98 + konversation/src/decoder.h | 113 + konversation/src/editnotifydialog.cpp | 103 + konversation/src/editnotifydialog.h | 50 + konversation/src/emoticon.cpp | 209 + konversation/src/emoticon.h | 47 + konversation/src/eventsrc | 973 ++ .../src/fontappearance_preferences.ui | 160 + .../src/generalbehavior_preferences.ui | 360 + konversation/src/guess_ja.cpp | 377 + konversation/src/guess_ja.h | 116 + konversation/src/highlight.cpp | 49 + konversation/src/highlight.h | 63 + konversation/src/highlight_preferences.cpp | 352 + konversation/src/highlight_preferences.h | 63 + konversation/src/highlight_preferencesui.ui | 453 + konversation/src/highlightviewitem.cpp | 93 + konversation/src/highlightviewitem.h | 72 + konversation/src/identity.cpp | 177 + konversation/src/identity.h | 133 + konversation/src/identitydialog.cpp | 642 + konversation/src/identitydialog.h | 99 + konversation/src/ignore.cpp | 30 + konversation/src/ignore.h | 46 + konversation/src/ignore_preferences.cpp | 219 + konversation/src/ignore_preferences.h | 58 + konversation/src/ignore_preferencesui.ui | 219 + konversation/src/ignorelistviewitem.cpp | 55 + konversation/src/ignorelistviewitem.h | 39 + konversation/src/images.cpp | 319 + konversation/src/images.h | 102 + konversation/src/inputfilter.cpp | 1985 +++ konversation/src/inputfilter.h | 94 + konversation/src/insertchardialog.cpp | 57 + konversation/src/insertchardialog.h | 46 + konversation/src/irccharsets.cpp | 177 + konversation/src/irccharsets.h | 106 + konversation/src/irccolorchooser.cpp | 83 + konversation/src/irccolorchooser.h | 41 + konversation/src/irccolorchooserui.ui | 148 + konversation/src/ircinput.cpp | 551 + konversation/src/ircinput.h | 91 + konversation/src/ircqueue.cpp | 209 + konversation/src/ircqueue.h | 137 + konversation/src/ircview.cpp | 1791 +++ konversation/src/ircview.h | 242 + konversation/src/ircviewbox.cpp | 141 + konversation/src/ircviewbox.h | 49 + konversation/src/joinchanneldialog.cpp | 104 + konversation/src/joinchanneldialog.h | 44 + konversation/src/joinchannelui.ui | 110 + konversation/src/konsolepanel.cpp | 75 + konversation/src/konsolepanel.h | 47 + konversation/src/konvdcop.cpp | 359 + konversation/src/konvdcop.h | 110 + .../src/konversation-0.19-appearance.pl | 52 + .../src/konversation-0.19-colorcodes.pl | 26 + konversation/src/konversation-0.19-colors.pl | 23 + .../src/konversation-0.19-custombrowser.pl | 26 + .../src/konversation-0.19-notifylists.pl | 43 + .../src/konversation-0.19-sortorder.pl | 69 + .../src/konversation-0.19-tabplacement.pl | 26 + .../src/konversation-0.20-customfonts.pl | 21 + .../src/konversation-0.20-quickbuttons.pl | 137 + konversation/src/konversation.desktop | 47 + konversation/src/konversation.upd | 144 + konversation/src/konversationapplication.cpp | 888 ++ konversation/src/konversationapplication.h | 169 + konversation/src/konversationmainwindow.cpp | 654 + konversation/src/konversationmainwindow.h | 148 + konversation/src/konversationsound.cpp | 41 + konversation/src/konversationsound.h | 41 + konversation/src/konversationstatusbar.cpp | 242 + konversation/src/konversationstatusbar.h | 67 + konversation/src/konversationui.rc | 82 + konversation/src/konvibookmarkhandler.cpp | 96 + konversation/src/konvibookmarkhandler.h | 55 + konversation/src/konvibookmarkmenu.cpp | 154 + konversation/src/konvibookmarkmenu.h | 65 + konversation/src/konviconfigdialog.cpp | 284 + konversation/src/konviconfigdialog.h | 124 + konversation/src/konviface.h | 89 + konversation/src/konvirc.protocol | 11 + konversation/src/konvirc6.protocol | 11 + konversation/src/konvisettingsdialog.cpp | 316 + konversation/src/konvisettingsdialog.h | 95 + konversation/src/konvisettingspage.h | 27 + konversation/src/linkaddressbook/Makefile.am | 13 + .../src/linkaddressbook/addressbook.cpp | 339 + .../src/linkaddressbook/addressbook.h | 99 + .../src/linkaddressbook/addressbook_base.cpp | 516 + .../src/linkaddressbook/addressbook_base.h | 128 + .../src/linkaddressbook/addresseeitem.cpp | 63 + .../src/linkaddressbook/addresseeitem.h | 66 + konversation/src/linkaddressbook/kimiface.h | 191 + .../src/linkaddressbook/linkaddressbookui.cpp | 191 + .../src/linkaddressbook/linkaddressbookui.h | 68 + .../linkaddressbook/linkaddressbookui_base.ui | 174 + .../src/linkaddressbook/nicklisttooltip.cpp | 68 + .../src/linkaddressbook/nicklisttooltip.h | 45 + .../linkaddressbook/nicksonlinetooltip.cpp | 67 + .../src/linkaddressbook/nicksonlinetooltip.h | 45 + konversation/src/log_preferences.ui | 116 + konversation/src/logfilereader.cpp | 187 + konversation/src/logfilereader.h | 59 + konversation/src/main.cpp | 103 + konversation/src/modebutton.cpp | 44 + konversation/src/modebutton.h | 40 + konversation/src/multilineedit.cpp | 79 + konversation/src/multilineedit.h | 40 + konversation/src/multilinetextedit.cpp | 175 + konversation/src/multilinetextedit.h | 41 + konversation/src/nick.cpp | 262 + konversation/src/nick.h | 55 + konversation/src/nickinfo.cpp | 445 + konversation/src/nickinfo.h | 185 + .../src/nicklistbehavior_preferences.cpp | 108 + .../src/nicklistbehavior_preferences.h | 46 + .../src/nicklistbehavior_preferencesui.ui | 160 + konversation/src/nicklistview.cpp | 336 + konversation/src/nicklistview.h | 77 + konversation/src/nicksonline.cpp | 975 ++ konversation/src/nicksonline.h | 261 + konversation/src/nicksonlineitem.cpp | 52 + konversation/src/nicksonlineitem.h | 58 + konversation/src/notificationhandler.cpp | 334 + konversation/src/notificationhandler.h | 61 + konversation/src/osd.cpp | 446 + konversation/src/osd.h | 124 + konversation/src/osd_preferences.cpp | 190 + konversation/src/osd_preferences.h | 57 + konversation/src/osd_preferencesui.ui | 424 + konversation/src/outputfilter.cpp | 1790 +++ konversation/src/outputfilter.h | 182 + konversation/src/query.cpp | 673 + konversation/src/query.h | 118 + konversation/src/queuetuner.cpp | 256 + konversation/src/queuetuner.h | 62 + konversation/src/queuetunerbase.ui | 767 + konversation/src/quickbutton.cpp | 38 + konversation/src/quickbutton.h | 42 + konversation/src/quickbuttons_preferences.cpp | 262 + konversation/src/quickbuttons_preferences.h | 53 + .../src/quickbuttons_preferencesui.ui | 222 + konversation/src/quickconnectdialog.cpp | 108 + konversation/src/quickconnectdialog.h | 54 + konversation/src/rawlog.cpp | 79 + konversation/src/rawlog.h | 40 + konversation/src/replycodes.h | 160 + konversation/src/scriptlauncher.cpp | 74 + konversation/src/scriptlauncher.h | 39 + konversation/src/searchbar.cpp | 245 + konversation/src/searchbar.h | 83 + konversation/src/searchbarbase.ui | 131 + konversation/src/server.cpp | 3348 ++++ konversation/src/server.h | 717 + konversation/src/serverdialog.cpp | 103 + konversation/src/serverdialog.h | 48 + konversation/src/servergroupdialog.cpp | 418 + konversation/src/servergroupdialog.h | 85 + konversation/src/servergroupdialogui.ui | 318 + konversation/src/servergroupsettings.cpp | 229 + konversation/src/servergroupsettings.h | 131 + konversation/src/serverison.cpp | 242 + konversation/src/serverison.h | 113 + konversation/src/serverlistdialog.cpp | 564 + konversation/src/serverlistdialog.h | 110 + konversation/src/serverlistview.cpp | 114 + konversation/src/serverlistview.h | 38 + konversation/src/serversettings.cpp | 66 + konversation/src/serversettings.h | 52 + konversation/src/ssllabel.cpp | 29 + konversation/src/ssllabel.h | 33 + konversation/src/sslsocket.cpp | 358 + konversation/src/sslsocket.h | 60 + konversation/src/statuspanel.cpp | 398 + konversation/src/statuspanel.h | 96 + .../src/tabnotifications_preferences.ui | 407 + konversation/src/tabs_preferences.cpp | 59 + konversation/src/tabs_preferences.h | 33 + konversation/src/tabs_preferencesui.ui | 192 + konversation/src/theme_preferences.cpp | 307 + konversation/src/theme_preferences.h | 56 + konversation/src/theme_preferencesui.ui | 222 + konversation/src/topiccombobox.cpp | 50 + konversation/src/topiccombobox.h | 39 + konversation/src/topiclabel.cpp | 385 + konversation/src/topiclabel.h | 90 + konversation/src/trayicon.cpp | 99 + konversation/src/trayicon.h | 60 + konversation/src/unicode.cpp | 145 + konversation/src/urlcatcher.cpp | 233 + konversation/src/urlcatcher.h | 66 + konversation/src/valuelistviewitem.cpp | 40 + konversation/src/valuelistviewitem.h | 33 + konversation/src/version.h | 3 + konversation/src/viewcontainer.cpp | 2454 +++ konversation/src/viewcontainer.h | 229 + konversation/src/viewtree.cpp | 973 ++ konversation/src/viewtree.h | 112 + konversation/src/viewtreeitem.cpp | 490 + konversation/src/viewtreeitem.h | 92 + konversation/src/warnings_preferences.cpp | 185 + konversation/src/warnings_preferences.h | 48 + konversation/src/warnings_preferencesui.ui | 50 + .../src/watchednicknames_preferences.cpp | 420 + .../src/watchednicknames_preferences.h | 59 + .../src/watchednicknames_preferencesui.ui | 415 + po/Makefile.am | 1 + po/ar/Makefile.am | 3 + po/ar/konversation.po | 7541 +++++++++ po/bg/Makefile.am | 3 + po/bg/konversation.po | 7602 ++++++++++ po/ca/Makefile.am | 3 + po/ca/konversation.po | 7385 +++++++++ po/da/Makefile.am | 3 + po/da/konversation.po | 7533 +++++++++ po/de/Makefile.am | 3 + po/de/konversation.po | 7651 ++++++++++ po/el/Makefile.am | 3 + po/el/konversation.po | 7676 ++++++++++ po/en_GB/Makefile.am | 3 + po/en_GB/konversation.po | 8388 ++++++++++ po/es/Makefile.am | 3 + po/es/konversation.po | 7625 ++++++++++ po/et/Makefile.am | 3 + po/et/konversation.po | 7515 +++++++++ po/fi/Makefile.am | 3 + po/fi/konversation.po | 8364 ++++++++++ po/fr/Makefile.am | 3 + po/fr/konversation.po | 7722 ++++++++++ po/gl/Makefile.am | 3 + po/gl/konversation.po | 7746 ++++++++++ po/he/Makefile.am | 3 + po/he/konversation.po | 7072 +++++++++ po/hu/Makefile.am | 3 + po/hu/konversation.po | 8076 ++++++++++ po/it/Makefile.am | 3 + po/it/konversation.po | 8033 ++++++++++ po/ja/Makefile.am | 3 + po/ja/konversation.po | 7231 +++++++++ po/ka/Makefile.am | 3 + po/ka/konversation.po | 7869 ++++++++++ po/ko/Makefile.am | 3 + po/ko/konversation.po | 8336 ++++++++++ po/pa/Makefile.am | 3 + po/pa/konversation.po | 7129 +++++++++ po/pt/Makefile.am | 3 + po/pt/konversation.po | 7627 ++++++++++ po/ru/Makefile.am | 3 + po/ru/konversation.po | 7676 ++++++++++ po/sr/Makefile.am | 3 + po/sr/konversation.po | 7503 +++++++++ po/sr@Latn/Makefile.am | 3 + po/sr@Latn/konversation.po | 7506 +++++++++ po/sv/Makefile.am | 3 + po/sv/konversation.po | 7463 +++++++++ po/tr/Makefile.am | 3 + po/tr/konversation.po | 7522 +++++++++ po/zh_CN/Makefile.am | 3 + po/zh_CN/konversation.po | 7256 +++++++++ po/zh_TW/Makefile.am | 3 + po/zh_TW/konversation.po | 7164 +++++++++ stamp-h.in | 0 subdirs | 3 + 638 files changed, 331765 insertions(+) create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 COPYING-DOCS create mode 100644 ChangeLog create mode 100644 INSTALL create mode 100644 Makefile.am create mode 100644 Makefile.am.in create mode 100644 README create mode 100644 TODO create mode 100644 VERSION 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/da/Makefile.am create mode 100644 doc/da/index.docbook create mode 100644 doc/es/Makefile.am create mode 100644 doc/es/addchannel.png create mode 100644 doc/es/addnetwork_co.png create mode 100644 doc/es/addserver_co.png create mode 100644 doc/es/channel_screen_tour_co.png create mode 100644 doc/es/channellist_screen_co.png create mode 100644 doc/es/checkidentities.png create mode 100644 doc/es/colorchooser_screen.png create mode 100644 doc/es/colorize.png create mode 100644 doc/es/common/1.png create mode 100644 doc/es/common/2.png create mode 100644 doc/es/common/3.png create mode 100644 doc/es/common/4.png create mode 100644 doc/es/common/5.png create mode 100644 doc/es/common/6.png create mode 100644 doc/es/common/7.png create mode 100644 doc/es/common/8.png create mode 100644 doc/es/common/9.png create mode 100644 doc/es/configure.png create mode 100644 doc/es/dccstatus_screen_co.png create mode 100644 doc/es/first_channel_co.png create mode 100644 doc/es/first_serverlist_co.png create mode 100644 doc/es/highlighting_screen_co.png create mode 100644 doc/es/identities_adv_co.png create mode 100644 doc/es/identities_away_co.png create mode 100644 doc/es/identities_gen_co.png create mode 100644 doc/es/irc_admin.png create mode 100644 doc/es/irc_away.png create mode 100644 doc/es/irc_halfop.png create mode 100644 doc/es/irc_normal.png create mode 100644 doc/es/irc_op.png create mode 100644 doc/es/irc_owner.png create mode 100644 doc/es/irc_voice.png create mode 100644 doc/es/kaddressbook.png create mode 100644 doc/es/kimproxy_create_screen2.png create mode 100644 doc/es/kimproxy_create_screen_co.png create mode 100644 doc/es/led_blue_off.png create mode 100644 doc/es/led_blue_on.png create mode 100644 doc/es/led_green_off.png create mode 100644 doc/es/led_green_on.png create mode 100644 doc/es/led_red_off.png create mode 100644 doc/es/led_red_on.png create mode 100644 doc/es/led_yellow_off.png create mode 100644 doc/es/led_yellow_on.png create mode 100644 doc/es/logviewer_co.png create mode 100644 doc/es/nicksonline_co.png create mode 100644 doc/es/nickthemes_screen_co.png create mode 100644 doc/es/notification_screen_co.png create mode 100644 doc/es/notifylist_screen_co.png create mode 100644 doc/es/osd_demo.png create mode 100644 doc/es/osd_screen_co.png create mode 100644 doc/es/quickbuttons_screen.png create mode 100644 doc/es/quickconnect_screen.png create mode 100644 doc/es/serverlist_co.png create mode 100644 doc/es/urlcatcher_screen_co.png create mode 100644 doc/es/webbrowser_screen_co.png create mode 100644 doc/et/Makefile.am create mode 100644 doc/et/index.docbook create mode 100644 doc/it/Makefile.am create mode 100644 doc/it/addchannel.png create mode 100644 doc/it/addnetwork_co.png create mode 100644 doc/it/addserver_co.png create mode 100644 doc/it/channel_screen_tour_co.png create mode 100644 doc/it/channellist_screen_co.png create mode 100644 doc/it/checkidentities.png create mode 100644 doc/it/colorchooser_screen.png create mode 100644 doc/it/first_channel_co.png create mode 100644 doc/it/first_serverlist_co.png create mode 100644 doc/it/identities_adv_co.png create mode 100644 doc/it/identities_away_co.png create mode 100644 doc/it/identities_gen_co.png create mode 100644 doc/it/index.docbook create mode 100644 doc/it/nicksonline_co.png create mode 100644 doc/it/notification_screen_co.png create mode 100644 doc/it/notifylist_screen_co.png create mode 100644 doc/it/osd_demo.png create mode 100644 doc/it/osd_screen_co.png create mode 100644 doc/it/quickbuttons_screen.png create mode 100644 doc/it/quickconnect_screen.png create mode 100644 doc/it/serverlist_co.png create mode 100644 doc/konversation/Makefile.am create mode 100644 doc/konversation/addchannel.png create mode 100644 doc/konversation/addnetwork_co.png create mode 100644 doc/konversation/addserver_co.png create mode 100644 doc/konversation/channel_screen_co.png create mode 100644 doc/konversation/channel_screen_tour_co.png create mode 100644 doc/konversation/channellist_screen_co.png create mode 100644 doc/konversation/checkidentities.png create mode 100644 doc/konversation/colorchooser_screen.png create mode 100644 doc/konversation/colorize.png create mode 100644 doc/konversation/configure.png create mode 100644 doc/konversation/dccstatus_screen_co.png create mode 100644 doc/konversation/editserver_screen_co.png create mode 100644 doc/konversation/first_channel_co.png create mode 100644 doc/konversation/first_serverlist_co.png create mode 100644 doc/konversation/highlighting_screen_co.png create mode 100644 doc/konversation/identities_adv_co.png create mode 100644 doc/konversation/identities_away_co.png create mode 100644 doc/konversation/identities_gen_co.png create mode 100644 doc/konversation/index.docbook create mode 100644 doc/konversation/irc_admin.png create mode 100644 doc/konversation/irc_away.png create mode 100644 doc/konversation/irc_halfop.png create mode 100644 doc/konversation/irc_normal.png create mode 100644 doc/konversation/irc_op.png create mode 100644 doc/konversation/irc_owner.png create mode 100644 doc/konversation/irc_voice.png create mode 100644 doc/konversation/kaddressbook.png create mode 100644 doc/konversation/kimproxy_create_screen2.png create mode 100644 doc/konversation/kimproxy_create_screen_co.png create mode 100644 doc/konversation/led_blue_off.png create mode 100644 doc/konversation/led_blue_on.png create mode 100644 doc/konversation/led_green_off.png create mode 100644 doc/konversation/led_green_on.png create mode 100644 doc/konversation/led_red_off.png create mode 100644 doc/konversation/led_red_on.png create mode 100644 doc/konversation/led_yellow_off.png create mode 100644 doc/konversation/led_yellow_on.png create mode 100644 doc/konversation/logviewer_co.png create mode 100644 doc/konversation/nicksonline_co.png create mode 100644 doc/konversation/nickthemes_screen_co.png create mode 100644 doc/konversation/notification_screen_co.png create mode 100644 doc/konversation/notifylist_screen_co.png create mode 100644 doc/konversation/osd_demo.png create mode 100644 doc/konversation/osd_screen_co.png create mode 100644 doc/konversation/prefs_identity_screen_co.png create mode 100644 doc/konversation/quickbuttons_screen.png create mode 100644 doc/konversation/quickconnect_screen.png create mode 100644 doc/konversation/serverlist_co.png create mode 100644 doc/konversation/serverlist_screen_co.png create mode 100644 doc/konversation/urlcatcher_screen_co.png create mode 100644 doc/konversation/webbrowser_screen_co.png create mode 100644 doc/pt/Makefile.am create mode 100644 doc/pt/index.docbook create mode 100644 doc/ru/Makefile.am create mode 100644 doc/ru/index.docbook create mode 100644 doc/sv/Makefile.am create mode 100644 doc/sv/addchannel.png create mode 100644 doc/sv/addnetwork_co.png create mode 100644 doc/sv/addserver_co.png create mode 100644 doc/sv/channel_screen_tour_co.png create mode 100644 doc/sv/channellist_screen_co.png create mode 100644 doc/sv/checkidentities.png create mode 100644 doc/sv/colorchooser_screen.png create mode 100644 doc/sv/dccstatus_screen_co.png create mode 100644 doc/sv/first_channel_co.png create mode 100644 doc/sv/first_serverlist_co.png create mode 100644 doc/sv/highlighting_screen_co.png create mode 100644 doc/sv/identities_adv_co.png create mode 100644 doc/sv/identities_away_co.png create mode 100644 doc/sv/identities_gen_co.png create mode 100644 doc/sv/index.docbook create mode 100644 doc/sv/kimproxy_create_screen2.png create mode 100644 doc/sv/kimproxy_create_screen_co.png create mode 100644 doc/sv/logviewer_co.png create mode 100644 doc/sv/nicksonline_co.png create mode 100644 doc/sv/nickthemes_screen_co.png create mode 100644 doc/sv/notification_screen_co.png create mode 100644 doc/sv/notifylist_screen_co.png create mode 100644 doc/sv/osd_demo.png create mode 100644 doc/sv/osd_screen_co.png create mode 100644 doc/sv/quickbuttons_screen.png create mode 100644 doc/sv/quickconnect_screen.png create mode 100644 doc/sv/serverlist_co.png create mode 100644 doc/sv/urlcatcher_screen_co.png create mode 100644 doc/sv/webbrowser_screen_co.png create mode 100644 konversation/Makefile.am create mode 100644 konversation/NEWS create mode 100644 konversation/configure.files create mode 100644 konversation/configure.in.in create mode 100644 konversation/images/Makefile.am create mode 100644 konversation/images/icons/Makefile.am create mode 100644 konversation/images/icons/README-kimproxy create mode 100644 konversation/images/icons/cr16-action-kimproxyaway.png create mode 100644 konversation/images/icons/cr16-action-kimproxyoffline.png create mode 100644 konversation/images/icons/cr16-action-kimproxyonline.png create mode 100644 konversation/images/icons/cr22-action-char.png create mode 100644 konversation/images/icons/cr22-action-kimproxyaway.png create mode 100644 konversation/images/icons/cr22-action-kimproxyoffline.png create mode 100644 konversation/images/icons/cr22-action-kimproxyonline.png create mode 100644 konversation/images/icons/cr22-action-konv_message.png create mode 100644 konversation/images/icons/cr32-action-kimproxyaway.png create mode 100644 konversation/images/icons/cr32-action-kimproxyoffline.png create mode 100644 konversation/images/icons/cr32-action-kimproxyonline.png create mode 100644 konversation/images/icons/crsc-action-kimproxyaway.svgz create mode 100644 konversation/images/icons/crsc-action-kimproxyoffline.svgz create mode 100644 konversation/images/icons/crsc-action-kimproxyonline.svgz create mode 100644 konversation/images/icons/crsc-action-konv_message.svgz create mode 100644 konversation/images/icons/hi128-app-konversation.png create mode 100644 konversation/images/icons/hi16-app-konversation.png create mode 100644 konversation/images/icons/hi22-app-konversation.png create mode 100644 konversation/images/icons/hi32-app-konversation.png create mode 100644 konversation/images/icons/hi48-app-konversation.png create mode 100644 konversation/images/icons/hi64-app-konversation.png create mode 100644 konversation/images/icons/hisc-app-konversation.svgz create mode 100644 konversation/images/nickicons/Makefile.am create mode 100644 konversation/images/nickicons/alternative/Makefile.am create mode 100644 konversation/images/nickicons/alternative/index.desktop create mode 100644 konversation/images/nickicons/alternative/irc_admin.png create mode 100644 konversation/images/nickicons/alternative/irc_away.png create mode 100644 konversation/images/nickicons/alternative/irc_halfop.png create mode 100644 konversation/images/nickicons/alternative/irc_normal.png create mode 100644 konversation/images/nickicons/alternative/irc_op.png create mode 100644 konversation/images/nickicons/alternative/irc_owner.png create mode 100644 konversation/images/nickicons/alternative/irc_voice.png create mode 100644 konversation/images/nickicons/christmas/Makefile.am create mode 100644 konversation/images/nickicons/christmas/index.desktop create mode 100644 konversation/images/nickicons/christmas/irc_admin.png create mode 100644 konversation/images/nickicons/christmas/irc_away.png create mode 100644 konversation/images/nickicons/christmas/irc_halfop.png create mode 100644 konversation/images/nickicons/christmas/irc_normal.png create mode 100644 konversation/images/nickicons/christmas/irc_op.png create mode 100644 konversation/images/nickicons/christmas/irc_owner.png create mode 100644 konversation/images/nickicons/christmas/irc_voice.png create mode 100644 konversation/images/nickicons/classic/Makefile.am create mode 100644 konversation/images/nickicons/classic/index.desktop create mode 100644 konversation/images/nickicons/classic/irc_admin.png create mode 100644 konversation/images/nickicons/classic/irc_away.png create mode 100644 konversation/images/nickicons/classic/irc_halfop.png create mode 100644 konversation/images/nickicons/classic/irc_normal.png create mode 100644 konversation/images/nickicons/classic/irc_op.png create mode 100644 konversation/images/nickicons/classic/irc_owner.png create mode 100644 konversation/images/nickicons/classic/irc_voice.png create mode 100644 konversation/images/nickicons/default/Makefile.am create mode 100644 konversation/images/nickicons/default/index.desktop create mode 100644 konversation/images/nickicons/default/irc_admin.png create mode 100644 konversation/images/nickicons/default/irc_away.png create mode 100644 konversation/images/nickicons/default/irc_halfop.png create mode 100644 konversation/images/nickicons/default/irc_normal.png create mode 100644 konversation/images/nickicons/default/irc_op.png create mode 100644 konversation/images/nickicons/default/irc_owner.png create mode 100644 konversation/images/nickicons/default/irc_voice.png create mode 100644 konversation/images/nickicons/oxygen/Makefile.am create mode 100644 konversation/images/nickicons/oxygen/index.desktop create mode 100644 konversation/images/nickicons/oxygen/irc_admin.png create mode 100644 konversation/images/nickicons/oxygen/irc_away.png create mode 100644 konversation/images/nickicons/oxygen/irc_halfop.png create mode 100644 konversation/images/nickicons/oxygen/irc_normal.png create mode 100644 konversation/images/nickicons/oxygen/irc_op.png create mode 100644 konversation/images/nickicons/oxygen/irc_owner.png create mode 100644 konversation/images/nickicons/oxygen/irc_voice.png create mode 100644 konversation/images/nickicons/smiling/Makefile.am create mode 100644 konversation/images/nickicons/smiling/index.desktop create mode 100644 konversation/images/nickicons/smiling/irc_admin.png create mode 100644 konversation/images/nickicons/smiling/irc_away.png create mode 100644 konversation/images/nickicons/smiling/irc_halfop.png create mode 100644 konversation/images/nickicons/smiling/irc_normal.png create mode 100644 konversation/images/nickicons/smiling/irc_op.png create mode 100644 konversation/images/nickicons/smiling/irc_owner.png create mode 100644 konversation/images/nickicons/smiling/irc_voice.png create mode 100644 konversation/images/nickicons/square/Makefile.am create mode 100644 konversation/images/nickicons/square/index.desktop create mode 100644 konversation/images/nickicons/square/irc_admin.png create mode 100644 konversation/images/nickicons/square/irc_away.png create mode 100644 konversation/images/nickicons/square/irc_halfop.png create mode 100644 konversation/images/nickicons/square/irc_normal.png create mode 100644 konversation/images/nickicons/square/irc_op.png create mode 100644 konversation/images/nickicons/square/irc_owner.png create mode 100644 konversation/images/nickicons/square/irc_voice.png create mode 100644 konversation/scripts/Makefile.am create mode 100644 konversation/scripts/README create mode 100755 konversation/scripts/bug create mode 100755 konversation/scripts/cmd create mode 100755 konversation/scripts/fortune create mode 100644 konversation/scripts/fortunes.dat create mode 100755 konversation/scripts/gauge create mode 100755 konversation/scripts/kdeversion create mode 100755 konversation/scripts/mail create mode 100755 konversation/scripts/media create mode 100755 konversation/scripts/sayclip create mode 100644 konversation/scripts/sysinfo create mode 100755 konversation/scripts/tinyurl create mode 100755 konversation/scripts/uptime create mode 100755 konversation/scripts/weather create mode 100644 konversation/src/Makefile.am create mode 100644 konversation/src/alias_preferences.cpp create mode 100644 konversation/src/alias_preferences.h create mode 100644 konversation/src/alias_preferencesui.ui create mode 100644 konversation/src/autoreplace_preferences.cpp create mode 100644 konversation/src/autoreplace_preferences.h create mode 100644 konversation/src/autoreplace_preferencesui.ui create mode 100644 konversation/src/awaymanager.cpp create mode 100644 konversation/src/awaymanager.h create mode 100644 konversation/src/blowfish/BlowfishCbc.cpp create mode 100644 konversation/src/blowfish/BlowfishCbc.h create mode 100644 konversation/src/blowfish/Makefile.am create mode 100644 konversation/src/blowfish/README create mode 100644 konversation/src/blowfish/b64stuff.cpp create mode 100644 konversation/src/blowfish/b64stuff.h create mode 100644 konversation/src/blowfish/blowfish.cpp create mode 100644 konversation/src/blowfish/blowfish.h create mode 100644 konversation/src/blowfish/mc_blowfish.cpp create mode 100644 konversation/src/blowfish/mc_blowfish.h create mode 100644 konversation/src/blowfish/newblowfish.cpp create mode 100644 konversation/src/blowfish/newblowfish.h create mode 100644 konversation/src/blowfish/oldblowfish.cpp create mode 100644 konversation/src/blowfish/oldblowfish1.h create mode 100644 konversation/src/blowfish/oldblowfish2.h create mode 100644 konversation/src/channel.cpp create mode 100644 konversation/src/channel.h create mode 100644 konversation/src/channeldialog.cpp create mode 100644 konversation/src/channeldialog.h create mode 100644 konversation/src/channellistpanel.cpp create mode 100644 konversation/src/channellistpanel.h create mode 100644 konversation/src/channellistviewitem.cpp create mode 100644 konversation/src/channellistviewitem.h create mode 100644 konversation/src/channelnick.cpp create mode 100644 konversation/src/channelnick.h create mode 100644 konversation/src/channeloptionsdialog.cpp create mode 100644 konversation/src/channeloptionsdialog.h create mode 100644 konversation/src/channeloptionsui.ui create mode 100644 konversation/src/chatwindow.cpp create mode 100644 konversation/src/chatwindow.h create mode 100644 konversation/src/chatwindowappearance_preferences.ui create mode 100644 konversation/src/chatwindowbehaviour_preferences.ui create mode 100644 konversation/src/colorsappearance_preferences.ui create mode 100644 konversation/src/commit.h create mode 100644 konversation/src/common.cpp create mode 100644 konversation/src/common.h create mode 100644 konversation/src/config/Makefile.am create mode 100644 konversation/src/config/konversation.kcfg create mode 100644 konversation/src/config/preferences.cpp create mode 100644 konversation/src/config/preferences.h create mode 100644 konversation/src/config/preferences_base.kcfgc create mode 100644 konversation/src/connectionbehavior_preferences.ui create mode 100644 konversation/src/connectionmanager.cpp create mode 100644 konversation/src/connectionmanager.h create mode 100644 konversation/src/connectionsettings.cpp create mode 100644 konversation/src/connectionsettings.h create mode 100644 konversation/src/dcc_preferences.cpp create mode 100644 konversation/src/dcc_preferences.h create mode 100644 konversation/src/dcc_preferencesui.ui create mode 100644 konversation/src/dccchat.cpp create mode 100644 konversation/src/dccchat.h create mode 100644 konversation/src/dcccommon.cpp create mode 100644 konversation/src/dcccommon.h create mode 100644 konversation/src/dccrecipientdialog.cpp create mode 100644 konversation/src/dccrecipientdialog.h create mode 100644 konversation/src/dccresumedialog.cpp create mode 100644 konversation/src/dccresumedialog.h create mode 100644 konversation/src/dcctransfer.cpp create mode 100644 konversation/src/dcctransfer.h create mode 100644 konversation/src/dcctransferdetailedinfopanel.cpp create mode 100644 konversation/src/dcctransferdetailedinfopanel.h create mode 100644 konversation/src/dcctransferdetailedinfopanelui.ui create mode 100644 konversation/src/dcctransfermanager.cpp create mode 100644 konversation/src/dcctransfermanager.h create mode 100644 konversation/src/dcctransferpanel.cpp create mode 100644 konversation/src/dcctransferpanel.h create mode 100644 konversation/src/dcctransferpanelitem.cpp create mode 100644 konversation/src/dcctransferpanelitem.h create mode 100644 konversation/src/dcctransferrecv.cpp create mode 100644 konversation/src/dcctransferrecv.h create mode 100644 konversation/src/dcctransfersend.cpp create mode 100644 konversation/src/dcctransfersend.h create mode 100644 konversation/src/decoder.h create mode 100644 konversation/src/editnotifydialog.cpp create mode 100644 konversation/src/editnotifydialog.h create mode 100644 konversation/src/emoticon.cpp create mode 100644 konversation/src/emoticon.h create mode 100644 konversation/src/eventsrc create mode 100644 konversation/src/fontappearance_preferences.ui create mode 100644 konversation/src/generalbehavior_preferences.ui create mode 100644 konversation/src/guess_ja.cpp create mode 100644 konversation/src/guess_ja.h create mode 100644 konversation/src/highlight.cpp create mode 100644 konversation/src/highlight.h create mode 100644 konversation/src/highlight_preferences.cpp create mode 100644 konversation/src/highlight_preferences.h create mode 100644 konversation/src/highlight_preferencesui.ui create mode 100644 konversation/src/highlightviewitem.cpp create mode 100644 konversation/src/highlightviewitem.h create mode 100644 konversation/src/identity.cpp create mode 100644 konversation/src/identity.h create mode 100644 konversation/src/identitydialog.cpp create mode 100644 konversation/src/identitydialog.h create mode 100644 konversation/src/ignore.cpp create mode 100644 konversation/src/ignore.h create mode 100644 konversation/src/ignore_preferences.cpp create mode 100644 konversation/src/ignore_preferences.h create mode 100644 konversation/src/ignore_preferencesui.ui create mode 100644 konversation/src/ignorelistviewitem.cpp create mode 100644 konversation/src/ignorelistviewitem.h create mode 100644 konversation/src/images.cpp create mode 100644 konversation/src/images.h create mode 100644 konversation/src/inputfilter.cpp create mode 100644 konversation/src/inputfilter.h create mode 100644 konversation/src/insertchardialog.cpp create mode 100644 konversation/src/insertchardialog.h create mode 100644 konversation/src/irccharsets.cpp create mode 100644 konversation/src/irccharsets.h create mode 100644 konversation/src/irccolorchooser.cpp create mode 100644 konversation/src/irccolorchooser.h create mode 100644 konversation/src/irccolorchooserui.ui create mode 100644 konversation/src/ircinput.cpp create mode 100644 konversation/src/ircinput.h create mode 100644 konversation/src/ircqueue.cpp create mode 100644 konversation/src/ircqueue.h create mode 100644 konversation/src/ircview.cpp create mode 100644 konversation/src/ircview.h create mode 100644 konversation/src/ircviewbox.cpp create mode 100644 konversation/src/ircviewbox.h create mode 100644 konversation/src/joinchanneldialog.cpp create mode 100644 konversation/src/joinchanneldialog.h create mode 100644 konversation/src/joinchannelui.ui create mode 100644 konversation/src/konsolepanel.cpp create mode 100644 konversation/src/konsolepanel.h create mode 100644 konversation/src/konvdcop.cpp create mode 100644 konversation/src/konvdcop.h create mode 100755 konversation/src/konversation-0.19-appearance.pl create mode 100644 konversation/src/konversation-0.19-colorcodes.pl create mode 100755 konversation/src/konversation-0.19-colors.pl create mode 100644 konversation/src/konversation-0.19-custombrowser.pl create mode 100644 konversation/src/konversation-0.19-notifylists.pl create mode 100755 konversation/src/konversation-0.19-sortorder.pl create mode 100755 konversation/src/konversation-0.19-tabplacement.pl create mode 100644 konversation/src/konversation-0.20-customfonts.pl create mode 100644 konversation/src/konversation-0.20-quickbuttons.pl create mode 100644 konversation/src/konversation.desktop create mode 100644 konversation/src/konversation.upd create mode 100644 konversation/src/konversationapplication.cpp create mode 100644 konversation/src/konversationapplication.h create mode 100644 konversation/src/konversationmainwindow.cpp create mode 100644 konversation/src/konversationmainwindow.h create mode 100644 konversation/src/konversationsound.cpp create mode 100644 konversation/src/konversationsound.h create mode 100644 konversation/src/konversationstatusbar.cpp create mode 100644 konversation/src/konversationstatusbar.h create mode 100644 konversation/src/konversationui.rc create mode 100644 konversation/src/konvibookmarkhandler.cpp create mode 100644 konversation/src/konvibookmarkhandler.h create mode 100644 konversation/src/konvibookmarkmenu.cpp create mode 100644 konversation/src/konvibookmarkmenu.h create mode 100644 konversation/src/konviconfigdialog.cpp create mode 100644 konversation/src/konviconfigdialog.h create mode 100644 konversation/src/konviface.h create mode 100644 konversation/src/konvirc.protocol create mode 100644 konversation/src/konvirc6.protocol create mode 100644 konversation/src/konvisettingsdialog.cpp create mode 100644 konversation/src/konvisettingsdialog.h create mode 100644 konversation/src/konvisettingspage.h create mode 100644 konversation/src/linkaddressbook/Makefile.am create mode 100644 konversation/src/linkaddressbook/addressbook.cpp create mode 100644 konversation/src/linkaddressbook/addressbook.h create mode 100644 konversation/src/linkaddressbook/addressbook_base.cpp create mode 100644 konversation/src/linkaddressbook/addressbook_base.h create mode 100644 konversation/src/linkaddressbook/addresseeitem.cpp create mode 100644 konversation/src/linkaddressbook/addresseeitem.h create mode 100644 konversation/src/linkaddressbook/kimiface.h create mode 100644 konversation/src/linkaddressbook/linkaddressbookui.cpp create mode 100644 konversation/src/linkaddressbook/linkaddressbookui.h create mode 100644 konversation/src/linkaddressbook/linkaddressbookui_base.ui create mode 100644 konversation/src/linkaddressbook/nicklisttooltip.cpp create mode 100644 konversation/src/linkaddressbook/nicklisttooltip.h create mode 100644 konversation/src/linkaddressbook/nicksonlinetooltip.cpp create mode 100644 konversation/src/linkaddressbook/nicksonlinetooltip.h create mode 100644 konversation/src/log_preferences.ui create mode 100644 konversation/src/logfilereader.cpp create mode 100644 konversation/src/logfilereader.h create mode 100644 konversation/src/main.cpp create mode 100644 konversation/src/modebutton.cpp create mode 100644 konversation/src/modebutton.h create mode 100644 konversation/src/multilineedit.cpp create mode 100644 konversation/src/multilineedit.h create mode 100644 konversation/src/multilinetextedit.cpp create mode 100644 konversation/src/multilinetextedit.h create mode 100644 konversation/src/nick.cpp create mode 100644 konversation/src/nick.h create mode 100644 konversation/src/nickinfo.cpp create mode 100644 konversation/src/nickinfo.h create mode 100644 konversation/src/nicklistbehavior_preferences.cpp create mode 100644 konversation/src/nicklistbehavior_preferences.h create mode 100644 konversation/src/nicklistbehavior_preferencesui.ui create mode 100644 konversation/src/nicklistview.cpp create mode 100644 konversation/src/nicklistview.h create mode 100644 konversation/src/nicksonline.cpp create mode 100644 konversation/src/nicksonline.h create mode 100644 konversation/src/nicksonlineitem.cpp create mode 100644 konversation/src/nicksonlineitem.h create mode 100644 konversation/src/notificationhandler.cpp create mode 100644 konversation/src/notificationhandler.h create mode 100644 konversation/src/osd.cpp create mode 100644 konversation/src/osd.h create mode 100644 konversation/src/osd_preferences.cpp create mode 100644 konversation/src/osd_preferences.h create mode 100644 konversation/src/osd_preferencesui.ui create mode 100644 konversation/src/outputfilter.cpp create mode 100644 konversation/src/outputfilter.h create mode 100644 konversation/src/query.cpp create mode 100644 konversation/src/query.h create mode 100644 konversation/src/queuetuner.cpp create mode 100644 konversation/src/queuetuner.h create mode 100644 konversation/src/queuetunerbase.ui create mode 100644 konversation/src/quickbutton.cpp create mode 100644 konversation/src/quickbutton.h create mode 100644 konversation/src/quickbuttons_preferences.cpp create mode 100644 konversation/src/quickbuttons_preferences.h create mode 100644 konversation/src/quickbuttons_preferencesui.ui create mode 100644 konversation/src/quickconnectdialog.cpp create mode 100644 konversation/src/quickconnectdialog.h create mode 100644 konversation/src/rawlog.cpp create mode 100644 konversation/src/rawlog.h create mode 100644 konversation/src/replycodes.h create mode 100644 konversation/src/scriptlauncher.cpp create mode 100644 konversation/src/scriptlauncher.h create mode 100644 konversation/src/searchbar.cpp create mode 100644 konversation/src/searchbar.h create mode 100644 konversation/src/searchbarbase.ui create mode 100644 konversation/src/server.cpp create mode 100644 konversation/src/server.h create mode 100644 konversation/src/serverdialog.cpp create mode 100644 konversation/src/serverdialog.h create mode 100644 konversation/src/servergroupdialog.cpp create mode 100644 konversation/src/servergroupdialog.h create mode 100644 konversation/src/servergroupdialogui.ui create mode 100644 konversation/src/servergroupsettings.cpp create mode 100644 konversation/src/servergroupsettings.h create mode 100644 konversation/src/serverison.cpp create mode 100644 konversation/src/serverison.h create mode 100644 konversation/src/serverlistdialog.cpp create mode 100644 konversation/src/serverlistdialog.h create mode 100644 konversation/src/serverlistview.cpp create mode 100644 konversation/src/serverlistview.h create mode 100644 konversation/src/serversettings.cpp create mode 100644 konversation/src/serversettings.h create mode 100644 konversation/src/ssllabel.cpp create mode 100644 konversation/src/ssllabel.h create mode 100644 konversation/src/sslsocket.cpp create mode 100644 konversation/src/sslsocket.h create mode 100644 konversation/src/statuspanel.cpp create mode 100644 konversation/src/statuspanel.h create mode 100644 konversation/src/tabnotifications_preferences.ui create mode 100644 konversation/src/tabs_preferences.cpp create mode 100644 konversation/src/tabs_preferences.h create mode 100644 konversation/src/tabs_preferencesui.ui create mode 100644 konversation/src/theme_preferences.cpp create mode 100644 konversation/src/theme_preferences.h create mode 100644 konversation/src/theme_preferencesui.ui create mode 100644 konversation/src/topiccombobox.cpp create mode 100644 konversation/src/topiccombobox.h create mode 100644 konversation/src/topiclabel.cpp create mode 100644 konversation/src/topiclabel.h create mode 100644 konversation/src/trayicon.cpp create mode 100644 konversation/src/trayicon.h create mode 100644 konversation/src/unicode.cpp create mode 100644 konversation/src/urlcatcher.cpp create mode 100644 konversation/src/urlcatcher.h create mode 100644 konversation/src/valuelistviewitem.cpp create mode 100644 konversation/src/valuelistviewitem.h create mode 100644 konversation/src/version.h create mode 100644 konversation/src/viewcontainer.cpp create mode 100644 konversation/src/viewcontainer.h create mode 100644 konversation/src/viewtree.cpp create mode 100644 konversation/src/viewtree.h create mode 100644 konversation/src/viewtreeitem.cpp create mode 100644 konversation/src/viewtreeitem.h create mode 100644 konversation/src/warnings_preferences.cpp create mode 100644 konversation/src/warnings_preferences.h create mode 100644 konversation/src/warnings_preferencesui.ui create mode 100644 konversation/src/watchednicknames_preferences.cpp create mode 100644 konversation/src/watchednicknames_preferences.h create mode 100644 konversation/src/watchednicknames_preferencesui.ui create mode 100644 po/Makefile.am create mode 100644 po/ar/Makefile.am create mode 100644 po/ar/konversation.po create mode 100644 po/bg/Makefile.am create mode 100644 po/bg/konversation.po create mode 100644 po/ca/Makefile.am create mode 100644 po/ca/konversation.po create mode 100644 po/da/Makefile.am create mode 100644 po/da/konversation.po create mode 100644 po/de/Makefile.am create mode 100644 po/de/konversation.po create mode 100644 po/el/Makefile.am create mode 100644 po/el/konversation.po create mode 100644 po/en_GB/Makefile.am create mode 100644 po/en_GB/konversation.po create mode 100644 po/es/Makefile.am create mode 100644 po/es/konversation.po create mode 100644 po/et/Makefile.am create mode 100644 po/et/konversation.po create mode 100644 po/fi/Makefile.am create mode 100644 po/fi/konversation.po create mode 100644 po/fr/Makefile.am create mode 100644 po/fr/konversation.po create mode 100644 po/gl/Makefile.am create mode 100644 po/gl/konversation.po create mode 100644 po/he/Makefile.am create mode 100644 po/he/konversation.po create mode 100644 po/hu/Makefile.am create mode 100644 po/hu/konversation.po create mode 100644 po/it/Makefile.am create mode 100644 po/it/konversation.po create mode 100644 po/ja/Makefile.am create mode 100644 po/ja/konversation.po create mode 100644 po/ka/Makefile.am create mode 100644 po/ka/konversation.po create mode 100644 po/ko/Makefile.am create mode 100644 po/ko/konversation.po create mode 100644 po/pa/Makefile.am create mode 100644 po/pa/konversation.po create mode 100644 po/pt/Makefile.am create mode 100644 po/pt/konversation.po create mode 100644 po/ru/Makefile.am create mode 100644 po/ru/konversation.po create mode 100644 po/sr/Makefile.am create mode 100644 po/sr/konversation.po create mode 100644 po/sr@Latn/Makefile.am create mode 100644 po/sr@Latn/konversation.po create mode 100644 po/sv/Makefile.am create mode 100644 po/sv/konversation.po create mode 100644 po/tr/Makefile.am create mode 100644 po/tr/konversation.po create mode 100644 po/zh_CN/Makefile.am create mode 100644 po/zh_CN/konversation.po create mode 100644 po/zh_TW/Makefile.am create mode 100644 po/zh_TW/konversation.po create mode 100644 stamp-h.in create mode 100644 subdirs diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..258b1ba --- /dev/null +++ b/AUTHORS @@ -0,0 +1,7 @@ +Dario Abatianni +Peter Simonsson +Eike Hein +Shintaro Matsuoka +Eli MacKenzie +İsmail Dönmez +John Tapsell diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..9fe1a71 --- /dev/null +++ b/COPYING @@ -0,0 +1,280 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Steet, Fifth Floor, Cambridge, MA 02110-1301, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS diff --git a/COPYING-DOCS b/COPYING-DOCS new file mode 100644 index 0000000..4a0fe1c --- /dev/null +++ b/COPYING-DOCS @@ -0,0 +1,397 @@ + GNU Free Documentation License + Version 1.2, November 2002 + + + Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + +0. PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +functional and useful document "free" in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. + +This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +1. APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The "Document", below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as "you". You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. + +A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall subject +(or to related matters) and contains nothing that could fall directly +within that overall subject. (Thus, if the Document is in part a +textbook of mathematics, a Secondary Section may not explain any +mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. + +The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. + +A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not "Transparent" is called "Opaque". + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML, PostScript or PDF designed for human modification. Examples of +transparent image formats include PNG, XCF and JPG. Opaque formats +include proprietary formats that can be read and edited only by +proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML, PostScript or PDF produced by some word +processors for output purposes only. + +The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + +A section "Entitled XYZ" means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as "Acknowledgements", +"Dedications", "Endorsements", or "History".) To "Preserve the Title" +of such a section when you modify the Document means that it remains a +section "Entitled XYZ" according to this definition. + +The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. + + +2. VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +3. COPYING IN QUANTITY + +If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document's license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this Transparent copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document. + + +4. MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. +D. Preserve all the copyright notices of the Document. +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +H. Include an unaltered copy of this License. +I. Preserve the section Entitled "History", Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section Entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the section all + the substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. +N. Do not retitle any existing section to be Entitled "Endorsements" + or to conflict in title with any Invariant Section. +O. Preserve any Warranty Disclaimers. + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section Entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +5. COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice, and that you preserve all their Warranty Disclaimers. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections Entitled "History" +in the various original documents, forming one section Entitled +"History"; likewise combine any sections Entitled "Acknowledgements", +and any sections Entitled "Dedications". You must delete all sections +Entitled "Endorsements". + + +6. COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects. + +You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. + + +7. AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, is called an "aggregate" if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document's Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. + + +8. TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. + +If a section in the Document is Entitled "Acknowledgements", +"Dedications", or "History", the requirement (section 4) to Preserve +its Title (section 1) will typically require changing the actual +title. + + +9. TERMINATION + +You may not copy, modify, sublicense, or distribute the Document except +as expressly provided for under this License. Any other attempt to +copy, modify, sublicense or distribute the Document is void, and will +automatically terminate your rights under this License. However, +parties who have received copies, or rights, from you under this +License will not have their licenses terminated so long as such +parties remain in full compliance. + + +10. FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions +of the GNU Free Documentation License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. See +http://www.gnu.org/copyleft/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. + + +ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + + Copyright (c) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.2 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + A copy of the license is included in the section entitled "GNU + Free Documentation License". + +If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, +replace the "with...Texts." line with this: + + with the Invariant Sections being LIST THEIR TITLES, with the + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + +If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..3bc1a72 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,1333 @@ +Changes from 1.0.1 to 1.1: +We are extremely pleased to announce Konversation's newest major release, v1.1. +Konversation 1.1 is a special release for us in multiple ways: It's our farewell +to KDE 3, by way of being the last major release built upon that venerable +platform. It's also our biggest release yet, in terms of the number and +magnitude of the changes. + +The additions and improvements in this release are both user-visible and under +the hood. Some of the highlights are rewritten connection handling (robustness +and correctness improvements, better support for IRC URLs, bookmarking and +more), redone DCC with better UI and Passive/Reverse DCC support, a redone away +system with the addition of auto-away support, redone and much more useful +remember / marker line support, a new outbound traffic scheduler that is capable +of aggressive throttling to avoid flooding while smartly reordering messages to +improve latencies, great convenience additions like a "Next Active Tab" shortcut, +and much, much more, along with a large number of bugfixes and tweaks to round +things out. Note: All fixes made since RC1 are marked with a "[New since RC1]" +label in the changelog. + +We're confident that this release is the best and most robust version of +Konversation published so far, and upgrading comes highly recommended to all +users. Enjoy! + + +Text views +* Added an option to hide the scrollbar in chat windows. +* Don't scroll to bottom if the view was scrolled up before resizing. +* Fixed chat views occassionally not being scrolled to the bottom at their + inception with long backlog appends. +* Fixed an off-by-one error in scrollback culling. +* Fixed a bug that lead to single leading whitespace characters in lines being + omitted from display in chat windows. +* Now preserving trailing whitespace in raw log tabs. +* Fixed display of '<' and '>' in backlog lines. +* Fixed copy/paste with shortcuts other than the default Ctrl+C/V ones. +* Fixed onotice display. +* Fixed middle-click-to-open-in-new-tab on chat window URLs when Konqueror + wasn't running. +* Fixed superfluous closing parenthesis being inserted after links in lines + which contain multiple links followed by closing parenthesis. +* Fixed URLs with encoded hash mark %23 being incorrectly passed off to handler. +* Fixed variable expansion causing certain URLs to be corrupted when pasted. +* Added a "Save Link As" item to the context menu of links in the chat window. +* Have the "Save as..." dialog suggest a file name. +* Implemented Shift+Click to "Save as..." URLs.. +* Made the channel links context menu work in server status views. +* Fixed nickname links in chat view messages created as a result of '/msg + ' commands erroneously prepending '->' to nicknames. +* Fixed operations on nicknames containing "\" characters from the nickname + context menu. +* Fixed query view context menus operating on the wrong nickname under certain + circumstances. +* Fixed a bug that caused the "Send File..." action in the generic query context + menu to pick the wrong recipient after hovering the user's own nick in the + chat display. +* Fixed date display not using the locale's date format. +* Fixed IRC color parsing so that the colors gets reset to default if no color + numbers were given. +* Fixed a bug that could cause the text selection in a chat window to be messed + up when new text was appended. + +Marker/Remember Lines +* Konversation now distinguishes between manually and automatically inserted + marker lines, making the "show line in all chat windows" preference less + confusing. +* The automatically inserted remember lines when chat windows are hidden are now + "sliding", i.e. there is only one per chat window, and it moves. +* Automatically inserted remember lines will now optionally only be inserted + when there's actually new text being appended to the chat window (enabled by + default). +* The automatic remember line will now also be inserted when the window has lost + focus. +* Added an action to clear all marker lines in a chat window. +* Improved marker lines-related preferences and terminology. +* Improved the appearance of marker lines in the chat window. +* Made the (marker line-related and other) identity default settings consistent + between the initial identity and additional newly created identities. +* Fixed hidden join/part/quit events marking tabs as dirty, allowing multiple + consecutive remember lines to appear. +* Fixed crash when minimizing or closing the application window prior to any tab + switch when the auto-insertion of remember lines is enabled. + +Input line +* Fixed input line contents rather than actual sent text being appended to the + input history upon a multi-line paste edit. +* Special characters and IRC color codes will now be inserted at the cursor + position rather than the end of the input line contents. + +Nickname list +* Implemented an additional "Sort by activity" nicklist sorting mode. +* Added Oxygen nicklist icon theme by Nuno Pinheiro. +* The list of nickname list themes is now sorted alphabetically. +* Fixed race condition when removing a nicklist theme (listview would be + repopulated before deletion was complete). +* Fixed using the wrong palette for the disabled text color in the nickname + list. +* Fixed moving back from the custom alternate background color to system colors + in the channel nickname listviews when disabling the "Use custom colors for + lists, [...]" preference. +* Cleanups in the nicklist item code. + +Tab bar / Tree list +* Added option to add and remove a channel from its network's auto-join list + from the tab context menu. +* Added option to close tabs using middle-mouse. +* Slightly sped up tab switching by eliminating some redundant UI action state + updates. +* Channel tabs will no longer close when kicked, but rather grey out on the tab + bar and offer context menu actions to rejoin. +* Channel and query tabs will now grey out on the tab bar when disconnected and + no higher priority notification is present. Channel tabs will only ungrey if + and when the channel is successfully rejoined after reconnect; query tabs + ungrey immediately once reconnected. +* Display tooltips for truncated treelist items. +* Fixed forwarding keyboard events received by the treelist to Konsole widgets + and focus adjustment thereafter as well as generally after switching to + Konsole tabs by other means. +* Fixed treelist scrollbar not picking up on new palette when the KDE color + scheme changes. +* Fixed a bug that could cause a crash when the view treelist would receive + keypress events during application shutdown. +* [New since RC1] Fixed a corner case where a server status item could become a + child item of another server status item when dragging it below an special + application pane item such as DCC Status or Watched Nicks Online. +* [New since RC1] Fixed a crash when using the mouse wheel on the list within + ~150ms of a drag and drop operation. + +System Tray icon +* Remember and recreate minimized-to-tray state across sessions. +* Added option for hidden-to-tray startup. +* Reload tray icons when the icon theme changes at runtime. +* Added option to not blink the systray icon, but just light it up. + +Channel Settings Dialog +* Added a search line to the ban list. +* Fixed sorting the ban list by time set. +* Made the ban list's "Time Set" column use KDE locale settings for the date + format. +* Fixed OK'ing/Cancel'ing/closing the Channel Settings Dialog not dealing with + open ban list in-line edits correctly. +* Reset topic editbox when the channel options dialog has been dismissed with + cancel. +* Fixed incorrect time display in the topic history list in the Channel Settings + dialog. + +Server List Dialogs +* Moved the "Show at application startup" option for the Server List dialog to + the dialog itself. +* Auto-correct hostnames and passwords entered with preceding or trailing spaces + in the Server List dialog. +* Don't allow impossible ports to be set for servers. +* Sensible default focus in the server list dialog. +* Fixed unresponsive, defective Server List dialog window appearing at + application startup using the Beryl or Compiz compositing window managers. + +Interface Misc +* Added a "Next Active Tab" keyboard shortcut to jump to the next active tab with + the highest priority notification. +* Added a Find Previous standard action. +* Have the "Insert Character" dialog pick up on text view font changes. +* Show correct number of colors in the color chooser dialog. +* Made "Alternate Background" colorchooser disable when unneeded. +* Fixed crash when changing the KDE color scheme while a non-chat tab is open. +* The encoding selection now allows returning to the used identity's default + encoding setting. +* Update actions on charset changes. +* Added Notifications Toggle and Encoding sub-menu to the window menu. +* Moved "Hide Nicklist" menu action from Edit to Settings. +* Fixed the "Automatically join channel on invite" setting not to show an + inquiring dialog anyway. +* Fixed saving the state of the invitation dialog option in the Warning Dialogs + preferences. +* Added a warning dialog for quitting with active DCC file transfers. +* Return focus to the text display widget after closing the search bar in a log + reader view. +* Made pressing Return or Enter in the Log File Viewer's size spinbox apply the + setting, just as pressing the Return button. +* Fixed a bug where the SSL padlock icon would be shown on a non-SSL connection + (and clicking would cause a crash). +* Empty topic labels will no longer show empty tooltips, but rather none at all. +* Added a sample 12-hour clock format string to the timestamp format combobox. +* Timestamp format list is no longer localized. +* Robustness improvements and less UI quirks around channel password handling. +* Improved general layout and consistency of tab, chat view, query and topic + context menus. Added some missing icons. +* Fixed some bugs of UI actions not being appropriately as their context + changes. +* Fixed enabled state of "Close All Open Queries" action not being updated + correctly when queries are closed by way of closing a status view tab. +* The window caption is now properly being reset when the last tab is closed. +* Made units in spinboxen in the identity and app preferences UI more + consistent. +* Minor fixes to accelerators and tabbing order in various dialogs. + +Commands +* Support command aliases in network connect commands. +* Turned parameter-less '/away' into a toggle: Sets away state with default + message initially, and unsets away state if already away. +* Added an '/aunaway' command to complement '/aaway' (previously, there was only + '/aback'). +* Added support for '/kill'. +* A '/join' command for an already-joined channel will now focus it. +* Added an '/encoding' command as an alias to '/charset'. +* '/charset' and '/encoding' now accept 'latin-1' as an alias for 'iso-8859-1'. +* Improved messages for the '/charset' and '/encoding' commands. +* Rewrote /me parsing to be less hackish and display usage info with an empty + parameter. +* '/msg ' is no longer treated as equivalent to '/query '. +* '/msg ' will now error out when lacking a message parameter. +* '/query [message]' will now error out when recipient is a channel. +* Added a '/queuetuner' command to bring up the outbound traffic scheduler's + tuning/debug pane. + +Notifications +* Seperated query messages and messages containing the user's nickname into two + distinct KNotify events. +* Made the tab notification color of private messages configurable independently + from normal messages. +* Don't highlight own nick on topic created by messages. +* Fixed disabling notifications for a tab not cancelling highlight sounds. +* Fixed a race condition where a highlight's autotext reply would outrun the + original line's tab notification. +* Fixed actions in queries and DCC chats producing message notification events + (rather than the correct private message ones). +* Changed the OSD screensaver check logic to work in KDE 4. +* [New since RC1] Fixed on screen display occassionally reverting to the default + position when using the settings dialog to change unrelated settings. + +Connection handling +* Improved behavior with regard to reusing existing connections in connection + attempts that provide an initial channel to join, such as command line + arguments, the DCOP interface, the bookmark system or irc:// links). + Previously, the application would have inconsistently either reused an + existing or created a new connection. +* Better dialog messages in the interactive variant of the decision to either + reuse or create a new connection (from the Server List dialog and the Quick + Connect dialog). +* Improved and more consistent display of connection names (i.e. network or + server host name) throughout the application. +* Much improved irc:// URL support for connection intanciation, with support + added for IPv6 host names and many of the features proposed by the Mirashi + specification. +* Eliminated redundant irc:// URL parsing codepaths in favor of a single one. +* Added support for irc:// URLs to the chat views. +* Removed "konversationircprotocolhandler" shell script. The Konversation + executable now understands irc:// URLs directly. +* Initiating connections from command line arguments and options now works also + when the application is already running. +* Fixed a bug that would cause a connection initiated from command line options + not to get past the identity validation stage when the configuration file was + unitialized and empty. +* The server list dialog will now always be closed when starting Konversation + with command line arguments to initiate a connection, consistent with the + configuration-based auto-connect behavior. +* Providing a channel in the creation of a new connection (i.e. via command line + arguments, the DCOP interface, the Quick Connect dialog, the bookmark system + or irc:// links) now consistently pre-empts the stored auto-join channel list + if the target of the connection is a network or the hostname is found to be + part of a configured network. Previously, this would only work for Quick + Connect and the bookmark system (which caused the infamous Sabayon user flood + in #kde due to their "Get Support" desktop link connecting to Freenode, which + in an unconfigured Konversation has #kde in its auto-join list). +* Connections now have globally unique IDs. +* The DCOP interface now understands connection IDs in addition to host names. +* The scripting systems now uses globally unique connection IDs rather than + server host names to refer to connections, fixing a bug where scripted + responses were being handed to all connections sharing a hostname (which was + actually intentional in the absence of connection IDs, but undesirable for + users). +* Improved iteration behavior over a network's server list on connection losses. +* The "Reconnect" action now works also when Konversation doesn't consider the + connection to be in a disconnected state. +* Improved the server status view messages related to reconnection attempts. +* Consistently apply the "Reconnect delay" setting (previously confusingly named + "Reconnect timeout"), which wasn't done before. +* Fixed a bug that could cause the connection process to claim that a DNS lookup + was successful when it actually wasn't. +* Fixed opening bookmarks with spaces in the target address name (which may be a + network name, and networks may have spaces in their name). +* Properly update the state of the "Add/Remove to Watched Nicknames" nickname + context menu actions when the connection isn't to a config-backed network, in + which case there's no way to store and make use of those list entries. +* Fixed a crash when quitting the application with a resident connection that + disconnected due to an SSL error. +* Fixed crashes in the DCOP interface if no connection was present. +* Make the "Reconnect" action available even while ostensibly in the process of + connecting. +* Fix possible crash when closing all views and subsequently creating a new + connection. +* Fixed crash upon auto-connect at application startup. +* Improved the naming of preferences related to automatic reconnection attempts + to be less confusing. +* Made it possible to set the number of automatic reconnection attempts to + unlimited. +* Provided better default values to the preferences related to automatic + reconnection attempts. +* Fixed crash when opening a Konsole tab and Konsole was not installed. +* Fixed allowing the user to create an infinite loop of showing the SSL + connection details dialog upon being presented with the invalid certificate + multiple choice dialog at connection time by checking "Do not ask again" and + then clicking "Details". + +Identities +* Made it possible to set a Quit message independently from the Part message. +* Saving a newly-created identity is no longer allowed without entering a real + name. +* Apply switching the identity in the identity dialog as opened from the network + dialog to the network's settings. +* Have the Edit/Delete/Up/Down buttons for the nickname list of an Identity + correctly change state according to the selection + +Away system +* Added per-identity support for automatic away on a configurable amount of user + desktop inactivity and/or screensaver activation, along with support for + automatic return on activity. +* Fixed the "Global Away" toggle to make sense and update its state properly. +* Turned parameter-less '/away' into a toggle: Sets away state with default + message initially, and unsets away state if already away. +* Added an '/aunaway' command to complement '/aaway' (previously, there was only + '/aback'). +* Broadly rewrote away management related code for improved robustness and less + duplication and hacks (e.g. no more abuse of multiServerCommand for global + away). + +DCC +* Massive DCC refactoring and improved reliability. +* Passive DCC support (Reverse DCC RECV, SEND). +* Replaced the DCC Transfer Details dialog with a retractable transfer details + pane directly in the DCC Status tab. +* Added DCC transfer average speed reading to the DCC transfer details panel. +* The DCC Status tab now remembers its column widths across sessions. +* Fixed duplicated quotation marks around file names in DCC transfer status + messages. +* Fixed "Open File" DCC dialog remembering the last viewed location incorrectly. +* Added an "Open Folder" button to the DCC transfer details panel. +* Added check for whether the URL is well-formed before initiating a DCC send. + Fixes a bug of dragging a nickname link in the chat view onto the query chat + view drop target starting a DCC transfer that cannot succeed. +* Ported the DCC code away from relying on server group IDs to refer to + connections, made it use connection IDs instead. Fixes potential bugs with + multiple concurrent connections to the same network. +* Fixed queued DCC transfer items not picking up on download destination + directory changes. +* Fixed bug leading to crash upon initiating DCC Chat when "Focus new tabs" was + enabled. +* [New since RC1] New transfer items added to the DCC panel's transfer list are no + longer automatically selected, meaning work on other items in the list occuring + at the same time no longer gets interrupted. +* [New since RC1] The "Filename:" line in the DCC panel's detailed info pane is + now using text squeezing to avoid an increase in minimum window width with long + file names. +* [New since RC1] Failed receives now longer show 833TB/s as their transfer + speed. + +Blowfish support +* Fixed FiSH-style +p prefix to send clear text to channel despite an encryption + key being set. +* Text encoding is now being applied to the cleartext, rather than the + ciphertext. This fixes using characters outside the ASCII range with blowfish + encryption. +* Fixed CTCP (and thus DCC) requests to nicknames for whom an encryption key is + set. +* Added support for encrypted topics. +* If an encryption key is set, a lock icon will now be shown next to the input + box. +* Added a '/showkey ' command to show the encryption key for the + target in a popup dialog. + +Auto-replace +* Improved auto-replace behavior with multiple matches in one line (fixes + multiple Wikipedia links). +* Fixed bug that could cause auto-replace to replace the wrong group of the + matching string. +* Auto-replace is now case-sensitive in regular expression mode. +* Added regular expression editor button to auto-replace preferences. +* Fixed conditional enabling of the RegExpEditor button in the auto-replace + preferences page. + +Ignore +* Fixed being asked twice whether to close a query upon ignoring the opponent. +* Fixed crash when opting to close a query upon chosing to ignore the opponent + from the context menu of his nickname. + +Watched Nicknames +* Improved robustness of the Watched Nicknames Online system. +* The "Offline" branches in the "Watched Nicks Online" list will now be omitted + when there are no offline nicks for the respective network. +* Fixed display of WHOIS spam prompted by the Watch List's WHOIS activity. +* Connections to non-config-backed targets no longer show in Watched Nicks + Online. +* [New since RC1] Actually honor the preference to enable/disable the Watched + Nicknames Online system, and apply it at runtime. +* [New since RC1] Make sure the periodic Watched Nicknames Online check actually + starts running within the same session after adding the first nickname to the + list. +* [New since RC1] Fixed a crash on quit with the Watched Nicks Online tab open and + there being an open connection to a network that nicks are being watched for. + +Channel List +* IRC markup is now removed from content in the Channel List view. +* Speed improvements in Channel List views. +* Fixed keyboard accelerator collisions in Channel List views. +* Allow higher values than 99 in the min/max users filter spin boxes in Channel + List views. + +Under the Hood / Protocol +* Rewrote the outbound queue scheduling system to be smart enough to reorder + outbound traffic to reduce interactive latency while aggressively throttling + the rate to prevent flooding. Use '/queuetuner' to tweak. +* Rearranged when and how auto-who is triggered upon channel join a bit, to + avoid excessive flooding on multiple concurrent joins in some cases. +* Auto-Who reliability improvements. +* Fixed auto-join with very many channels (the auto-join command would exceed + the maximum buffer length; it is now split into multiple commands as needed). +* Fixed bugs around rejoining channels after reconnects related to the cause of + the disconnect, channel passwords and picking the actual list of joined + channels over the network's auto-join list. +* Improved behavioral consistency in situations where the auto-join list is + preempted by a transitory auto-join channel (bookmarks, etc.). +* Fixed bug that caused the topic state not to be cleared properly prior to + rejoining channels during reconnects. +* Fixed onotice payload being cut off after the first word. +* Changed RPL_WHOISOPERATOR handling to internationalize the common case ("is an + IRC Operator") and otherwise passthrough the string sent by the server. +* Fixed parsing of alternate invite format on Asuka ircds (QuakeNet). +* Added support for PRIVMSG from the server. +* Support RPL_UMODEIS. +* Announce 'k' channel mode (i.e. channel key) changes in non-raw mode as well. +* The command part of CTCP requests is now always converted to uppercase before + sending, as some clients don't like lower- or mixed-case commands as the user + may have entered them. +* Display mode for your nick and channels you're not in. +* Fixed per-channel encoding settings for the channels of a network being lost + when the network is renamed. +* Fixed crash when receiving actions for channels the client is not attending. +* Made newline handling in the DCOP interface more robust, fixing a potential + security problem (CVE-2007-4400). +* A few speed optimizations and memory leak fixes. +* [New since RC1] Fixed a crash on quit during KDE logout or when quitting by + DCOP. + +Included scripts +* Support for KMPlayer in the 'media' script (based on the window caption, as + KMPlayer has no proper appropriate DCOP interface). +* Added KPlayer support to the 'media' script (also caption-based). +* Added support for Audacious to the 'media' script. +* Fixed problems in disk space calculation in the 'sysinfo' script caused by + wrapped df(1) output. +* Added KDE 4 support to the 'sysinfo' script. +* Removed some bashisms from the 'sysinfo' script. +* Rewrote 'weather' script for increased reliability in error handling and + better readability. +* Removed broken 'qurl' script in favor of new 'tinyurl' one. +* Fixed the 'fortune' script not working properly when variable expansion is + turned off in the preferences. +* [New since RC1] Fixed a bug in the 'media' script that caused it to break when + querying Audacious with audtool not being available. + +Packaging +* [New since RC1] Standards compliancy fixes in the application .desktop file and + the nicklist icon theme .desktop files. + +Build +* Fixed build with --enable-final. + +------------------------------------------------------------------------------- + +Changes from 1.0 to 1.0.1 +We are pleased to announce the immediate availability of Konversation 1.0.1, +a maintenance release featuring notable improvements for users of right-to- +left languages (including new Arabic and Hebrew translations), further re- +finement of the user interface and application functionality, and fixes for +minor defects found in the previous release. + +* A bug that caused left-to-right text contained in lines determined to be + right-to-left text to appear reversed has been fixed. +* Whether a line is treated as right-to-left vs. left-to-right text is now + determined by the amount of each type of character in the line, improving + the user experience in chats involving bi-directional text considerably. +* The "Edit Network" dialog has been refined for clarity and ease of use. +* A warning dialog to prevent accidentally quitting Konversation has been + added. +* The Auto Replace list can now be sorted. +* The '/media' script command now sports improved player recognition, enhan- + ced and easier configurability, the ability to distinguish between audio + and video media as well as newly added support for kdetv. New '/audio' and + '/video' command aliases have been added to expose these new abilities. +* The lower boundary of the default DCC port range has been raised from 1025 + to 1026 to avoid conflicts with the commonly blocked Windows RPC port 1025. +* Dismissing an OSD notification by clicking on it will now also cancel the + systray notification flash. +* A new configuration file option [OSD]OSDCheckDesktopLock has been added, + allowing to manually disable the screensaver check in non-KDE environments + that do not support it, causing the OSD not to be displayed. +* A bug that could lead to the "Switch to" sub-menu in the context menus of + tabs not to be updated properly upon switching tabs has been fixed. +* A bug that caused the 'irc setBack' DCOP call not to function has been + fixed. +* A bug that caused ampersands in the names of tabs not to be displayed and + an immediately following character to be used as keyboard accelerator has + been fixed. +* A bug that caused ignoring nicknames with '[' or ']' characters in them to + fail has been fixed. +* Command aliases containing regular expression syntax can no longer cause + built-in commands not to function. +* A bug that caused the Konversation irc:// protocol handler not to function + has been fixed. Its compatibility with systems that do not use the GNU bash + shell as default shell has been improved. +* A notable number of code quality improvements suggested by KDEs automated + quality control service EBN have been implemented. + +------------------------------------------------------------------------------- + +Changes from 0.19 to 1.0 +We are extremely pleased to announce the immediate availability of Konversation +1.0, a significant milestone in the lifetime of the Konversation project. This +release includes major new functionality as well as a large amount of +improvements to existing functionality, with an emphasis on user interface +polish and overall reliability. Notable new features include a vertical treelist +of tabs as an alternative to the traditional tab bar, auto-replacement of words +in incoming and outgoing messages, an improved Channel Settings dialog now +featuring a ban list, an optional expanding input box and many improvements to +both DCC file transfers and DCC chats. Enjoy! + + +User Interface +* It is now possible to place the tabs on the left side of the application +window. + This has been implemented as a treelist of tabs. The treelist supports all of + the cosmetic and interactive properties of the original horizontal tab bar, + including colored notifications, LED icons, (hover) close buttons with delayed + activation, reordering, drag'n'drop and mouse wheel cruising. And a few tricks + of its own. +* Connection status tabs now feature specific context menu entries to disconnect + and reconnect, as well as to join a channel on that connection. +* The automatic resizing of tabs in the tab bar first implemented in version + 0.19 is now optional. +* The grouping behavior of Channel List and Raw Log tabs in the tab bar has been + improved. +* Disabling notification for a tab will now unset the active notification. +* The enabled/disabled state of the notifications for connection status tabs +will + now be remembered across sessions for configured networks. +* The speed of switching tabs in quick succession with the auto-spellchecking + preference enabled has been improved. +* Using custom fonts in the user interface is now optional. The font used by the + tab bar is now configurable. +* Events in the connection status tabs are now logged into separate logfiles. +* The Channel Settings dialog now includes a Ban List tab that allows viewing, + adding and removing bans in a channel. The dialog can now be opened from the + menu bar and chat window context menu in addition to the button in the topic + area. +* Mode and topic handling in the Channel Settings dialog and the channel mode + buttons have been overhauled to make them more robust and reliable. +* The number of Quick Buttons to show below the nickname list in channel tabs is + now configurable. Additional buttons may be added or existing buttons removed. +* Konversation now supports auto-replacing words in incoming and outgoing + messages. Regular expressions are supported. The auto-replace configuration +can + be found in the preferences dialog. The static Wiki link feature found in +older + versions has been retired in favor of an auto-replace rule. +* The search bar has been redesigned to provide a better user experience. +* The "Find Next" action will now open the search bar when there is no active + search, matching the behavior of Konqueror and other KDE applications. +* The sorting of the nick completion list has been improved to put the last + active user for a given completion prefix at the beginning of the list. +* The tab completion of the user's own nickname has been reenabled. +* The nick completion feature has been significantly cleaned up and made more + reliable. A bug that could lead to an application crash during nick completion + has been fixed. +* An option to expand the vertical size of the input box automatically when the + text entered grows beyond the length of a single line has been added. +* The behavior of the input box on pasting text including leading or trailing + newline characters has been improved never to cause lines being sent without + user acknowledgement. +* The input box of connection status, channel and query tabs will now be +disabled + and the nickname list of channel tabs cleared when the respective server + connection is closed. +* Konversation can now optionally insert a remember line whenever a tab is +hidden, + either by switching to a different tab or minimizing the window. +* Multiple consecutive remember lines will no longer be inserted. +* Remember lines can now also be inserted into the chat windows of connection + status and DCC Chat tabs. +* The Colored Nicknames feature will now always assign the same color to the +same + nickname. +* The number of backlog lines to show in the chat window is now configurable. +* The recognition of URLs in the chat window has been improved to cope better + with URLs containing or being surrounded by parenthesis and to exclude +trailing + dots and commas. +* Channel links following mode characters or surrounded by interpunctuation are + now properly recognized in the chat window. +* The context menus for URLs and channel links in the topic area now match the + context menus in the chat window. +* Multiple ignore or unignore actions ordered at the same time will no longer be + shown on separate lines in the chat window. +* The nickname context menus in the chat window, topic are and the nickname list + will now show "Ignore", "Unignore" and "Add to Watched Nicknames" entries as + applicable. +* A bug that could lead to the chat window nickname context menu actions ceasing + to function after the targeted user left the channel has been fixed. +* The Server List dialog now allows connecting to a specific server in a network + even when a connection to that network has been previously established. If +that + connection is active, a dialog box will verify whether to disconnect from the + current server and connect to the chosen one instead, otherwise the connection + will simply be reestablished using the newly chosen server. +* The Quick Connect feature will now properly warn when the identity to be used + in the connection attempt is not set up properly. +* The appearance and behavior of the warning about an incorrectly set-up +identity + have been improved. A prior connection attempt will now be automatically +resumed + after the identity settings have been corrected. +* Many of the pages in the Konversation preferences dialog have been redesigned + and rewritten for improved consistency, reliability and clarity. The general + layout of the dialog has been improved as well. +* The naming of certain actions in the Configure Shortcuts dialog has been + improved to make them easier to recognize outside of their normal context in + the application interface. +* Numerous improvements to keyboard navigation have been made. +* The nickname list now longer allows drag'n'drop of channel or user links from + the chat window onto list entries, as a DCC transfer of those data sources + cannot succeed. +* The preference to show or hide the real names of users in the nickname list +will + now be applied immediately. +* The columns of the nickname list will no longer resize erratically when the + preferences to show or hide real names and hostmasks are changed at runtime. +* A bug that could lead to nicknames being sent as messages when double-clicking + a selection of multiple nicknames in the nickname list has been fixed. +* The placement of actions in the application menus has been improved. +* The shown/hidden state of the application menubar will now be remembered +across + sessions. When the menubar is hidden, a menu action to show it again will now +be + added to the chat window context menu. +* The "Close All Open Queries" menu action is now be disabled properly when +there + are no open queries. +* A bug that could lead to the "Close All Open Queries" menu action failing to + properly close all open queries has been fixed. +* A bug that could lead to an application crash when closing the tab after +choosing + to ignore someone in a query has been fixed. +* The "Hide Nicklist" menu action will now be disabled properly when the tab +shown + does not have a nickname list has been fixed. +* The actions in the "Insert" menu will now be disabled properly when the +current + tab does not support them. +* The default double-click action in the "Watched Nicks Online" tab is now to +open + a query to the respective contact. +* The sorting in the Watched Nicks Online tab has been improved: Offline users +are + now always sorted at the bottom. +* Several bugs in the "Watched Nicknames Online" tab that could lead to +application + crashes have been fixed. +* Several errors in the chat window status messages produced by the Watched +Nicks + Online system have been corrected. +* A bug that could lead the the columns in the "Watched Nicks Online" list +resizing + erratically has been fixed. +* A bug that could lead to the status bar not being cleared properly when the +last + tab was closed or the application window lost focus after a link was + launched from the chat window has been fixed. +* The display of temporary and static info texts in the status bar has been + improved not to interfere with each other and provide more useful information. + Also, the status bar lag info section is now updated more consistently to +avoid + jumping around of the other status bar sections. +* A bug that could lead to a wrong nickname count being shown in the status bar + of channel tabs has been fixed. +* Repeated triggering of the "Open URL Catcher" menu action will now properly + show and hide the URL Catcher tab. +* The warning about pasting text with multiple lines can now be properly +disabled + and reenabled from the Warning Dialogs preferences page. +* A bug that could lead to IRC bookmarks showing up as actions in the Configure + Shortcuts dialog has been fixed. +* A bug that could lead to changes of the global KDE icon set not being applied + to the tab bar close buttons immediately has been fixed. +* A bug that caused the application window to change its horizontal size after + opening a Query to a user with a very long hostmask has been fixed. The DCC + Chat and query tabs now use the same heading style as channel tabs. +* A bug that could lead to the topic and nickname list areas not keeping their + size properly across tab switches has been fixed. +* A bug that could lead to certain types of KNotify event notifications not + being executed properly when the system tray icon was enabled has been fixed. +* A bug that could lead to ampersands in network names being shown as + underscores in the menu under certain circumstances has been fixed. +* A bug that could lead to an application crash when trying to access + non-existing tabs via the Alt+number keyboard shortcuts has been fixed. +* A bug that could lead to the toolbar being hidden after it was edited has been + fixed. +* A bug that could lead to the chat window context menu not being cancelled + properly when clicking outside of it has been fixed. +* A bug that could lead to heavy disk seeking when the splitters separating + the topic area and the nickname list from the chat window were moved has been + fixed. +* The option to only show the application in the system tray at all times has + been retired in favor of the standard KDE mechanic of minimizing into the + system tray. + +Commands +* The 'Now Playing' script invoked via the /media command alias now features + support for XMMS and KSCD as well as improved support for untagged media files + playing in Amarok. Support for non-ASCII encodings in file names and meta tags + has been improved as well. +* New "/hop" and "/dehop" commands to grant or remove half-op status from a user + have been added. +* A new "/devoice" command has been added. +* A new "/kickban" command to ban and immediately kick a user has been added. It + supports the same parameters as the "/ban" command plus an additional "kickban + reason" parameter. +* Commands to grant or remove status for users will now be applied to the user's + own nickname when no nickname parameter is given. +* The "/unignore" command now supports the same simple nickname-only format as + the "/ignore" command. +* If given no parameter, the "/away" command will now set the away state with + the default away message. The "/back" and "/unaway" commands can be used to + unset the away state. +* You may now use "%nick" as a placeholder for your own nickname in the auto- + connect commands for a network. +* A bug that could lead to the auto-connect commands for a network not being + executed correctly has been fixed. + +DCC +* DCC file transfers now support file names containing spaces on send, receive + and resume. The automatic replacement of spaces with underscores in file names + can now be optionally disabled in the DCC preferences. +* File names are no longer being needlessly lower-cased during DCC transfers. +* The DCC file transfer and DCC Chat info messages shown in the chat window have + been significantly improved to provide more useful information while being +less + excessively verbose. +* DCC Chats will now be logged properly. +* It is now possible to select multiple files in the DCC Status tab. +* The default size of the buffer used in DCC transfers has been increased to + 8192kb for improved DCC performance. +* The DCC Status tab will no longer show a speed of '?' for completed, failed or + aborted transfers. +* Bugs that could lead to the IP used for DCC transfers not being retrieved from + the server correctly upon reconnect or in general on certain servers have been + fixed. +* A bug that could lead to the progress bar of a transfer in the DCC Status tab + being rendered at a wrong position has been fixed. +* A bug that could lead to Konversation's CPU usage spiking to 100% after a DCC + Chat was closed from the remote side has been fixed. +* Several bugs that could lead to application crashes in DCC Chat tabs after the + server connection from which the DCC Chat originated was closed have been +fixed. + +Technology +* Konversation will now properly split up very long lines into multiple messages + by calculating the length of the message preamble and the number of bytes of +the + text payload. Encodings that use multiple or variable numbers of bytes per + character are accounted for. +* The Disconnect and Reconnect menu actions and the respective input box +commands + have been rewritten for increased reliability. Their state will now be updated + properly, and they will quit the IRC server in the correct manner. +* A previous away state will now be recreated upon reconnection to a server. +* The Quick Connect feature will now no longer join the auto-join channels of + the configured network that the quick connect server was recognized as being a + part of. +* The "Konversation" and "KonvDCOPIdentity" DCOP objects have been renamed to + "irc" and "identity", respectively. Several bugs in the DCOP API have been + fixed, and deprecated interfaces removed. +* Processing of the user lists of newly joined channels has been rewritten to + fix several bugs, including improved compatibility with the Bip IRC proxy and + other servers. +* The lag calculation and timeout handling code has been rewritten for improved + reliability and performance. +* Recognition of the half-op user status has been improved. +* The detection of text being typed into the input box to prevent focussing new + tabs at inconvenient times has been improved to work correctly with non-ASCII + characters. +* The handling of channel user limits in the Channel Settings dialog is now more + reliable. +* Support for mode flags encountered on UnrealIRCD servers has been improved. +* Support for RPL_DATASTR on UnrealIRCD servers has been improved. +* A bug that could lead to the mode flags displayed for users not being updated + properly after they were kicked from a channel has been fixed. +* A bug that could lead to iterating over a configured network's servers failing + after a connection failure has been fixed. +* A bug that could lead to Konversation connecting to the wrong server in a + network when choosing to connect to a specific server from the Server List +dialog + has been fixed. +* A dialog will now ask the user for an additional nickname when all nicknames + configured in the identity where tried unsuccessfully during a connection + attempt. This replaces the previous behavior of repeatedly appending +underscores + to the last nickname, which eventually ran into the nickname length limit on +the + server. +* A bug that could lead to unnecessary nick changes immediately after connecting + to a server has been fixed. +* A bug that could lead to Konversation trying to auto-identify multiple times + upon connect on certain servers has been fixed. +* A bug that could lead to Konversation not picking up on users leaving a + channel without providing a part or quit message on UnrealIRCD servers has +been + fixed. +* Changes to the list of auto-join channels for a network will now be applied + immediately. +* The auto-reconnect preference will now be properly applied at runtime. +* Konversation will no longer enable IDENTIFY-MSG mode on servers that support +it, + but continues to be able to process messages with IDENTIFY-MSG prefixes in +case + an involved IRC proxy chose to enable IDENTIFY-MSG mode. +* The broken default for the Custom Web Browser preference has been fixed. +* Konversation will no longer allow Konsole tabs to be opened in KDE + environments in which the use of terminals is prohibited by the KIOSK +framework. +* A bug that could lead to an application crash when a Konsole tab was closed + from the Konsole component's context menu has been fixed. +* A bug that could lead to an application crash when a channel was joined while + the application window was hidden has been fixed. + +------------------------------------------------------------------------------- + +Changes from 0.18 to 0.19 +We are extremely pleased to announce the immediate release of Konversation 0.19. +The focus +of this release is on extending and improving upon established functionality. +Most notable +in this regard are significantly improved management of IRC networks and servers +all across +the application, a redesigned tab bar and better support for common IRC +commands. A long +list of further additions and improvements has us confident of this being the +best version +of Konversation yet. Enjoy! + + +User Interface +* The Server List dialog has been rewritten to allow direct manipulation of a +network's + servers and features more intelligent sorting behavior. Reordering networks +via drag + and drop is now possible. A behavioral audit of all actions in the dialog +resulted in + numerous improvements. +* A redesigned tab bar sports highly configurable text- and LED icon-based +notifications + as well as more intelligent scaling behavior under space-critical conditions. +* Tabs are now intelligently grouped around their respective connection status +tab. +* Status tab labels now display the user-configured network name where +appropriate. +* The Find Text dialog has been replaced by a search bar that no longer +interrupts your + workflow. +* Channel links in the chat area now feature a context menu for quick access to +common + actions. +* Usage of the status bar has been extended to show context-relevant information +as the + cursor passes over various interface elements. The lag information segment is +now + only shown where appropriate. +* A channel's topic can now be cleared by setting an empty text in the Channel +Options + dialog. +* The Channel Options dialog has been redesigned to allow editing the current +topic + while browsing a channel's topic history. +* The Watched Nicknames interface has been fully integrated with network +management. +* Pressing the Arrow Down key in the input line now preserves any input entered +by + adding it to the history. +* Commands may now be sent as regular messages by typing Ctrl+Enter. +* The multi-line paste editor window now highlights whitespace characters and +prepends + the existing content of the input line. +* The Colored Nicknames feature has been improved to better handle nickname +changes and + immediately apply any changes to the color palette. +* Some previously not configurable notification events have been made +configurable. +* Users leaving a server will now be announced in any query you have open with +them. +* Query tab labels will now update when a user you have a query open with +changes + his/her name. +* The DCC file transfer dialogs have seen a number of cosmetic improvements. +Among other + things, in the event of a file being renamed on save, the local file name is +now shown + across the application. +* Various status and error messages have been rewritten for improved consistency +and + clarity. +* The KDE standard text font will now be correctly set as initial default chat +font. +* It is now possible to skip displaying a server's MOTD on connect. +* If the application is set to display a server's MOTD in a fixed-width font and +the + previously configured default chat font is already a fixed-width font, the +chat font + will now be used rather than the global KDE default fixed-width font. +* The state of the automatic spell checking functionality is now remembered +across + sessions and set for all tabs. +* Networks no longer lose their channel history when their settings are changed. +* The Server List dialog will no longer close when a connection attempt fails +due to + the identity not being set up correctly. +* After changing your nickname using the optional drop-down menu to the left of +the + input line, focus will now be returned to the input line. +* The configuration dialog has been rewritten to correctly update the button +state of + its primary actions and improve consistency with the KDE style guide. +* The vertical and horizontal splitters in channel tabs now behave better when +the + application window is resized and correctly retain their positions across +sessions. +* The OSD preview in the OSD settings page is now always shown correctly. +* The OSD will no longer be shown when the desktop is locked. +* A bug that prevented copying text from the chat area under certain +circumstances has + been fixed. +* Keyboard search in the channel nickname list has been fixed. +* A number of issues affecting nickname context menus in the chat area have been +fixed. +* A bug leading to a wrong operator count in the status bar has been fixed. +* It is no longer possible to add nameless networks or hostless servers in the +respon- + sible management dialogs. +* Bugs that led to parts of the interface not reacting to KDE color scheme +changes have + been fixed. +* The status bar now correctly reacts to KDE font size changes. +* A bug that led to the application window resizing on overly long status bar +contents + has been fixed. +* A bug that led to multiple remember lines being inserted into the frontmost +tab when + away mode was activated has been fixed. +* A bug that led to wrong link addresses being opened from the chat area has +been fixed. +* Bugs that led to wrong URLs being produced by dragging a link from the chat +area to + the input line have been fixed. +* Channel names are now better recognized as such by the chat area. + + +Bookmarking +* Bookmark titles now default to the channel name. +* Bookmarks now store the network name rather than the server address where +available. +* Bookmarks now support IPv6 addresses. + + +Commands +* The '/server' command now recognizes a greater variety of address notations +including + network names. +* The '/names' command now always succeeds in returning the user list of a +channel. +* The '/topic' command now always succeeds in returning the topic of a channel. +* A '/dns' command has been added that facilitates resolving the host name of a +user on + the server as well as generic host names. Reverse resolve is supported on KDE +3.5.1+. +* An '/unignore' command has been added. +* A '/disconnect' command has been added. +* A '/reconnect' command has been added that disconnects and then reconnects the +respec- + tive server. +* A '/setkey' command has been added to set the Blowfish encryption/decryption +key for + the respective context. +* The '/list' command now correctly opens the Channel List tab. +* A bug in parsing the arguments of the '/join' command has been fixed. +* Usage information and error reporting for various commands has been rewritten +for + improved consistency and clarity. +* A bug that led to a 'clear' command being sent to the server when using the +'/clear' + command to clear the contents of a query tab has been fixed. + + +Miscellaneous +* The 'media' script has been rewritten and now features improved compatibility +with + common character sets, greatly enhanced support for the Kaffeine media player +and + newly added support for the Yammi media player. +* The 'sysinfo' script has been rewritten to produce more concise output and +better + handle a variety of storage scenarios. +* The convenience feature expanding [[term]] into a Wikipedia link is now +localizable + and generates a link that performs an intelligent lookup for the term in the +Wiki- + pedia rather than assume a correct direct link. + + +Technology +* Konversation now depends on KDE 3.4+. +* The preferences storage system has been rewritten to facilitate easier +maintenance + and faster development in future release cycles. +* Localized support for a long list of IRC protocol primitives has been added. +* The application will now correctly iterate over a network's servers on +successive + failed connection attempts. +* When the '/server' command or the Quick Connect dialog is used to connect to a + server that has previously been added to a network in the Server List dialog, +it + will be recognized as being part of the network and the respective identity + settings will be applied. +* The automated reply to a highlight event can now reference the groups of the +matched + pattern by the identifiers %1-%9 and the entire match by the identifier %0. +* The CABAP IDENTIFY-MSG technology is now supported. +* Compatibility with the Unreal IRC server has been improved. +* Initial support for Blowfish encryption (compatible with mIRCryption and FiSH) +has + been added. Note that Diffie-Hellman key exchange (DHX) is not yet supported. +* The Watched Nicknames reporting has been made more reliable. +* Socket handling in the DCC file transfer feature has been improved. +* Alpha-blending of icons in the channel nickname list has been fixed. +* Support for the iso-2022-jp encoding has been enhanced. +* The custom web browser feature will now automatically append the URL as a +parameter + to the specified command when the %u identifier is missing. +* Channel modes are now correctly cleared and updated in the internal +representation + on rejoin. +* A bug that led to an infinite loop during a connection attempt when all +nicknames + configured in the identity were in use has been fixed. +* A bug that could lead to a crash when opening the log file for a closed +connection has + been fixed. + +------------------------------------------------------------------------------- + +Changes from 0.17 to 0.18 +- All nicks were blue when colored nicks are disabled with some setups +- /cycle now works as expected +- /gauge script was not working correctly when given a bigger than 100 argument +- /mail script has been added +- Button to invoke Regular Expression Editor (if installed) in Settings -> +Highlight. +- Complete command line argument system for connection +- An option to disable clickable nicks . Add ClickableNicks=false to +konversationrc to disable it. +- Fixed a big memory leak in message processing +- Nicklist slider now correctly resizes in all channels when its resized and +correctly restores on startup +- [[foo]] is now a link to http://en.wikipedia.org/wiki/foo . We will expand +this to local wikipedia's in a later release [Update: Now fixed in 0.19] + + +Changes from 0.16 to 0.17 +- Add an option to hide realnames in nicklist +- Show away users as disabled ala Xchat +- Remove sort by away status +- Fix whois replies for normal users on safe channels ( IRCNet alike ) +- Fix whois replies from ircd-hybrid ( Efnet alike ) +- Better handling of quiet bans ( especially Freenode ) +- KDE color scheme is now honered in topic widget +- Enable clickable nicks even if colored nicks are off +- Per identity pre-shell command support with a GUI +- Bookmarking support +- Detect Japanese encoding correctly while trying to auto-detect Unicode + +Changes from 0.15 to 0.16 +- Dropping URLs onto nick on nicklist or onto query initiates DCC send +- You can now do SSL connections from Quick Connect Dialog +- Nicklist Icon Themes +- New topic widget +- Added a channel dialog +- Made the nickname box optional +- Fix DCC resume when its set to auto-accept +- Calculate DCC CPS more accurately +- Colored nicks support +- Added dcop functions to set away and added alt+a shortcut to toggle away +- Clicking nicks in channel text will now open a query and similarly, + clicking #foo will now join channel #foo +- Nicks in channel view now have a context menu as in nicklistview +- Tab at begining of line inserts last completed nick +- A media script added to replace amarok,juk,noatun,kaffeine scripts. + Use /media instead of using /amarok,/juk etc. +- Links can now be dragged & dropped from channels +- Midde clicking urls now opens them in new tab in konqueror ( if konqueror is +used for links ) +- Improved unicode detection +- Fix unicode detection for strings containing color markup +- /omsg,/onotice support +- Added an option to use an IPv4 interface for IPv6 dcc sends +- A new /google script added to search Google using Google SOAP api +- Redesigned settings page +- A new application icon +- Lots of optimizations all around + +Changes from 0.14 to 0.15 +- Ported socket code to KNetwork. Weird connection problems should be gone now +- Get default username/ident information from system +- Support for bouncer prefixes in nick completion +- Dcc port range support +- Scripts now works with /script or /exec script +- Improved bidi support. +- Cleaned up settings dialog +- Added an option how to get own IP for DCC send/chat +- "Open Watched Nicks Online panel on startup" option +- Support encoding settings per channel +- SSL Support +- KIO-fied local I/O on DCC send/receive +- OSD Positioning Support +- New network based server settings +- Added an option to stay in systray all the time +- Full irc:/ url support (channel name & password now supported in url) +- /charset support +- auto /WHO support +- display away status of nicks in nick list + +Changes from 0.13 to 0.14 +- Added irc "pseudo" command /prefs for changing settings without settings +dialog. +- Measure away time and make it available via placeholder (%t) +- (Very much) Improved OSD. +- New application icons by luciash d' being . Thanks! +- Added /server command for connecting to a server. +- After the connection is lost and the old nickname is still in use, + the nickbutton in the channelwindows is updated to the new nick. +- Now you can read utf8 encoded messages even if your locale is not unicode +- "Do not show this dialog again" preferences now works correctly +- Added an "Insert Remember Line" feature. + The user can mark the position in the channel where he stopped + reading(because he is away for a short time). + When he comes back, he can scroll back to this mark and read + what he missed. +- Added the possibility to execute commands on server connection(for + authentication and such things). Can be configured in the "Edit Server" + dialog. +- Added further timestamps for am/pm (BR 79612) +- Added QuickConnect dialog by Michael Goettsche. (Thanks once again) +- Properly receive a logout/shutdown request and terminate konversation, + instead of minimizing to the systray. +- Make OSD switchable on/off via DCOP. Thanks to Michael Goettsche! (BR 75870) +- Dates can now be shown, next to the timestamp. Patch by Michael Goettsche + (BR 82785) (thanks!) +- Added DCC auto-resume feature by Michael Goettsche (BR 81740) (thanks!) +- Added systray notification +- Added shell like nick completion mode (aka uga mode) +- Implemented a cleaner way of handling tab shortcuts +- Implemented DCC Chat +- Hilight mailto: links +- Topic line can now be hidden +- Added an away nickname +- Added /aaway, /ame and /amsg +- Added "Open URL" context menu to channel list entries +- Implemented slower / faster blinking of tabs for more / less important events +- Less important events like Join, Part and Nickchanges can now be hidden +- Custom CTCP Version Reply Support +- Added a shortcut to close all open queries +- Added a patch by Thomas Nagy to cycle tabs with mouse scroll wheel (thanks!) +- Added logfile reader +- Added patch by Gary Cramblitt to enhance DCC panel (thanks!) +- Added patch by Gary Cramblitt to select custom web browser command (thanks!) +- When the server goes offline, now all associated tabs get crossed out +- Added a multi line pasting editor +- Nicks Online is now a tabbed panel, rather than separate window. +- Added sound support to the highlight list +- Added regular expression support to the highlight list^ +- Follow the style guide when the tray icon is enabled by minimizing to tray +when + the close button is clicked. +- Auto text feature on highlight events +- DCC resume offers to rename a transfer now +- Added patch by Ruud Nabben to enable hiding of IRC colors (thanks!) +- Various small fixes and additions + +Changes from 0.12 to 0.13 +- Added an option to hide hostmasks in channel nick lists +- Autojoin on invite with user interaction implemented +- Added URL catcher interface +- Added user interface for "don't show again" dialogs +- Added slovenian translation by Barko (thanks!) +- Added korean translation by Hye-Shik Chang (thanks!) +- Added option to place tabs on top +- Color configuration is now in preferences dialog +- Quick buttons configuration is now in preferences dialog +- Notify list is now in preferences dialog +- Option for a background image added +- Added /quote command for raw server messages +- Added Copy URL into clipboard for URL catcher +- Added option for reconnect on too long lag +- Added "Server list" menu entry to "File" menu +- Applied a patch by Peter Simonsson (thanks!) +- Patch added Color picker, IRC colors and KNotify events +- Added support for command aliases +- Encodings are now on per-identity basis +- Added indicator to show own away state +- Added system tray icon patch by Frauke Oster (thanks!) +- Channel list update is now more CPU friendly +- Tell the user why the channel list could not be opened +- Channel list now sorts correctly when number column is clicked +- Applied a patch by Christian Muehlhaeuser to enable bigger mode changes +(thanks) +- Applied a patch by Christian Muehlhaeuser to right-align close widgets +(thanks) +- Info button on dcc panel now works +- Added /unban command +- Applied a patch by Christian Muehlhaeuser for OSD functions (thanks) +- Applied a patch by Sascha Cunz for extended user modes beyond @ and + (thanks) +- Applied a patch by Steve Wollkind to close visible tab via shortcut (thanks) + +Changes from 0.11 to 0.12 +- Now handles multi server mode in one single window +- Fixed the wrong Ops counter +- Added /notify command and respective dcop calls +- Added support for /oper command +- Implemented /ban command and menu items +- Added shortcut (F3) for search dialog +- History does not get cleared on cursor up/down anymore +- Added context menu to copy URLs immediately +- Added paragraph spacing +- Added hostmask column to nick list +- Implemented background hostmask scanning +- Recognises now who set the first topic +- Added nickname sorting options +- Sorting now has up/down arrows +- Added channel list panel +- Added russian translation by Stanislav Karchebny (thanks!) +- Applied some patches by Stanislav Karchebny +- Added PgUp/PgDown support to Channels, Queries and Status views +- Added rename button to identity page to overcome QComboBox limitations +- Tabs now blink in the last highlight color to indicate important text +- Tabs don't get to front anymore while the user is typing in an input line +- Added shortcut editor dialog +- Added konsole panel (thanks to Mickael Marchand) + +Changes from 0.10 to 0.11 +- Added a patch by Bart Verwilst to provide automatic service registration +(thanks!) +- Added "Hide Menu" function +- Improved server connection code to stop konversation freezes at startup +- Server lag calculation after reconnect fixed +- Implemented own async lookup class to throw out broken QDns +- Added prelimnary application icons +- Send File in dcc panel now works +- Added Send File context menu item in text views +- Added dialog for Resume / Overwrite DCC Get files +- Added large paste warning dialog +- Close Buttons on tabs are now an option +- Added context menu on tabs with close item +- Added ALT+1 - ALT+9 for switching tabs +- Applied a big patch by Alex Zepeda. Thanks! +- First working DCOP implementation +- Implemented a simple search dialog +- Added a raw log pane + +Changes from 0.9 to 0.10 +- Font encodings are now set via KCharsets +- Implemented different identities +- Added double click actions to nick list and notify list +- Added support for ASCII-BEL +- Added custom spacing and margin +- Added close buttons for the tabs +- Redesign of the color configuration dialog +- Switched to kapp->config() to properly remember dialog status +- Color code parsing now works with QRegExp +- CTCP-Ping now works +- Removed files that are no longer needed +- Updated German translation + +Changes from 0.8 to 0.9 +- Added strikeout support (untested yet) +- Added Swedish translation, done by Karolina Lindqvist (thanks!) +- Added optional timestamps to chat windows +- Quick Buttons and Channel Mode Buttons can now be hidden +- Added support for multi channel joins +- Added #include "sourcefile.moc" to all Q_OBJECTS to speed up compiles +- Added support for autoconnect to server +- Inserted a QSplitter between channel text and nick list +- Added support for background colors +- Reduced flickering on blinking tabs +- Added experimental support for foreign language characters +- Added ignore list functionality +- Added away / unaway messages +- DCC folder can now be selected vial GUI +- Applied a patch by Barak Bloch to fix foreign character set behaviour +(thanks!) +- Updated German translation + +Changes from 0.7 to 0.8: +- DCCs can now be opened (started) using the 'open' button +- DCCs can now be aborted using the 'abort' button +- Added support for /users reply +- Added support for /invite and 341 reply +- Added support for 401 error reply +- Added /smsg for "silent messages" +- Text and Nicklist-Fonts can now be selected via GUI +- Changed server ping response again to make dalnet ircd happy +- Fixed nicklist sorting in channels +- Switched to kdevelop 2.1.4 to hopefully fix some compile problems +- Made Notices appear a bit different +- DCC recipient list now gets sorted +- Made text widget not scroll when scroll bar isn't completely down +- Parsed WHOIS messages into human readable form +- Pasting multiline text into input lines now behaves as expected +- Hilights now honor the sending nick, too (patch by Suran. Thanks!) +- You can now hilight all your own lines independently +- Fixed the problem in the appearance dialog with font names +- Added DCC error dialogs +- Quit/Nickchange/Kicks are now only reported in channels where the nick +actually is in +- Fixed bug with lockups on defective logfiles +- Added support for EUR currency symbol +- Added keyboard handling to navigate between pages +- Code cleanup in nick list +- Added first support for custom colors in nick list +- Added application dsescription for the 'About' dialog +- Major restructuring of the server status panel diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..28fadaa --- /dev/null +++ b/INSTALL @@ -0,0 +1,181 @@ +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 awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. 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. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=PATH' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' 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..2369f25 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,5 @@ +AUTOMAKE_OPTIONS = foreign 1.6.1 + +include admin/deps.am +include admin/Doxyfile.am +SUBDIRS=$(TOPSUBDIRS) diff --git a/Makefile.am.in b/Makefile.am.in new file mode 100644 index 0000000..e46b27c --- /dev/null +++ b/Makefile.am.in @@ -0,0 +1,4 @@ +AUTOMAKE_OPTIONS = foreign 1.6.1 + +include admin/deps.am +include admin/Doxyfile.am diff --git a/README b/README new file mode 100644 index 0000000..2b8703d --- /dev/null +++ b/README @@ -0,0 +1,4 @@ +Konversation website: http://konversation.kde.org/ +Konversation wiki: http://konversation.kde.org/wiki +Bug tracker: http://bugs.kde.org/ +IRC channel: #konversation on irc.freenode.org diff --git a/TODO b/TODO new file mode 100644 index 0000000..5f60c7b --- /dev/null +++ b/TODO @@ -0,0 +1,3 @@ +See http://konversation.kde.org/wiki/Developer_Central and the +KDE bug tracker (http://bugs.kde.org) for a list of outstanding +todo items and discussion of future development. diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..403f21c --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +konversation version 1.1 diff --git a/acinclude.m4 b/acinclude.m4 new file mode 100644 index 0000000..c5a2f25 --- /dev/null +++ b/acinclude.m4 @@ -0,0 +1,12643 @@ +## -*- 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="-Wl,-framework,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 || test "$kde_x_libraries" = "/usr/lib"; 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 +if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) +fi +if test "$PKG_CONFIG" != "no" ; then + if $PKG_CONFIG --exists qt-mt ; then + qt_incdirs="$qt_incdirs `$PKG_CONFIG --variable=includedir qt-mt`" + fi +fi +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/lib $dir" +done +if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) +fi +if test "$PKG_CONFIG" != "no" ; then + if $PKG_CONFIG --exists qt-mt ; then + qt_libdirs="$qt_incdirs `$PKG_CONFIG --variable=libdir qt-mt`" + fi +fi +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="" + 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" +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 +#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 (strcmp(zlibVersion(), ZLIB_VERSION) == 0); +], + 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 `pkg-config --libs OpenEXR` $LIBZ" + 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 + +]) + + +AC_DEFUN([KDE_CHECK_FOR_OPT_NOINLINE_MATCH], +[ + AC_CACHE_CHECK([whether system headers can cope with -O2 -fno-inline], + kde_cv_opt_noinline_match, + [ + kde_cv_opt_noinline_match=irrelevant + dnl if we don't use both -O2 and -fno-inline, this check is moot + if echo "$CFLAGS" | grep -e -O2 >/dev/null 2>/dev/null \ + && echo "$CFLAGS" | grep -e -fno-inline >/dev/null 2>/dev/null ; then + + ac_cflags_save="$CFLAGS" + CFLAGS="$CFLAGS -D_USE_GNU" + + AC_TRY_LINK([ + #include +], [ const char *pt, *et; + et = __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p ( ";," ) && ((size_t)(const void *)(( ";," )+ 1) - (size_t)(const void *)( ";," ) == 1) ? ((__a0 =((__const char *) ( ";," ))[0], __a0 == '\0') ? ((void) ( pt ),((void *)0) ) : ((__a1 = ((__const char *) ( ";," ))[1], __a1== '\0') ? (__extension__ (__builtin_constant_p ( __a0 ) && ( __a0 ) == '\0' ? (char *) __rawmemchr ( pt , __a0) : strchr( pt , __a0 ))) : ((__a2 = ((__const char *) ( ";," ))[2], __a2 == '\0') ? __strpbrk_c2 ( pt , __a0, __a1) :(((__const char *) ( ";," ))[3] == '\0' ? __strpbrk_c3 ( pt ,__a0, __a1, __a2): strpbrk ( pt , ";," ))))) : strpbrk ( pt , ";," )); }) ; +], + kde_cv_opt_noinline_match=yes, + kde_cv_opt_noinline_match=no + ) + + CFLAGS="$ac_cflags_save" + 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 -fno-schedule-insns -fno-inline $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 -fno-schedule-insns -fno-inline $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 -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 + gcc_no_reorder_blocks=NO + KDE_CHECK_COMPILER_FLAG(fno-reorder-blocks,[gcc_no_reorder_blocks=YES]) + if test $kde_use_debug_code != "no" && \ + test $kde_use_debug_code != "full" && \ + test "YES" = "$gcc_no_reorder_blocks" ; then + CXXFLAGS="$CXXFLAGS -fno-reorder-blocks" + CFLAGS="$CFLAGS -fno-reorder-blocks" + fi + 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 + + KDE_CHECK_FOR_OPT_NOINLINE_MATCH + if test "x$kde_cv_opt_noinline_match" = "xno" ; then + CFLAGS="`echo "$CFLAGS" | sed "s/ -fno-inline//"`" + 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], +[ + AC_ARG_ENABLE(libsuffix, + AC_HELP_STRING([--enable-libsuffix], + [/lib directory suffix (64,32,none,auto[=default])]), + kdelibsuff=$enableval, kdelibsuff="auto") + + if test "$kdelibsuff" = "auto"; then + +cat > conftest.c << EOF +#include +int main() { + return 0; +} +EOF + kdelibsuff=`$CC conftest.c -o conftest.out; ldd conftest.out |sed -ne '/libc.so/{ + s,.*/lib\([[^\/]]*\)/.*,\1, + p +}'` + rm -rf conftest.* + fi + + if test "$kdelibsuff" = "no" || test "$kdelibsuff" = "none"; 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.5", + [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` + + 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 + sane_path=$(cd $dir; /bin/pwd) + 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 "$sane_path" != "/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="-Wl,-framework,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${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH" + if test "$prefix" != "$kde_libs_prefix"; then + PKG_CONFIG_PATH="$kde_libs_prefix/lib${kdelibsuff}/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, 2003, 2004, 2005, 2006, 2007 +## Free Software Foundation, Inc. +## Originally by Gordon Matzigkeit , 1996 +## +## This file is free software; the Free Software Foundation gives +## unlimited permission to copy and/or distribute it, with or without +## modifications, as long as this notice is preserved. + +# serial 51 Debian 1.5.24-1 AC_PROG_LIBTOOL + + +# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) +# ----------------------------------------------------------- +# If this macro is not defined by Autoconf, define it here. +m4_ifdef([AC_PROVIDE_IFELSE], + [], + [m4_define([AC_PROVIDE_IFELSE], + [m4_ifdef([AC_PROVIDE_$1], + [$2], [$3])])]) + + +# AC_PROG_LIBTOOL +# --------------- +AC_DEFUN([AC_PROG_LIBTOOL], +[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl +dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX +dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. + AC_PROVIDE_IFELSE([AC_PROG_CXX], + [AC_LIBTOOL_CXX], + [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX + ])]) +dnl And a similar setup for Fortran 77 support + AC_PROVIDE_IFELSE([AC_PROG_F77], + [AC_LIBTOOL_F77], + [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 +])]) + +dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. +dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run +dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. + AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [ifdef([AC_PROG_GCJ], + [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([A][M_PROG_GCJ], + [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([LT_AC_PROG_GCJ], + [define([LT_AC_PROG_GCJ], + defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) +])])# AC_PROG_LIBTOOL + + +# _AC_PROG_LIBTOOL +# ---------------- +AC_DEFUN([_AC_PROG_LIBTOOL], +[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl +AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl +AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl +AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +# Prevent multiple expansion +define([AC_PROG_LIBTOOL], []) +])# _AC_PROG_LIBTOOL + + +# AC_LIBTOOL_SETUP +# ---------------- +AC_DEFUN([AC_LIBTOOL_SETUP], +[AC_PREREQ(2.50)dnl +AC_REQUIRE([AC_ENABLE_SHARED])dnl +AC_REQUIRE([AC_ENABLE_STATIC])dnl +AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_LD])dnl +AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl +AC_REQUIRE([AC_PROG_NM])dnl + +AC_REQUIRE([AC_PROG_LN_S])dnl +AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! +AC_REQUIRE([AC_OBJEXT])dnl +AC_REQUIRE([AC_EXEEXT])dnl +dnl + +AC_LIBTOOL_SYS_MAX_CMD_LEN +AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +AC_LIBTOOL_OBJDIR + +AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +_LT_AC_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e 1s/^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 MSVC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" + +AC_CHECK_TOOL(AR, ar, false) +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_CHECK_TOOL(STRIP, strip, :) + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +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_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + AC_PATH_MAGIC + fi + ;; +esac + +AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +enable_win32_dll=yes, enable_win32_dll=no) + +AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +AC_ARG_WITH([pic], + [AC_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) +test -z "$pic_mode" && pic_mode=default + +# Use C for the default configuration in the libtool script +tagname= +AC_LIBTOOL_LANG_C_CONFIG +_LT_AC_TAGCONFIG +])# AC_LIBTOOL_SETUP + + +# _LT_AC_SYS_COMPILER +# ------------------- +AC_DEFUN([_LT_AC_SYS_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_AC_SYS_COMPILER + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +AC_DEFUN([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +]) + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +AC_DEFUN([_LT_COMPILER_BOILERPLATE], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +AC_DEFUN([_LT_LINKER_BOILERPLATE], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$rm conftest* +])# _LT_LINKER_BOILERPLATE + + +# _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_REQUIRE([LT_AC_PROG_SED])dnl +AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_AC_SYS_LIBPATH_AIX + + +# _LT_AC_SHELL_INIT(ARG) +# ---------------------- +AC_DEFUN([_LT_AC_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_AC_SHELL_INIT + + +# _LT_AC_PROG_ECHO_BACKSLASH +# -------------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], +[_LT_AC_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +echo=${ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null 2>&1 && unset CDPATH + +if test -z "$ECHO"; then +if test "X${echo_test_string+set}" != Xset; then +# find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if (echo_test_string=`eval $cmd`) 2>/dev/null && + echo_test_string=`eval $cmd` && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(ECHO) +])])# _LT_AC_PROG_ECHO_BACKSLASH + + +# _LT_AC_LOCK +# ----------- +AC_DEFUN([_LT_AC_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) LD="${LD-ld} -64" ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +[*-*-cygwin* | *-*-mingw* | *-*-pw32*) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; + ]) +esac + +need_locks="$enable_libtool_lock" + +])# _LT_AC_LOCK + + +# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], +[AC_REQUIRE([LT_AC_PROG_SED]) +AC_CACHE_CHECK([$1], [$2], + [$2=no + ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $rm conftest* +]) + +if test 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_REQUIRE([LT_AC_PROG_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $rm 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 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + teststring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +])# 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); */ + } + else + puts (dlerror ()); + + exit (status); +}] +EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_AC_TRY_DLOPEN_SELF + + +# AC_LIBTOOL_DLOPEN_SELF +# ---------------------- +AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_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 + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_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_PROG_SED])dnl +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 + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* +]) +])# AC_LIBTOOL_PROG_CC_C_O + + +# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) +# ----------------------------------------- +# Check to see if we can do hard links to lock some files if needed +AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], +[AC_REQUIRE([_LT_AC_LOCK])dnl + +hard_links="nottested" +if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS + + +# AC_LIBTOOL_OBJDIR +# ----------------- +AC_DEFUN([AC_LIBTOOL_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +])# AC_LIBTOOL_OBJDIR + + +# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) +# ---------------------------------------------- +# Check hardcoding attributes. +AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_AC_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ + test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ + test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_AC_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_AC_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_AC_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH + + +# AC_LIBTOOL_SYS_LIB_STRIP +# ------------------------ +AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], +[striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) +fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +])# AC_LIBTOOL_SYS_LIB_STRIP + + +# AC_LIBTOOL_SYS_DYNAMIC_LINKER +# ----------------------------- +# PORTME Fill in your ld.so characteristics +AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +m4_if($1,[],[ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'` + else + lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`echo $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[[3-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi +])# AC_LIBTOOL_SYS_DYNAMIC_LINKER + + +# _LT_AC_TAGCONFIG +# ---------------- +AC_DEFUN([_LT_AC_TAGCONFIG], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_ARG_WITH([tags], + [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], + [include additional configurations @<:@automatic@:>@])], + [tagnames="$withval"]) + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + AC_MSG_WARN([output file `$ofile' does not exist]) + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) + else + AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) + fi + fi + if test -z "$LTCFLAGS"; then + eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in + "") ;; + *) AC_MSG_ERROR([invalid tag name: $tagname]) + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + AC_MSG_ERROR([tag name \"$tagname\" already exists]) + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_LIBTOOL_LANG_CXX_CONFIG + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + AC_LIBTOOL_LANG_F77_CONFIG + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + AC_LIBTOOL_LANG_GCJ_CONFIG + else + tagname="" + fi + ;; + + RC) + AC_LIBTOOL_LANG_RC_CONFIG + ;; + + *) + AC_MSG_ERROR([Unsupported tag name: $tagname]) + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + AC_MSG_ERROR([unable to update list of available tagged configurations.]) + fi +fi +])# _LT_AC_TAGCONFIG + + +# AC_LIBTOOL_DLOPEN +# ----------------- +# enable checks for dlopen support +AC_DEFUN([AC_LIBTOOL_DLOPEN], + [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_DLOPEN + + +# AC_LIBTOOL_WIN32_DLL +# -------------------- +# declare package support for building win32 DLLs +AC_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_WIN32_DLL + + +# AC_ENABLE_SHARED([DEFAULT]) +# --------------------------- +# implement the --enable-shared flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_SHARED], +[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([shared], + [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]AC_ENABLE_SHARED_DEFAULT) +])# AC_ENABLE_SHARED + + +# AC_DISABLE_SHARED +# ----------------- +# set the default shared flag to --disable-shared +AC_DEFUN([AC_DISABLE_SHARED], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_SHARED(no) +])# AC_DISABLE_SHARED + + +# AC_ENABLE_STATIC([DEFAULT]) +# --------------------------- +# implement the --enable-static flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_STATIC], +[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([static], + [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]AC_ENABLE_STATIC_DEFAULT) +])# AC_ENABLE_STATIC + + +# AC_DISABLE_STATIC +# ----------------- +# set the default static flag to --disable-static +AC_DEFUN([AC_DISABLE_STATIC], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_STATIC(no) +])# AC_DISABLE_STATIC + + +# AC_ENABLE_FAST_INSTALL([DEFAULT]) +# --------------------------------- +# implement the --enable-fast-install flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_FAST_INSTALL], +[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([fast-install], + [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) +])# AC_ENABLE_FAST_INSTALL + + +# AC_DISABLE_FAST_INSTALL +# ----------------------- +# set the default to --disable-fast-install +AC_DEFUN([AC_DISABLE_FAST_INSTALL], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_FAST_INSTALL(no) +])# AC_DISABLE_FAST_INSTALL + + +# AC_LIBTOOL_PICMODE([MODE]) +# -------------------------- +# implement the --with-pic flag +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +AC_DEFUN([AC_LIBTOOL_PICMODE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +pic_mode=ifelse($#,1,$1,default) +])# AC_LIBTOOL_PICMODE + + +# AC_PROG_EGREP +# ------------- +# This is predefined starting with Autoconf 2.54, so this conditional +# definition can be removed once we require Autoconf 2.54 or later. +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], +[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], + [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi]) + EGREP=$ac_cv_prog_egrep + AC_SUBST([EGREP]) +])]) + + +# AC_PATH_TOOL_PREFIX +# ------------------- +# find a file program which can recognize shared library +AC_DEFUN([AC_PATH_TOOL_PREFIX], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="ifelse([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +])# AC_PATH_TOOL_PREFIX + + +# AC_PATH_MAGIC +# ------------- +# find a file program which can recognize a shared library +AC_DEFUN([AC_PATH_MAGIC], +[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# AC_PATH_MAGIC + + +# AC_PROG_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([AC_PROG_LD], +[AC_ARG_WITH([gnu-ld], + [AC_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no]) +AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +nto-qnx*) + lt_cv_deplibs_check_method=unknown + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown +])# AC_DEPLIBS_CHECK_METHOD + + +# AC_PROG_NM +# ---------- +# find the pathname to a BSD-compatible name lister +AC_DEFUN([AC_PROG_NM], +[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi]) +NM="$lt_cv_path_NM" +])# AC_PROG_NM + + +# AC_CHECK_LIBM +# ------------- +# check for math library +AC_DEFUN([AC_CHECK_LIBM], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +])# AC_CHECK_LIBM + + +# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl convenience library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-convenience to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. 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 +# AC_CONFIG_SUBDIRS is not called here. 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 with +# '${top_srcdir}/' (note the single quotes!). If your package is not +# flat and you're not using automake, define top_builddir and top_srcdir +# appropriately in the Makefiles. +# In the future, this macro may have to be called after AC_PROG_LIBTOOL. +AC_DEFUN([AC_LIBLTDL_INSTALLABLE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_CHECK_LIB(ltdl, lt_dlinit, + [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], + [if test x"$enable_ltdl_install" = xno; then + AC_MSG_WARN([libltdl not installed, but installation disabled]) + else + enable_ltdl_install=yes + fi + ]) + if test x"$enable_ltdl_install" = x"yes"; then + ac_configure_args="$ac_configure_args --enable-ltdl-install" + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + else + ac_configure_args="$ac_configure_args --enable-ltdl-install=no" + LIBLTDL="-lltdl" + LTDLINCL= + fi + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_INSTALLABLE + + +# AC_LIBTOOL_CXX +# -------------- +# enable support for C++ libraries +AC_DEFUN([AC_LIBTOOL_CXX], +[AC_REQUIRE([_LT_AC_LANG_CXX]) +])# AC_LIBTOOL_CXX + + +# _LT_AC_LANG_CXX +# --------------- +AC_DEFUN([_LT_AC_LANG_CXX], +[AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) +])# _LT_AC_LANG_CXX + +# _LT_AC_PROG_CXXCPP +# ------------------ +AC_DEFUN([_LT_AC_PROG_CXXCPP], +[ +AC_REQUIRE([AC_PROG_CXX]) +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +fi +])# _LT_AC_PROG_CXXCPP + +# AC_LIBTOOL_F77 +# -------------- +# enable support for Fortran 77 libraries +AC_DEFUN([AC_LIBTOOL_F77], +[AC_REQUIRE([_LT_AC_LANG_F77]) +])# AC_LIBTOOL_F77 + + +# _LT_AC_LANG_F77 +# --------------- +AC_DEFUN([_LT_AC_LANG_F77], +[AC_REQUIRE([AC_PROG_F77]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) +])# _LT_AC_LANG_F77 + + +# AC_LIBTOOL_GCJ +# -------------- +# enable support for GCJ libraries +AC_DEFUN([AC_LIBTOOL_GCJ], +[AC_REQUIRE([_LT_AC_LANG_GCJ]) +])# AC_LIBTOOL_GCJ + + +# _LT_AC_LANG_GCJ +# --------------- +AC_DEFUN([_LT_AC_LANG_GCJ], +[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], + [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], + [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], + [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) +])# _LT_AC_LANG_GCJ + + +# AC_LIBTOOL_RC +# ------------- +# enable support for Windows resource files +AC_DEFUN([AC_LIBTOOL_RC], +[AC_REQUIRE([LT_AC_PROG_RC]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) +])# AC_LIBTOOL_RC + + +# AC_LIBTOOL_LANG_C_CONFIG +# ------------------------ +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) +AC_DEFUN([_LT_AC_LANG_C_CONFIG], +[lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF + +# Report which library types will actually be built +AC_MSG_CHECKING([if libtool supports shared libraries]) +AC_MSG_RESULT([$can_build_shared]) + +AC_MSG_CHECKING([whether to build shared libraries]) +test "$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* | aix5*) + 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([_LT_AC_PROG_CXXCPP]) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Dependencies to place before and after the object being linked: +_LT_AC_TAGVAR(predep_objects, $1)= +_LT_AC_TAGVAR(postdep_objects, $1)= +_LT_AC_TAGVAR(predeps, $1)= +_LT_AC_TAGVAR(postdeps, $1)= +_LT_AC_TAGVAR(compiler_lib_search_path, $1)= + +# Source file extension for C++ test sources. +ac_ext=cpp + +# 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 + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_LD=$LD +lt_save_GCC=$GCC +GCC=$GXX +lt_save_with_gnu_ld=$with_gnu_ld +lt_save_path_LD=$lt_cv_path_LD +if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx +else + $as_unset lt_cv_prog_gnu_ld +fi +if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX +else + $as_unset lt_cv_path_LD +fi +test -z "${LDCXX+set}" || LD=$LDCXX +CC=${CXX-"c++"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' +else + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + AC_PROG_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $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" | \ + grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-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 + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _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 + : + 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' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + 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='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _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_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $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 '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_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' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes ; then + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + freebsd-elf*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + ;; + gnu*) + ;; + hpux9*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + _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' + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) ;; + *) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _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' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _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' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + interix[[3-9]]*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_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 ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_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}${output_objdir}/so_locations -o $lib' + else + _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` -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* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; 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 + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_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' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _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' + ;; + pgCC*) + # Portland Group C++ compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_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' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='echo' + + # 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' + ;; + esac + ;; + 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* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + openbsd2*) + # C++ shared libraries are fairly broken + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd='echo' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + osf3*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $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 ${output_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}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $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 ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ + $rm $lib.exp' + + _LT_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}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + 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(archive_cmds_need_lc,$1)=yes + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -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} ${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 compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # 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 + + output_verbose_link_cmd='echo' + + # 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 | grep -v '^2\.7' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_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 $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-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 $compiler_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 $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + fi + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + # So that behaviour is only enabled if SCOABSPATH is set to a + # non-empty value in the environment. Most likely only useful for + # creating official distributions of packages. + # This is a hack until libtool officially supports absolute path + # names for shared libraries. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; +esac +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_AC_TAGVAR(GCC, $1)="$GXX" +_LT_AC_TAGVAR(LD, $1)="$LD" + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +AC_LIBTOOL_POSTDEP_PREDEP($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +with_gnu_ld=$lt_save_with_gnu_ld +lt_cv_path_LDCXX=$lt_cv_path_LD +lt_cv_path_LD=$lt_save_path_LD +lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld +lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +])# AC_LIBTOOL_LANG_CXX_CONFIG + +# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) +# ------------------------------------ +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + # + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + if test "$solaris_use_stlport4" != yes; then + _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) + +case " $_LT_AC_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac +])# AC_LIBTOOL_POSTDEP_PREDEP + +# AC_LIBTOOL_LANG_F77_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_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)]) +AC_DEFUN([_LT_AC_LANG_F77_CONFIG], +[AC_REQUIRE([AC_PROG_F77]) +AC_LANG_PUSH(Fortran 77) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="\ + subroutine t + return + end +" + +# Code to be used in simple link tests +lt_simple_link_test_code="\ + program t + end +" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${F77-"f77"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) + +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* | aix5*) + 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]) + +_LT_AC_TAGVAR(GCC, $1)="$G77" +_LT_AC_TAGVAR(LD, $1)="$LD" + +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_F77_CONFIG + + +# AC_LIBTOOL_LANG_GCJ_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_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)]) +AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG], +[AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${GCJ-"gcj"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_RESTORE +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_GCJ_CONFIG + + +# AC_LIBTOOL_LANG_RC_CONFIG +# ------------------------- +# Ensure that the configuration vars for the Windows resource 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_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)]) +AC_DEFUN([_LT_AC_LANG_RC_CONFIG], +[AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${RC-"windres"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_RESTORE +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_RC_CONFIG + + +# AC_LIBTOOL_CONFIG([TAGNAME]) +# ---------------------------- +# If TAGNAME is not passed, then create an initial libtool script +# with a default configuration from the untagged config vars. Otherwise +# add code to config.status for appending the configuration named by +# TAGNAME from the matching tagged config vars. +AC_DEFUN([AC_LIBTOOL_CONFIG], +[# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + _LT_AC_TAGVAR(compiler, $1) \ + _LT_AC_TAGVAR(CC, $1) \ + _LT_AC_TAGVAR(LD, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \ + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \ + _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \ + _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \ + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \ + _LT_AC_TAGVAR(old_archive_cmds, $1) \ + _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \ + _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) \ + _LT_AC_TAGVAR(archive_cmds, $1) \ + _LT_AC_TAGVAR(archive_expsym_cmds, $1) \ + _LT_AC_TAGVAR(postinstall_cmds, $1) \ + _LT_AC_TAGVAR(postuninstall_cmds, $1) \ + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \ + _LT_AC_TAGVAR(allow_undefined_flag, $1) \ + _LT_AC_TAGVAR(no_undefined_flag, $1) \ + _LT_AC_TAGVAR(export_symbols_cmds, $1) \ + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \ + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \ + _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \ + _LT_AC_TAGVAR(hardcode_automatic, $1) \ + _LT_AC_TAGVAR(module_cmds, $1) \ + _LT_AC_TAGVAR(module_expsym_cmds, $1) \ + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \ + _LT_AC_TAGVAR(fix_srcfile_path, $1) \ + _LT_AC_TAGVAR(exclude_expsyms, $1) \ + _LT_AC_TAGVAR(include_expsyms, $1); do + + case $var in + _LT_AC_TAGVAR(old_archive_cmds, $1) | \ + _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \ + _LT_AC_TAGVAR(archive_cmds, $1) | \ + _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \ + _LT_AC_TAGVAR(module_cmds, $1) | \ + _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \ + _LT_AC_TAGVAR(export_symbols_cmds, $1) | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\[$]0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'` + ;; + esac + +ifelse([$1], [], + [cfgfile="${ofile}T" + trap "$rm \"$cfgfile\"; exit 1" 1 2 15 + $rm -f "$cfgfile" + AC_MSG_NOTICE([creating $ofile])], + [cfgfile="$ofile"]) + + cat <<__EOF__ >> "$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, 2002, 2003, 2004, 2005, 2006, 2007 +# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="$SED -e 1s/^X//" + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG], +[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# 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 + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) + +# Is the compiler the GNU C compiler? +with_gcc=$_LT_AC_TAGVAR(GCC, $1) + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_[]_LT_AC_TAGVAR(LD, $1) + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) + +# Commands used to build and install a shared archive. +archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) +archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) +module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path + +# Set to yes if exported symbols are required. +always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) + +# The commands to list exported symbols. +export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) + +# Symbols that must always be exported. +include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) + +ifelse([$1],[], +[# ### END LIBTOOL CONFIG], +[# ### END LIBTOOL TAG CONFIG: $tagname]) + +__EOF__ + +ifelse([$1],[], [ + case $host_os in + aix3*) + cat <<\EOF >> "$cfgfile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || \ + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +]) +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi +])# AC_LIBTOOL_CONFIG + + +# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl + +_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI + + +# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +# --------------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], +[AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([LT_AC_PROG_SED]) +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 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'" + ;; +linux* | k*bsd*-gnu) + if test "$host_cpu" = ia64; then + symcode='[[ABCDGIRSTW]]' + 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'" + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[[]] = +{ +EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -f conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi +]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE + + +# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) +# --------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], +[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) + ifelse([$1],[CXX],[ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + _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)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + 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* | dragonfly*) + # 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)='${wl}-a ${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)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_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* | k*bsd*-gnu) + 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* | ecpc*) + # 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' + ;; + pgCC*) + # Portland Group C++ compiler. + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _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 ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + 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*) + ;; + 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 + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _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' + ;; + esac + ;; + 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. + ;; + + mingw* | cygwin* | 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). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + _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' + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + newsos6) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + icc* | ecc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + _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)='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _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)='' + ;; + esac + ;; + esac + ;; + + osf3* | osf4* | osf5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + 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*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _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' + ;; + + unicos*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then + AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], + _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), + [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" +AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) +]) + + +# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) +# ------------------------------------ +# See if the linker supports building shared libraries. +AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +ifelse([$1],[CXX],[ + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + ;; + linux* | k*bsd*-gnu) + _LT_AC_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +],[ + runpath_var= + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)= + _LT_AC_TAGVAR(archive_expsym_cmds, $1)= + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown + _LT_AC_TAGVAR(hardcode_automatic, $1)=no + _LT_AC_TAGVAR(module_cmds, $1)= + _LT_AC_TAGVAR(module_expsym_cmds, $1)= + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_AC_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + _LT_CC_BASENAME([$compiler]) + 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 + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + 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}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $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)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + interix[[3-9]]*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + *) + tmp_sharedflag='-shared' ;; + esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + _LT_AC_TAGVAR(link_all_deplibs, $1)=no + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + 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 $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' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $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 + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $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)" = no; then + runpath_var= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_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 "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _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 + : + 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' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + 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='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _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_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $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 '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_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' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${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 + ;; + + bsdi[[45]]*) + _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 + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # 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' + _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _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*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $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' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd* | netbsdelf*-gnu) + 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*) + if test -f /usr/libexec/ld.so; then + _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 $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _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 $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + 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 "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_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)=: + ;; + + solaris*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + _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 + wlarc='' + _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]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + 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) + case $host_vendor in + sni) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + 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 + +# +# Do we need to explicitly link libc? +# +case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_AC_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $rm conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) + then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac +])# AC_LIBTOOL_PROG_LD_SHLIBS + + +# _LT_AC_FILE_LTDLL_C +# ------------------- +# Be careful that the start marker always follows a newline. +AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ +# /* ltdll.c starts here */ +# #define WIN32_LEAN_AND_MEAN +# #include +# #undef WIN32_LEAN_AND_MEAN +# #include +# +# #ifndef __CYGWIN__ +# # ifdef __CYGWIN32__ +# # define __CYGWIN__ __CYGWIN32__ +# # endif +# #endif +# +# #ifdef __cplusplus +# extern "C" { +# #endif +# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); +# #ifdef __cplusplus +# } +# #endif +# +# #ifdef __CYGWIN__ +# #include +# DECLARE_CYGWIN_DLL( DllMain ); +# #endif +# HINSTANCE __hDllInstance_base; +# +# BOOL APIENTRY +# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) +# { +# __hDllInstance_base = hInst; +# return TRUE; +# } +# /* ltdll.c ends here */ +])# _LT_AC_FILE_LTDLL_C + + +# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) +# --------------------------------- +AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) + + +# old names +AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) +AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) +AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) + +# This is just to silence aclocal about the macro not being used +ifelse([AC_DISABLE_FAST_INSTALL]) + +AC_DEFUN([LT_AC_PROG_GCJ], +[AC_CHECK_TOOL(GCJ, gcj, no) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS) +]) + +AC_DEFUN([LT_AC_PROG_RC], +[AC_CHECK_TOOL(RC, windres, no) +]) + + +# Cheap backport of AS_EXECUTABLE_P and required macros +# from Autoconf 2.59; we should not use $as_executable_p directly. + +# _AS_TEST_PREPARE +# ---------------- +m4_ifndef([_AS_TEST_PREPARE], +[m4_defun([_AS_TEST_PREPARE], +[if test -x / >/dev/null 2>&1; then + as_executable_p='test -x' +else + as_executable_p='test -f' +fi +])])# _AS_TEST_PREPARE + +# AS_EXECUTABLE_P +# --------------- +# Check whether a file is executable. +m4_ifndef([AS_EXECUTABLE_P], +[m4_defun([AS_EXECUTABLE_P], +[AS_REQUIRE([_AS_TEST_PREPARE])dnl +$as_executable_p $1[]dnl +])])# AS_EXECUTABLE_P + +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +# LT_AC_PROG_SED +# -------------- +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +AC_DEFUN([LT_AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if AS_EXECUTABLE_P(["$as_dir/$lt_ac_prog$ac_exec_ext"]); then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +]) + +dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) +dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page +dnl also defines GSTUFF_PKG_ERRORS on error +AC_DEFUN([PKG_CHECK_MODULES], [ + succeeded=no + + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + AC_MSG_CHECKING(for $2) + + if $PKG_CONFIG --exists "$2" ; then + AC_MSG_RESULT(yes) + succeeded=yes + + AC_MSG_CHECKING($1_CFLAGS) + $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` + AC_MSG_RESULT($$1_CFLAGS) + + AC_MSG_CHECKING($1_LIBS) + $1_LIBS=`$PKG_CONFIG --libs "$2"` + AC_MSG_RESULT($$1_LIBS) + else + $1_CFLAGS="" + $1_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + ifelse([$4], ,echo $$1_PKG_ERRORS,) + fi + + AC_SUBST($1_CFLAGS) + AC_SUBST($1_LIBS) + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + ifelse([$3], , :, [$3]) + else + ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) + fi +]) + + diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..2f1ca33 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,910 @@ +# generated automatically by aclocal 1.10.1 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(AC_AUTOCONF_VERSION, [2.61],, +[m4_warning([this file was generated for autoconf 2.61. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically `autoreconf'.])]) + +# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.10' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.10.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.10.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 9 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 3 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. +AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 13 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.60])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +AC_DEFUN([AM_MAINTAINER_MODE], +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([acinclude.m4]) diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..a3806e3 --- /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 Kimiface headers */ +#undef HAVE_KIMIFACE + +/* 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_TGMATH_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 + +/* Define if you have the XScreenSaver extension */ +#undef HAVE_XSCREENSAVER + +/* Suffix for lib directories */ +#undef KDELIBSUFF + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* The size of `char *', as computed by sizeof. */ +#undef SIZEOF_CHAR_P + +/* The size of `int', as computed by sizeof. */ +#undef SIZEOF_INT + +/* The size of `long', as computed by sizeof. */ +#undef SIZEOF_LONG + +/* The size of `short', as computed by sizeof. */ +#undef SIZEOF_SHORT + +/* The size of `size_t', as computed by sizeof. */ +#undef SIZEOF_SIZE_T + +/* The size of `unsigned long', as computed by sizeof. */ +#undef SIZEOF_UNSIGNED_LONG + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* If we use arts volume */ +#undef USE_ARTS + +/* Define if you have KNotify */ +#undef USE_KNOTIFY + +/* Version number of package */ +#undef VERSION + +/* Defined if compiling without arts */ +#undef WITHOUT_ARTS + +/* + * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system + * headers and I'm too lazy to write a configure test as long as only + * unixware is related + */ +#ifdef _UNIXWARE +#define HAVE_BOOLEAN +#endif + + + +/* + * AIX defines FD_SET in terms of bzero, but fails to include + * that defines bzero. + */ + +#if defined(_AIX) +#include +#endif + + + +#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H) +# include +# include +# define environ (*_NSGetEnviron()) +#endif + + + +#if !defined(HAVE_RES_INIT_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +int res_init(void); +#ifdef __cplusplus +} +#endif +#endif + + + +#if !defined(HAVE_STRLCAT_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +unsigned long strlcat(char*, const char*, unsigned long); +#ifdef __cplusplus +} +#endif +#endif + + + +#if !defined(HAVE_STRLCPY_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +unsigned long strlcpy(char*, const char*, unsigned long); +#ifdef __cplusplus +} +#endif +#endif + + + +/* + * On HP-UX, the declaration of vsnprintf() is needed every time ! + */ + +#if !defined(HAVE_VSNPRINTF) || defined(hpux) +#if __STDC__ +#include +#include +#else +#include +#endif +#ifdef __cplusplus +extern "C" +#endif +int vsnprintf(char *str, size_t n, char const *fmt, va_list ap); +#ifdef __cplusplus +extern "C" +#endif +int snprintf(char *str, size_t n, char const *fmt, ...); +#endif + + + +#if defined(__SVR4) && !defined(__svr4__) +#define __svr4__ 1 +#endif + + +/* type to use in place of socklen_t if not defined */ +#undef kde_socklen_t + +/* type to use in place of socklen_t if not defined (deprecated, use + kde_socklen_t) */ +#undef ksize_t diff --git a/configure.files b/configure.files new file mode 100644 index 0000000..e21fe66 --- /dev/null +++ b/configure.files @@ -0,0 +1,3 @@ +./admin/configure.in.min +configure.in.in +./konversation/configure.in.in diff --git a/configure.in b/configure.in new file mode 100644 index 0000000..0c5f566 --- /dev/null +++ b/configure.in @@ -0,0 +1,234 @@ +dnl ======================================================= +dnl FILE: ./admin/configure.in.min +dnl ======================================================= + +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., 51 Franklin Street, Fifth Floor, +dnl Boston, MA 02110-1301, 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(konversation-1.1, "3.5.9") dnl searches for some needed programs + +AM_MAINTAINER_MODE + +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.2) +AC_PATH_KDE +dnl ======================================================= +dnl FILE: configure.in.in +dnl ======================================================= + +#MIN_CONFIG(3.2) +CXXFLAGS="$CXXFLAGS $KDE_DEFAULT_CXXFLAGS" + +if test "$build_arts" = "yes"; then + AC_DEFINE(USE_ARTS, 1, [If we use arts volume]) + LIB_ARTS="-lartskde" + AC_SUBST(LIB_ARTS) +fi + +KDE_INIT_DOXYGEN([KEG Network API Reference], [Version $VERSION]) + +dnl ======================================================= +dnl FILE: ./konversation/configure.in.in +dnl ======================================================= + +#MIN_CONFIG(3.2) +CXXFLAGS="$CXXFLAGS $KDE_DEFAULT_CXXFLAGS" + +KDE_CHECK_HEADER(knotifyclient.h, + [ + AC_DEFINE(USE_KNOTIFY, 1, [Define if you have KNotify] ) + ]) + + +KDE_CHECK_HEADER(kimiface.h, + [ + AC_DEFINE(HAVE_KIMIFACE, 1, [Define if you have Kimiface headers] ) + LIB_KIMIFACE="-lkimproxy" + AC_SUBST(LIB_KIMIFACE) + ]) + +# Check for XScreenSaver +AC_CHECK_HEADERS(tgmath.h)xss_save_ldflags="$LDFLAGS" +LDFLAGS="$X_LDFLAGS" + +LIB_XSS= + +KDE_CHECK_HEADER(X11/extensions/scrnsaver.h, + [ + AC_CHECK_LIB(Xext,XScreenSaverQueryInfo, + [ + AC_DEFINE(HAVE_XSCREENSAVER, 1, [Define if you have the XScreenSaver extension]) + LIB_XSS="-lXext" + ], + [ + ld_shared_flag= + KDE_CHECK_COMPILER_FLAG(shared, [ld_shared_flag="-shared"]) + AC_CHECK_LIB(Xss,XScreenSaverQueryInfo, + [ + AC_DEFINE(HAVE_XSCREENSAVER, 1, [Define if you have the XScreenSaver extension]) + LIB_XSS="-lXss" + ], + [], + [ $ld_shared_flag $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS ]) + ], + [ $X_PRE_LIBS -lX11 $X_EXTRA_LIBS ]) + ], [], + [ + #include + ] ) + +AC_SUBST(LIB_XSS) +LDFLAGS="$xss_save_ldflags" +KDE_CREATE_SUBDIRSLIST +AM_CONDITIONAL(doc_SUBDIR_included, test "x$doc_SUBDIR_included" = xyes) +AM_CONDITIONAL(konversation_SUBDIR_included, test "x$konversation_SUBDIR_included" = xyes) +AM_CONDITIONAL(po_SUBDIR_included, test "x$po_SUBDIR_included" = xyes) +AC_CONFIG_FILES([ Makefile ]) +AC_CONFIG_FILES([ doc/Makefile ]) +AC_CONFIG_FILES([ doc/da/Makefile ]) +AC_CONFIG_FILES([ doc/es/Makefile ]) +AC_CONFIG_FILES([ doc/et/Makefile ]) +AC_CONFIG_FILES([ doc/it/Makefile ]) +AC_CONFIG_FILES([ doc/konversation/Makefile ]) +AC_CONFIG_FILES([ doc/pt/Makefile ]) +AC_CONFIG_FILES([ doc/ru/Makefile ]) +AC_CONFIG_FILES([ doc/sv/Makefile ]) +AC_CONFIG_FILES([ konversation/Makefile ]) +AC_CONFIG_FILES([ konversation/images/Makefile ]) +AC_CONFIG_FILES([ konversation/images/icons/Makefile ]) +AC_CONFIG_FILES([ konversation/images/nickicons/Makefile ]) +AC_CONFIG_FILES([ konversation/images/nickicons/alternative/Makefile ]) +AC_CONFIG_FILES([ konversation/images/nickicons/christmas/Makefile ]) +AC_CONFIG_FILES([ konversation/images/nickicons/classic/Makefile ]) +AC_CONFIG_FILES([ konversation/images/nickicons/default/Makefile ]) +AC_CONFIG_FILES([ konversation/images/nickicons/oxygen/Makefile ]) +AC_CONFIG_FILES([ konversation/images/nickicons/smiling/Makefile ]) +AC_CONFIG_FILES([ konversation/images/nickicons/square/Makefile ]) +AC_CONFIG_FILES([ konversation/scripts/Makefile ]) +AC_CONFIG_FILES([ konversation/src/Makefile ]) +AC_CONFIG_FILES([ konversation/src/blowfish/Makefile ]) +AC_CONFIG_FILES([ konversation/src/config/Makefile ]) +AC_CONFIG_FILES([ konversation/src/linkaddressbook/Makefile ]) +AC_CONFIG_FILES([ po/Makefile ]) +AC_CONFIG_FILES([ po/ar/Makefile ]) +AC_CONFIG_FILES([ po/bg/Makefile ]) +AC_CONFIG_FILES([ po/ca/Makefile ]) +AC_CONFIG_FILES([ po/da/Makefile ]) +AC_CONFIG_FILES([ po/de/Makefile ]) +AC_CONFIG_FILES([ po/el/Makefile ]) +AC_CONFIG_FILES([ po/en_GB/Makefile ]) +AC_CONFIG_FILES([ po/es/Makefile ]) +AC_CONFIG_FILES([ po/et/Makefile ]) +AC_CONFIG_FILES([ po/fi/Makefile ]) +AC_CONFIG_FILES([ po/fr/Makefile ]) +AC_CONFIG_FILES([ po/gl/Makefile ]) +AC_CONFIG_FILES([ po/he/Makefile ]) +AC_CONFIG_FILES([ po/hu/Makefile ]) +AC_CONFIG_FILES([ po/it/Makefile ]) +AC_CONFIG_FILES([ po/ja/Makefile ]) +AC_CONFIG_FILES([ po/ka/Makefile ]) +AC_CONFIG_FILES([ po/ko/Makefile ]) +AC_CONFIG_FILES([ po/pa/Makefile ]) +AC_CONFIG_FILES([ po/pt/Makefile ]) +AC_CONFIG_FILES([ po/ru/Makefile ]) +AC_CONFIG_FILES([ po/sr/Makefile ]) +AC_CONFIG_FILES([ po/sr@Latn/Makefile ]) +AC_CONFIG_FILES([ po/sv/Makefile ]) +AC_CONFIG_FILES([ po/tr/Makefile ]) +AC_CONFIG_FILES([ po/zh_CN/Makefile ]) +AC_CONFIG_FILES([ po/zh_TW/Makefile ]) +AC_OUTPUT +# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure +if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then + # And if so, warn when they don't match + if test "$kde_libs_prefix" != "$given_prefix"; then + # And if kde doesn't know about the prefix yet + echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null + if test $? -ne 0; then + echo "" + echo "Warning: you chose to install this package in $given_prefix," + echo "but KDE was found in $kde_libs_prefix." + echo "For this to work, you will need to tell KDE about the new prefix, by ensuring" + echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix" + echo "Then restart KDE." + echo "" + fi + fi +fi + +if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then + echo "" + echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility" + echo "was not included. Therefore, GCC symbol visibility support remains disabled." + echo "" + echo "For better performance, consider including the Qt visibility supporting patch" + echo "located at:" + echo "" + echo "http://bugs.kde.org/show_bug.cgi?id=109386" + echo "" + echo "and recompile all of Qt and KDE. Note, this is entirely optional and" + echo "everything will continue to work just fine without it." + echo "" +fi + +if test "$all_tests" = "bad"; then + if test ! "$cache_file" = "/dev/null"; then + echo "" + echo "Please remove the file $cache_file after changing your setup" + echo "so that configure will find the changes next time." + echo "" + fi +else + echo "" + echo "Good - your configure finished. Start make now" + echo "" +fi diff --git a/configure.in.in b/configure.in.in new file mode 100644 index 0000000..a781b76 --- /dev/null +++ b/configure.in.in @@ -0,0 +1,11 @@ +#MIN_CONFIG(3.2) +CXXFLAGS="$CXXFLAGS $KDE_DEFAULT_CXXFLAGS" + +if test "$build_arts" = "yes"; then + AC_DEFINE(USE_ARTS, 1, [If we use arts volume]) + LIB_ARTS="-lartskde" + AC_SUBST(LIB_ARTS) +fi + +KDE_INIT_DOXYGEN([KEG Network API Reference], [Version $VERSION]) + diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..6812bd2 --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,5 @@ + +KDE_LANG = en +KDE_DOCS = AUTO +SUBDIRS = $(AUTODIRS) + diff --git a/doc/da/Makefile.am b/doc/da/Makefile.am new file mode 100644 index 0000000..fc88e70 --- /dev/null +++ b/doc/da/Makefile.am @@ -0,0 +1,2 @@ +KDE_LANG = da +KDE_DOCS = konversation diff --git a/doc/da/index.docbook b/doc/da/index.docbook new file mode 100644 index 0000000..0b29be3 --- /dev/null +++ b/doc/da/index.docbook @@ -0,0 +1,5935 @@ + + + + + IRC"> + CTCP"> + nickname"> + Nickname"> + LED"> + OSD"> + URL"> + MIME"> + + + + + + +]> + + + + + + + + + + + + +&konversation;-hÃ¥ndbogen + + + Gary R. Cramblitt garycramblitt@comcast.net +&erik.kjaer.pedersen.role; + + + + + +2003-2005 +Gary R. Cramblitt + + + + +&FDLNotice; + + + +2005-05-23 +0.18 + + + + +&konversation; er en brugervenlig &irc;-klient for K-desktopmiljøet. + + + + + +KDE +kdeextragear-2 +Konversation +irc +internet relay chat +chat +kommunikationer + + + + + + + + + +Indledning + + + +&konversation; er en &irc;-klient for &kde; 3.2 eller senere. Den tilbyder følgende funktioner. + + + +Støtte for SSL. +Brugervenlig fanebladsgrænseflade. +Brugerindstillelige hurtigknapper til ofte brugte kommandoer +Automatisk genforbindelse og gendeltagelse i kanal. +DCC sende og modtage. +&Nickname;-overvÃ¥gningsliste. +Visuelle og lydmæssige pÃ¥mindelser for et vidt omrÃ¥de af begivenheder, sÃ¥som beskeder der indeholder dit alias, eller aliasser pÃ¥ din overvÃ¥gningsliste der kommer pÃ¥ eller gÃ¥r af nettet. +Brugerindstillelig fremhævning a beskeder efter alias eller regulært udtryk. +&Nickname;-komplettering. +Indfangning og gemning af &URL;'er fra meddelelser. +Visning af meddelelser pÃ¥ skærmen, selv minimeret. +&Nickname;-ignoreringsliste. +Automatisk logning og log-hÃ¥ndtering. +Markering af linjer i logger. +Scripting. +Integration med &kaddressbook;. + + + +Hjemmesiden for &konversation; er &konviwebsite;. SpørgsmÃ¥l og svar om &konversation; kan diskuteres via e-mail-listen &konversation;-Users. Abonnér venligst for at lære om nye funktioner, fejlrapporter og lignende. For at blive informeret om nye udgaver, kan du gÃ¥ med i e-mail-listen &konversation;-Announce. Dette er en e-mail-liste med et lille antal breve, som kun bruges til at annoncere nye udgaver eller programrettelser. + +Udviklere af &konversation; kan ofte kontaktes via &irc; pÃ¥ irc.kde.org kanalen #konversation. + + + + +Brug af &konversation; + + + + +Hvis du ikke har brugt &irc; tidligere... + +Enkelt udtrykt er &irc; en chat-protokol, defineret af officielle Internetstandarder, med mulighed for at stjæle mange timer af dit liv. For at bruge &irc; skal du være forbundet til en server, og derefter gÃ¥ med i en kanal (som svarer til et chatrum) eller blot deltage i en privat konversation. + +For at blive forbundet til en server og kanal, startes &konversation;. Skærmen Serverliste vises. + + + +Serverliste + + + + + + + + + + + + + Serverliste + + + + + + + +Listen med indstellede &irc;-netværk angives her. Et &irc;-netværk er en samling samarbejdende servere. Du behøver kun at forbinde dig til en af serverne i netværket for at være forbundet til hele &irc;-netværket. NÃ¥r du er forbundet, vil &konversation; automatisk gÃ¥ med i de viste Kanaler. NÃ¥r &konversation; startes for første gang, er netværket Freenode og kanalen #kde allerede skrevet indfor dig. Klik pÃ¥ et netværk for at vælge det. +Klik her for at definere et nyt Netværk, inklusive serveren at forbinde til, og Kanalerne som automatisk skal gÃ¥s med i efter forbindelse. Se Definér nye netværk, servere og kanaler at gÃ¥ med i automatisk for mere information. +Klik her for at forbinde til den valgte &irc; netværk og kanal. + + + + +NÃ¥r du klikker pÃ¥ knappen Forbind første gang du Ã¥bner &konversation;, ser du mÃ¥ske følgende meddelelse, som fortæller dig at din standardidentitet ikke er rigtigt indstillet. + + + + Kontrollér identiteter + + + + + + Kontrollér identiteter + + + + + +Første gang du Ã¥bner &konversation; hentes information om nuværende bruger fra operativsystemet, og standardværdier for identiteten udfyldes. Hvis brugerinformationen i operativsystemet ikke er fuldstændig, for eksempel hvis intet Fuldstændigt navn er defineret, vil du se meddelelsen ovenfor. For at rette problemet, klikkes pÃ¥ O.k. og sÃ¥ kigges i Opsætning af din identitet for mere information. + + +Hovedskærmen Ã¥bnes og viser meddelelser som sendes af serveren til klienten. (Hvis &konversation; ikke vil forbindes til serveren, se Ofte stillede spørgsmÃ¥l.) NÃ¥r servermeddelelser er færdige med at rulle forbi, gÃ¥r &konversation; med i den kanal eller de kanaler som blev valgt. + + + +Kanal. + + + + + + + + + + + + + Kanal + + + + + + + + +Dette kaldes indtastningslinjen. For at sende en meddelelse til alle pÃ¥ kanalen, indskrives meddelelsen her og der trykkes pÃ¥ &Enter;. Meddelelsen samt alle andres meddelelser ses i kanalvinduet ovenfor. Hver meddelelse indledes med tiden og brugerens alias. + +Du kan gÃ¥ med i yderligere servere og kanaler. Hver server, kanal, kanalliste og anden skærm fÃ¥r et separat faneblad her. For at vise en liste med tilgængelige kanaler, se Liste over tilgængelige kanaler. For at gÃ¥ med i en kanal, skriv: /join #kanalnavn pÃ¥ inddatalinjen. (Tegnet # kræves.) Du kan ogsÃ¥ skrive /j som forkortelse af /join. For at forlade en kanal, skrives blot /part. For at skifte visning til en anden server eller kanal, klikkes pÃ¥ det tilsvarende faneblad. + +Dette kaldes Aliaspanelet. Det er en liste over aliasser for alle brugere som er gÃ¥et med pÃ¥ kanalen, inklusive dig selv. + + + + +Dette er det grundlæggende, for mere detaljeret information, læs videre... + + + + + + +Indstil din identitet + +Inden du begynder at bruge &konversation; regelmæssigt bør du indstille hvordan du vil være identificeret pÃ¥ netværket. + +Klik pÃ¥ Opsætning Identiteter i hovedmenuen. Skærmen Identiteter vises. Du kan ogsÃ¥ vise skærmen Identiteter ved at klikke pÃ¥ knappen Redigér pÃ¥ skærmen Tilføj netværk. + + + +Identiteter (fanebladet Generelt) + + + + + + + + + + + + + + + + + Identiteter (fanebladet Generelt) + + + + + + + +Klik her for at vælge en Identitet at redigere. +Brug disse knapper for at tilføje, duplikere, omdøbe eller fjerne en Identitet. +Indtast dit rigtige navn her. &irc; er ikke beregnet til skjule sig for dine venner eller fjender. Husk det hvis du bliver fristet til at opføre dig ondartet. Et forkert "rigtigt navn" kan være en god mÃ¥de at skjule om du er mand eller kvinde for alle tumperne derude, men maskinen som du bruger kan altid spores, sÃ¥ du kan aldrig være virkeligt anonym. +Brug disse knapperne for handlingerne Tilføj, Redigér eller Slet et alias. +Dette er din liste af alsiasser. Et alias er navnet som de øvrige brugere kender dig som. Du kan indtaste hvilket som helst navn du ønsker. Det første tegn skal være et bogstav, mens øvrige tegn kan være bogstaver, tal eller specialtegn -[]\`_^{}|. + +Eftersom aliasser skal være entydige pÃ¥ hele &irc;-netværket, kan dit ønskede navn mÃ¥ske ikke tillades af servere eftersom en anden allerede bruger det. Indtast alternative aliasser for dig selv. Hvis dit første valg ikke tillades af serveren, forsøger &konversation; med de alternative aliasser. + +Ifølge RFC 2812 er den maksimale aliasnavnelængde 9, men det afgøres i virkeligheden af serveren. For at afgøre maksimum for en server, forbindes til serveren. Led efter meddelelsen [Support] i fanebladet Servermeddelelsen. For eksempel: + + +[18:51] *Eisfuchs* [21:45] [Support] Eisfuchs MODES=4 MAXCHANNELS=20 NICKLEN=16 USERLEN=10 HOSTLEN=63 TOPICLEN=450 KICKLEN=450 CHANNELLEN=30 KEYLEN=23 CHANTYPES=# PREFIX=@+ CASEMAPPING=ascii CAPAB &irc;D=dancer + + +Parameteren NICKLEN angiver den maksimale længde pÃ¥ alias. + + +Brug disse knapper for at ændre rækkefølge pÃ¥ aliasser. Det øverste alias prøves først, derefter det næste, og sÃ¥ videre. +Hvis du har registreret dit alias med &irc;-netværket, indtastes tjenesten og kodeordet for godkende dit alias. NÃ¥r &konversation; forbinder, sendes automatisk /msg tjeneste IDENTIFY kodeord til serveren. Hvis du ikke ved hvad dette er, sÃ¥ lad felterne være tomme. + + + + + +Klik pÃ¥ fanebladet Borte. + + + + Identiteter (fanebladet Borte) + + + + + + + + + + + + + Identiteter (fanebladet Borte) + + + + + + + +Indtast et alias som angiver at du er borte. SÃ¥ snart du udfører kommandoen /away meddelelse i en kanal som du gÃ¥et med i med denne Identitet, ændrer &konversation; automatisk dit alias til Borte alias. Andre brugere mærker at du er væk fra maskinen. SÃ¥ snart du udfører kommandoen /away i den kanal hvor du er borte, ændrer &konversation; automatisk dit alias tilbage til det normale. Hvis du ikke automatisk vil ændre dit alias nÃ¥r du er borte, sÃ¥ lad det være tomt. +Hvis du markerer dette felt, sÃ¥ tegnes en vandret linje i kanalen sÃ¥ snart du udfører kommandoen /away, som markerer stedet du gik væk fra. Andre &irc;-brugere ser ikke denne vandrette linje. +Hvis du markerer dette felt sender &konversation; automatisk Bortemeddelelse til alle kanaler som du gÃ¥et med i med denne Identitet. %s erstattes med meddelelse. SÃ¥ snart du udfører kommandoen /away, vises Genkomstmeddelelsei alle kanaler du gÃ¥et med i med denne Identitet. + +Borte-meddelelser anses ofte for at være irriterende af andre brugere. Brug dette med forsigtighed, og tag hensyn til andre &irc;-brugere. + + + + + + +Klik pÃ¥ fanebladet Avanceret. + + + + Identiteter (fanebladet Avanceret) + + + + + + + + + + + + + + + + Identiteter (fanebladet Avanceret) + + + + + + + +Du kan indtaste et kommando her som køres inden forbindelse til serveren. Hvis identiteten bruges for mere end en server, køres kommandoen for hver server. +Denne indstilling pÃ¥virker hvordan tegn du skriver kodes nÃ¥r de skal sendes til serveren. Den pÃ¥virker ogsÃ¥ hvordan meddelelser vises. NÃ¥r du først Ã¥bner &konversation;, hentes denne indstilling automatisk fra operativsystemet. Hvis du synes at have problemer med at se andre brugeres meddelelser rigtigt, sÃ¥ forsøg at ændre denne indstilling. +NÃ¥r du forbinder, spørger mange servere din maskine efter et IDENT-svar. Hvis din maskine ikke kører en IDENT-server, sendes svaret af &konversation;. Ingen mellemrum er tilladt. Et forslag er at bruge dit fornavn. +SÃ¥ snart du forlader en kanal, sendes denne meddelelse til kanalen. +SÃ¥ snart du sparkes ud fra en kanal (oftest af en &irc;-operatør), sendes denne meddelelse til kanalen. +Klik for at anvende dine ændringer. For at alle ændringer skal fÃ¥ virkning, skal du afbryde fra serveren og forbinde igen. Den enkleste mÃ¥de at gøre det er at afslutte &konversation; og starte forfra. + + + + + + + + + + +Definér nye netværk, servere og autodeltage-kanaler + +Skærmen Serverliste vises nÃ¥r du starter programmet &konversation;. Den vises ogsÃ¥ nÃ¥r du vælger Fil Serverliste i hovedmenuen. Skærmen Serverliste angiver de eksisterende definerede &irc;-netværk, efter gruppe. Et &irc;-netværk er en samling samarbejdende servere. NÃ¥r du forbinder til en server i et netværk, kan du fÃ¥ adgang til alle kanaler i netværket. Eksempel pÃ¥ &irc;-netværk er Freenode og Undernet. + + + + Serverliste + + + + + + + + + + + + + + Serverliste + + + + + + + +Dine eksisterende definerede netværk er pÃ¥ listen her sammen med den identitet som bruges til at forbinde til netværket, og de kanaler som du automatisk gÃ¥r med i nÃ¥r du er forbundet. Hvis du har angivet en gruppe for dine netværk, er netværkene indrykket pÃ¥ listen under gruppen. Klik pÃ¥ et netværk for at markere det. +Brug disse knapperne for at tilføje et nyt netværk, redigere et markeret netværk eller slette et markeret netværk. +Klik pÃ¥ denne knap for at forbinde til et markeret netværk og lukke skærmen Serverliste. Du kan markere mere end et netværk hvis du ønsker det, hvilket forbinder til alle de markerede netværk. +At klikke pÃ¥ denne knap kasserer ikke de ændringer du har gjort. Det betyder kun at du ikke vil forbinde til noget netværk for øjeblikket. + + + + + +NÃ¥r du klikker pÃ¥ knappen Tilføj vises skærmen Tilføj netværk. + + + + Tilføj netværk + + + + + + + + + + + + + + + + + + + Tilføj netværk + + + + + + + +Indtast navnet pÃ¥ et netværk her. Du kan oprette sÃ¥ mange indgange pÃ¥ skærmen Serverliste med samme netværk som du vil. +Valgfrit. Hvis du skriver noget her, kommer alle netværk med samme gruppe sammen pÃ¥ en liste pÃ¥ skærmen Serverliste. +Vælg en eksisterende identitet eller klik pÃ¥ knappen Redigér for at tilføje en ny identitet eller redigere en eksisterende. En identitet vil identificere dig og afgøre dit alias nÃ¥r du forbinder til netværket. +Valgfrit. Kommandoen sendes til serveren efter forbindelse. Eksempel: /msg NickServ IDENTIFY konvirocks. Eksemplet gælder for netværket freenode, som kræver at brugere registrerer deres aliasser med et kodeord og brugernavn ved forbindelse. konvirocks er kodeordet for aliasset som angives under Identitet. Du kan indtaste mere end en kommando ved at skille dem ad med semikolon. +Markér dette hvis du ønsker at &konversation; automatisk skal forbinde til netværket sÃ¥ snart du Ã¥bner &konversation;. +Dette er en liste med &irc;-servere i netværket. Ved forbindelse til netværket, forsøger &konversation; at forbinde til den øverste server først. Hvis det mislykkes, forsøger den med den anden server. Hvis det mislykkes, forsøger den med den tredje, og sÃ¥ videre. I det mindste en server skal angives. Klik pÃ¥ en server for at markere den. +Brug disse knapper til at tilføje en server, redigere en markeret server eller slette en markeret server. Du kan ogsÃ¥ justere servernes rækkefølge, og pÃ¥ den mÃ¥de rækkefølgen af forbindelsesforsøg. +Valgfrit. Dette er en liste over kanalerne du automatisk gÃ¥r med i sÃ¥ snart &konversation; er forbundet til en server. Du kan lade den være tom hvis du ikke vil gÃ¥ med i nogen kanaler automatisk. +Brug disse knapper til at tilføje en kanal, redigere en markeret kanal eller slette en markeret kanal. Du kan ogsÃ¥ ændre rækkefølgen som du gÃ¥r med i kanalerne. + + + +UndgÃ¥ at blande servere pÃ¥ forskellige &irc;-netværk under samme netværk. UndgÃ¥ at indtaste samme server under to forskellige netværk. Ellers virker &konversation;s integration med adressbogen og overvÃ¥gning af online aliasser ikke rigtigt. + + + + +NÃ¥r du klikker pÃ¥ knappen Tilføj i feltet Servere, vises skærmen Tilføj server. + + + + Tilføj server + + + + + + + + + + + + + + Tilføj server + + + + + + + +Navnet eller IP-adressen pÃ¥ serveren. En liste med servere findes pÃ¥ irchelp.org. +Indtast portnummeret som kræves for at forbinde til serveren. For de fleste servere skal det være 6667. +Hvis serveren kræver et kodeord for at forbinde, sÃ¥ indtast dette. Lad det ellers være tomt. +Markér hvis du vil bruge SSL-protokollen (Secure Socket Layer) til at kommunikere med serveren. Det beskytter kommunikationen mellem din maskine og &irc;-servern, og gør den privat. Serveren skal understøtte SSL-protokollen for at det skal virke. I de fleste tilfælde, hvis serveren ikke understøtter SSL, mislykkes forbindelsen. + + + + + +NÃ¥r du klikker pÃ¥ knappen Tilføj i feltet GÃ¥ automatisk med i kanaler, vises skærmen Tilføj kanal. + + + + Tilføj kanal + + + + + + Tilføj kanal + + + + + +Indtast et kanalnavn. Glem ikke det indledende tegn #. Hvis kanalen kræver et kodeord for at gÃ¥ med, sÃ¥ indtast det, lad det ellers være tomt. + + + + + + +Liste over tilgængelige kanaler + +For at vise en liste med tilgængelige kanaler, vælges Vindue Kanalliste i hovedmenuen. Efter en advarselsskærm laves et nyt faneblad som hedder Kanalliste. + + + +Fanebladet med kanallisten. + + + + + + + + + + + + + + + + Fanebladet med kanallisten. + + + + + + + + +Indtast en filterstreng her. + +Her kan du begrænse kanallisten til de kanaler som har et minimalt eller maksimalt antal brugere. At vælge 0 deaktiverer det respektive kriterium. + +Klik her for at hente listen over kanaler fra serveren og tilpasse filtret. + +Den filtrerede liste med kanaler vises her. Bemærk at hvis du ikke bruger regulære udtryk, giver &konversation; en liste over alle kanaler hvis navn indeholder filterstrengen som du indskrev. Kanalnavnet behøver ikke begynde med strengen du skrev. + +Vælg en kanal som du vil gÃ¥ med i ved at klikke pÃ¥ den. Højreklik pÃ¥ kanalen for at fÃ¥ en liste med alle netadresser som nævnes i kanalens emne. + +Klik her for at gÃ¥ med i en kanal. Et nyt faneblad laves for kanalen. + + + + +Du skal undgÃ¥ at klikke pÃ¥ knappen Genopfrisk liste. De fleste servere har tusindvis af kanaler, og udførsel af dette giver høj belastning pÃ¥ serveren. Desuden kan det kræve flere minutter at udføre, afhængig af din netværksbÃ¥ndbredde. Hvis din klient er for langsom, kan serveren til og med afbryde forbindelsen til dig. + +Sommetider er der "hemmelige" kanaler pÃ¥ en server. SÃ¥danne kanaler kommer ikke pÃ¥ Kanallisten. Du kan stadigvæk gÃ¥ med i kanalerne hvis du kender til deres navn. Skriv i en hvilken som helst indtastningslinje, /join #kanalnavn. (Tegnet # kræves.) SÃ¥ laves et nyt faneblad for kanalen. Hvis du gÃ¥r med i en kanal og aliaspanelet kun har dit alias, betyder det at kanalen ikke fandtes tidligere. Serveren oprettede kanalen, og du er operator. I dette tilfælde vil du formodentlig lukke kanalen ved at skrive: /part. + + + + + + +En oversigt over hovedskærmen + +Lad os lære mere om hovedskærmen. Skærmen vises nedenfor med en kanals faneblad valgt. + + + +Hovedskærmen. + + + + + + + + + + + + + + + + + + + Hovedskærmen + + + + + + + + +Dette kaldes indtastningslinjen. Den vises kun hvis det nuværende faneblad er en kanal. For at sende en meddelelse til alle i kanalen, skrives meddelelsen og der trykkes pÃ¥ &Enter;. Meddelelsen samt alle andres meddelelser ses i kanalvinduet ovenfor. Hver meddelelse indledes med tiden og brugerens alias. + + Du kan ogsÃ¥ indsætte tekst fra klippebordet. Hvis indsat tekst har mere end én line (newlines), kommer en dialog frem. Redigér teksten som ønsket og klik pÃ¥ O.k. + + Hvis den indsatte tekst er længere end 256 tegn, eller den indeholder mere end en linje, kommer en advarselsbesked frem, der fortæller dig at store indsendelser kan forÃ¥rsage nulstilling af forbindelsen og oversvømmelse. Du kan stadig fortsætte med din meddelelse, men det er en dÃ¥rlig idé at gøre det, da oversvømmelse vil irritere andre brugere pÃ¥ kanalen, eller din forbindelse til serveren kan blive afbrudt. Det er bedre at sende beskederne i mindre stumper. + + + + En konvention som bruges i mange kanaler er at indlede meddelelser rettede til en bruger med deres alias. &konversation; sørger for en bekvem funktion til at komplettere aliasser. Begynd med at skrive brugerens alias, tryk derefter pÃ¥ Tab. &konversation; kompletterer sÃ¥ resten af brugerens alias, fulgt af et kolon. For at brugerindstille kompletteringsegenskaben, vælges Opsætning Indstil Konversation fra hovedmenuen, udvid Opførsel, klik pÃ¥ Generelt, og klik pÃ¥ feltet Kompletteringstilstand. + + Du kan ogsÃ¥ indtaste &irc;-kommandoen her ved først at skrive / fulgt af en gyldig &irc;-kommando. Se Ofte brugte &irc;-kommandoer. PÃ¥ visse servere kan du skrive /help for at fÃ¥ en liste over tilgængelige kommandoer, eller skrive /help kommando for at fÃ¥ hjælp med en angiven kommando. + + + +Du kan gÃ¥ med i yderligere servere og kanaler. Hver server og kanal fÃ¥r et separat faneblad her. For at vise en liste over tilgængelige kanaler, se Liste over tilgængelige kanaler. For at gÃ¥ med i en kanal, skriv: /join #kanalnavn pÃ¥ inddatalinjen. (Tegnet # kræves.) For at forlade en kanal, skrives blot /part. Faneblade vises ogsÃ¥ her hvis du Ã¥bner en Kanalliste, deltager i en privat konversation (query), Ã¥bner &URL;-indfangeren, eller Ã¥bner en eller flere Terminaler. For at skifte til en anden skærm, klikkes pÃ¥ det tilsvarende faneblad, eller musehjulet bruges til at gÃ¥ gennem fanebladene cyklisk. + +For at indstille andre tilvalg for faneblade, vælg Opsætning Indstil Konversation i hovedmenuen, udvid Opførsel og klik pÃ¥ Generelt. + + + +Disse lys vil blinke nÃ¥r der er noget du ikke har set i dette faneblad. Lyset vil blinke langsommere nÃ¥r de eneste ikke sete beskeder er join, part, quit, eller alias ændringer. De blinker hurtigere hvis der er ikke sete regulære beskeder. Farverne er følgende: + + Kanal + + + Servermeddelelse, Kanalliste eller &URL;-indfangning + + + Terminal eller DCC Status. + + + Privat meddelelse (forespørgsel). + + + + +Klik her for at lukke nuværende faneblad. Hvis et kanalfaneblad lukkes forlades kanalen. Lukkes et faneblad med servermeddelelser forlades alle kanaler som du var gÃ¥et med i, alle Ã¥bne spørgsmÃ¥lskanaler pÃ¥ serveren lukkes og serveren afbrydes. + +Klik pÃ¥ knappen for at ændre dit eget alias. Det vises kun nÃ¥r nuværende faneblad er en kanal. Vælg Opsætning Indstil Konversation i hovedmenuen, udvid Opførsel, klik pÃ¥ Chat-vindue og afmarkér feltet Vis felt til at ændre eget alias for at skjule knappen. + +Kanalemnet vises her. Hold musen stille over emnet for at se det lange emne. Du kan ændre emnet ved at klikke pÃ¥ knappen til venstre for emnet. Vælg Opsætning Indstil Konversation i hovedmenuen, udvid Opførsel, klik pÃ¥ Chat-vindue og afmarkér feltet Vis kanalemne for at skjule kanalemnerne. + +Disse knapper viser nuværende status af kanaltilstande. En knap er trykket ned hvis tilstanden er aktiveret. Hvis du har de rette privilegier kan du ogsÃ¥ ændre kanaltilstande ved at klikke pÃ¥ knapperne, eller ved at klikke pÃ¥ knappen til venstre for emnet. Vælg Opsætning Indstil Konversation i hovedmenuen, udvid Opførsel, klik pÃ¥ Chat-vindue og afmarkér feltet Vis kanaltilstandsknapper for at skjule kanaltilstandsknapperne. + + +Dette kaldes alias panelet. Det vises sÃ¥ snart det nuværende faneblad er en kanal. Det lister aliasserne for alle brugere som er gÃ¥et med i kanalen, inklusive dig selv. Hold musen stille over et alias for at vise yderligere information om brugeren. Du kan ændre hvordan ikoner vises ved siden af hvert alias ved at ændre ikontemaet for alias. Se Indstil aliasstemaer for mere information. Temaet Big Bullets, som vises pÃ¥ skærmen ovenfor, bruger følgende ikoner: + + + normale brugere + + + + brugere med stemme. Brugeren kan tale i en modereret kanal. + + + + deloperator for kanalen + + + + operator for kanalen + + + + ejer af kanalen + + + + kanaladministrator + + + + + +Derudover, hvis en bruger er borte, vil et lille rødt kryds blive tegnet i hjørnet af ikonen. + +Klik med højreknappen pÃ¥ et hvilket som helst alias for at vise en sammenhængsafhængig menu med handlinger som du kan udføre med aliasset. Du kan for eksempel sende en fil til aliasset. Dette er ogsÃ¥ stedet hvor du kan knytte et alias til en kontakt i din adressebog. + +For at skjule alias panelet, vælg Vindue Skjul aliasliste i hovedmenuen. + + + +Disse kaldes Hurtigknapper. Normalt vises de ikke. For at vise dem, se Indstil hurtigknapper. Du kan indstille deres definitioner til hvilken som helst kommando du vil. + + + + +Bemærk: Du kan kontrollere hvordan meddelelser vises for meddelelser som vises i kanal- og forespørgselsfaneblade. Du kan for eksempel ændre meddelelsens farve, afspille en lyd nÃ¥r en meddelelse som indeholder en streng modtages, eller svare pÃ¥ meddelelser automatisk. Se Fremhævning af meddelelser for mere information. + +Bemærk: Kanalnavne begynder sommetider med &, +, eller !. Det første tegn i et kanalnavn afgør typen af kanal (RFC 2811) ifølge følgende: # - Sædvanlige kanaler. ! - Sædvanlige kanaler. & - Lokal. Kanaler som man kun kan gÃ¥ med i fra serveren som er vært for kanalen. Alle andre kanaler kan man gÃ¥ med i fra en hvilken somhelst server pÃ¥ netværket. + - Kanaler som ikke understøtter kanaltilstande. Det betyder at ingen tilstande er aktiverede, med undtagelse af kanalflaget 't' som er aktiveret. Kanalnavne kan være op til 50 tegn lange og indeholde alle tegn undtagen mellemrum, kommategn og Ctrl+G. + + + + + + +Hurtigforbind + +Sommetider ønsker du at forbinde til en server uden at gÃ¥ gennem besværet med at oprette en ny server i Serverlisten. + +Vælg Fil Hurtigforbindelse i hovedmenuen. Skærmen Hurtigforbindelse vises. + + + +Hurtigforbins-skærmen. + + + + + + Hurtigforbind-skærmen + + + + + +Indtast serveradressen i feltet Server-vært box, dit ønskede &nickname; i Nick-feltet, og klik pÃ¥ Forbind-kanppen. NÃ¥r &konversation; er forbundet til serveren, indtastes kommandoen /join #channelname for at gÃ¥ med i en kanal. + + + + + + +Ofte brugte &irc;-kommandoer + +Det følgende er en kort liste over ofte brugte &irc;-kommandoer. Se RFC 2812 for en fuldstændig liste over alle kommandoer, eller besøg irchelp.org. For en liste af kommandoer der behandles specielt af &konversation;, se Konversations kommandoer + + + + + +/help +Giver en liste over kommander tilgængelige pÃ¥ denne server. Understøttes ikke af alle servere. + + + +/help kommando +Sørger for hjælp for kommando. Understøttes ikke af alle servere. + + + +/join #kanal +GÃ¥r med i #kanal. Hvis kanalen ikke allerede findes, oprettes den og du bliver kanaloperator. + + + +/part +Forlader nuværende kanal og lukker kanal-fanebladet . + + + +/part #kanal +Forlader #kanal og lukker det tilsvarende kanal-faneblad. Synonym for /leave. + + + +/me meddelelse +Sender meddelelse til kanalen ud for dit alias. Hvis dit alias for eksempel er Tux, ville meddelelsen Tux brygger en kop te vises ved at skrive /me brygger en kop te. Hvis der ikke er filtre for denne slags meddelelser, ser alle brugere dem. Denne slags meddelelser bruges oftest til at udtrykke ikke-verbal information, sÃ¥som din følelsesmæssige tilstand lige nu, eller hvad du fysisk sysler med. Hvis du forlader maskinen en kort stund, sÃ¥ brug kommandoen /away i stedet for. + + + +/away meddelelse +Hvis nogen forsøger at sende dig en privat meddelelse eller indbyde dig til en kanal, vil de blive fortalt at du er borte fra din maskine med msg. + + + +/away +Annullerer en /away meddelelse kommando. + + + +/query alias +Opretter et nyt faneblad med brugerens alias for en privat konversation, almindeligvis kendt pÃ¥ &irc; som en forespørgsel. Alt som skrives her ses kun hos dig og din partner. + + + +/msg alias meddelelse +Sender meddelelse til brugeren med alias alias. Kun alias ser meddelelsen. Brug /query til længere konversationer. + + + +/invite alias +Indbyder brugeren med alias alias til at gÃ¥ med i en kanal. Kommandoen er især nyttig hvis kanalen kun er Ã¥ben for indbudte. + + + + + + + + + + +Private konversationer (forespørgsler) + +En privat konversation er en som kun du og en anden person kan se. Private konversationer kalde "forespørgsler" i &konversation;. For at starte en privat konversation, skrives /query alias pÃ¥ en hvilken som helst indtastningslinje, hvor alias er alias pÃ¥ personen som du vil tale med. Du kan ogsÃ¥ klikke med højre museknap i aliaspanelet og vælge Ã…bn forespørgsel. Et nyt faneblad oprettes.. Tilkendegiv dig ved at sende en meddelelse. + +Forespørgsler er nøjagtig ligesom andre kanaler, bortset fra at kun du og den anden person kan deltage i kanalen. + +For at forlade forespørgslen, lukkes blot fanebladet. Bemærk dog at hvis den anden person sender en meddelelse til i forespørgslen, Ã¥bnes fanebladet igen. + +For at forlade alle forespørgsler, vælges Vindue Luk alle Ã¥bne forespørgsler i hovedmenuen, eller tryk pÃ¥ F11. + +NÃ¥r en anden Ã¥bner en forespørgsel til dig, laver &konversation; et nyt faneblad med deres alias. Hvis du ikke vil tale med personen, sÃ¥ luk fanebladet. + + + + + + +Indstil pÃ¥mindelser + +PÃ¥mindelser er handlinger som &konversation; udfører sÃ¥ snart en begivenhed indtræffer. Antag at du lader &konversation; køre, men minimeret eller skjult bagved andre programvinduer pÃ¥ desktoppen. Hvis nogen vil kommunikere med dig, eller hvis en ven gÃ¥r med i en kanal, vil du gerne have det at vide. Bekendtgørelser dørger for dette. + +For at indstille pÃ¥mindelser, vælges Indstillinger Indstil bekendtgørelser i hovedmenuen. Skærmen til opsætning af bekendtgørelser vises. + +Klik med det samme pÃ¥ knappen Flere valgmuligheder. + + + +Skærmen til opsætning af bekendtgørelser. + + + + + + + + + + + + + Skærmen til opsætning af bekendtgørelser. + + + + + + + + +Klik her for at vælge en begivenhed. + +Markér de typer af pÃ¥mindelser som du vil skal vises nÃ¥r begivenheden indtræffer. (Brug opgavelinjen til underretning om ny begivenhed fÃ¥r ikonen i opgavelinjen til at blinke nÃ¥r begivenheden indtræffer.) + + + + +Gentag ved at vælge en anden begivenhed og afkrydse ønsket pÃ¥mindelse. NÃ¥r du har indstiller alle ønskede pÃ¥mindelser, klik sÃ¥ pÃ¥ knappen Anvend. + + + + +NÃ¥r du har indstillet dine pÃ¥mindelser, kan du aktivere eller deaktivere alle meddelelseshandlinger her. Du kan for eksempel vælge at afspille en lyd sÃ¥ snart dit alias nævnes i en meddelelse. NÃ¥r du er ved computeren kan du deaktivere lyd, men mens du er væk fra maskinen men i nærheden, kan du aktivere lyden sÃ¥ den kan fÃ¥ din opmærksomhed. + + + + +Du kan ogsÃ¥ selv blive underrette nÃ¥r nogle nævner dit alias i en meddelelse med &konversation;s fremhævningsfunktion. + + + + + + +OvervÃ¥g hvem der er pÃ¥ nettet + +&konversation; holder dig informeret om dine venner er forbundet til &irc;-netværket eller ej. + +Du kan tilknytte online aliasser til kontaktindgange i adressebogen. NÃ¥r du gør det, skrives aliasset og &irc;-netværket hvor aliasset er forbundet til ind i adressebogens kontakt. &irc;-netværket opbevares fordi aliasser er entydige i et enkelt &irc;-netværk. Aliasser i to forskellige &irc;-netværk svarer ikke nødvendigtvis til samme person, men samme alias pÃ¥ to forskellige servere i samme &irc;-netværk svarer til samme person. + +Dette er grunden til at det er vigtigt at bruge samme netværk for alle servere i samme &irc;-netværk, nÃ¥r netværk, servere og kanaler til automatisk at gÃ¥ med i defineres. + +Du kan ogsÃ¥ definere aliasser som du vil overvÃ¥ge som ikke findes i din adressebog. I dette tilfalde har hvert alias ogsÃ¥ et tilknyttet &irc;-netværk. Se nedenfor. + +For at aktivere aliasovervÃ¥gningsfunktionen, vælges Vindue OvervÃ¥gede aliasser i hovedmenuen. Skærmen OvervÃ¥gede aliasser vises. + + + + OvervÃ¥gede online aliasser. + + + + + + + + + + + + + + + + OvervÃ¥gede online alias + + + + + + + +Aliasserne i overvÃ¥gningslisten og ogsÃ¥ aliasset som hører sammen med indgange i adressebogen angives her. De angives under tilhørende &irc;-netværk. Hvis ingen alias angives, har du enten ikke specificeret noget alias at overvÃ¥ge, eller du har brug for at aktivere funktionen for aliasovervÃ¥gning (se nedenfor). Ekspandér hvert online alias for at se en liste med kanaler som aliasset er gÃ¥et med i. Ikonerne før hver kanal er de samme som ikonerne som vises i aliaspanelet pÃ¥ skærmene med kanaler. +Informationen som er kendt om aliasset vises her. NÃ¥r skærmen OvervÃ¥gede online aliasser først vises, er informationen tynd. Hvert ottende sekund, sendes automatisk kommandoen WHOIS til serveren for at bede om information om aliasser som ikke har nogen information. Dette fortsætter indtil alle aliasser har information. +Aliasser som ikke er online pÃ¥ et af &irc;-netværkerne du er forbundet til er under Offline i listen. +Aliasser som hører sammen med en kontaktindgang i din adressebog har denne ikon () ved siden af informationen. +Brug disse knapper til at tilknytte et alias til en kontakt i din adressebog, fjerne en tilknytning, eller Ã¥bne adressebogen for at redigere kontaktinformationen. Se &kaddressbook;-hÃ¥ndbogen for yderligere instruktioner om hvordan man bruger &kde;'s adressebog. + + + +For at tilføje yderligere aliasser at overvÃ¥ge, klik pÃ¥ knappen Redigér overvÃ¥gningsliste. SÃ¥ vises skærmen OvervÃ¥gede aliasser. + + + +OvervÃ¥gede aliasser + + + + + + + + + + + + + + + OvervÃ¥gede aliasser + + + + + + + + +Afkryds dette felt for at aktivere funktionen aliasovervÃ¥gning. + +Hvis du ønsker at skærmen OvervÃ¥gede online aliasser automatisk skal vises nÃ¥r du starter &konversation;, sÃ¥ markér dette felt. + +Aliasserne for pÃ¥ brugerne som du vil overvÃ¥ge er pÃ¥ denne liste. Hvert alias har et tilknyttet &irc;-netværk. + +Klik pÃ¥ disse knapper for at tilføje eller fjerne at alias fra listen. + +Funktionen OvervÃ¥gede aliasser virker ved at periodisk at spørge serveren. Dette felt angiver hvor ofte dette sker. UndgÃ¥ tal mindre end 20 sekunder, eftersom det forÃ¥rsager unødig stor belastning pÃ¥ serveren. + +PÃ¥ skærmen OvervÃ¥gede online aliasser ovenfor, kan du dobbeltklikke pÃ¥ et hvilket som helst alias, sÃ¥ sendes denne kommando til serveren. %u erstattes med aliasset. %n er krævet i slutningen af kommandoen. + + + + +Klik pÃ¥ knappen O.k. nÃ¥r du er færdig med at tilføje eller fjerne aliasser. + +Bemærk: NÃ¥r du viser skærmen OvervÃ¥gede aliasser, kan det tage et stykke tid inden nogen aliasser vises, indtil &konversation; har spurgt serveren. Normalt lader du skærmen OvervÃ¥gede aliasser være i gang. + +&konversation; viser ogsÃ¥ meddelelser i alle kanaler sÃ¥ snart en bruger fra din OvervÃ¥gede aliasser forbindes til eller afbryder fra serveren. Meddelelsen ser sÃ¥dan her ud: + +[17:52] [Underretning] psn er online (irc.kde.org). + + + + + + +Fremhævning af meddelelser + +Du kan kontrollere hvordan meddelelser vises pÃ¥ kanal- og forespørgselsskærme. + +For at aktivere fremhævelsesfunktionen, vælges Indstillinger Indstil &konversation; i hovedmenuen. Skærmen Redigér indstillinger vises. + + + +Fremhævningsskærmen. + + + + + + + + + + + + + + + + + + + Fremhævelsesskærmen + + + + + + + + +Klik her for at vælge skærmen Fremhævelse. +Klik her for at tilføje et nyt punkt til Fremhævningslisten. NÃ¥r et punkt i listen markeres, kan du redigere det i feltet nedenfor. +Indtast et strengmønster her. Alle modtagne meddelelser som matcher mønstret, noget sted i meddelelsen, aktiverer fremhævning af meddelelsen. Hvis du har værktøjet &kde;editor for regulære udtryk installeret pÃ¥ systemet, er knappen til højre aktiveret. Klik for at vise editoren, som hjælper dig med at oprette mere komplicerede mønstre. (&kde;editor for regulære udtryk er en del af pakken kdeutils.) +Hvis mønstret findes i en meddelelse, vises hele meddelelsen med farven du vælger her. +Hvis du vil kan &konversation; afspille en lyd nÃ¥r mønstret matches. Klik pÃ¥ knappen for at vælge en lydfil at afspille. Klik pÃ¥ testknappen for at høre lyden. +Hvis du ønsker at &konversation; automatisk skal sende en svarmeddelelse nÃ¥r mønstret matches, skriv meddelelsen her. Brug denne funktion med forsigtighed eftersom du kan irritere &irc;-brugere med for meget snak hvis du ikke er forsigtig. Du kan ogsÃ¥ indtaste &irc;- eller &konversation;-kommandoer her. +Hvis du har indstillet lyd for nogle af dine fremhævninger, kan du deaktivere alle ved at afmarkere dette felt. +Hvis du markerer dette flet, og en eller anden nævner dit alias i en meddelelse, vises meddelelsen med farven som du vælger til højre. +Normalt gælder fremhævning ikke for meddelelser du skriver ind. Hvis du vil fremhæve meddelelser du skriver ind, markeres dette felt og en farve vælges til højre. + + + + + + + + + +Indstil meddelelser pÃ¥ skærmen (&osd;) + +Meddelelser pÃ¥ skærmen (OSD) er en unik funktion i &konversation;. NÃ¥r &osd; er aktiveret, vises kanalmeddelelser pÃ¥ desktoppens skærm, ogsÃ¥ selvom &konversation; er minimeret. Her er et eksempel pÃ¥ &osd; i funktion. Meddelelsen længst oppe til venstre pÃ¥ skærmen er fra &konversation;, som kører minimeret i statusfeltet. + + + +Eksempel pÃ¥ meddelelser pÃ¥ skærmen + + + + + + Eksempel pÃ¥ meddelelser pÃ¥ skærmen + + + + + +For at aktivere meddelelser pÃ¥ skærmen, vælges Indstillinger Indstil &konversation; i hovedmenuen. Skærmen Redigér indstillinger vises. + + + +Meddelelser pÃ¥ skærmen. + + + + + + + + + + + + + + + Meddelelser pÃ¥ skærmen + + + + + + + + +Klik her for at ekspandere punktet PÃ¥mindelse. + +Klik her for at vælge skærmen Meddelelser pÃ¥ skærmen. + +Markér dette felt for at aktivere meddelelser pÃ¥ skærmen. + +Klik pÃ¥ denne knap for at vælge en skrifttype for meddelelser pÃ¥ skærmen. (Bemærk: Ikke alle skrifttyper virker. Det er kendt at Luxi Sans 22 og Impact 22 virker.) + +Markér feltet her for at vælge typerne af meddelelser som du vil skal vises pÃ¥ skærmen, og klik derefter pÃ¥ knappen Anvend. + + + + + + + + + +Send farvelagte meddelelser + +Du kan tilføje farve til meddelelser du sender i hvilken som helst kanal. Begynd med at skrive meddelelsen i indtastningslinjen for hvilken som helst kanal. Klik sÃ¥ pÃ¥ knappen Indsæt &irc;-farve knappen Indsæt &irc;-farve eller vælg Indsæt &irc;-farve i hovedmenuen. Skærmen &irc;-farvevælger vises. + + + +Skærmen &irc;-farvevælger. + + + + + + Skærmen &irc;-farvevælger + + + + + +Vælg en farve og klik pÃ¥ O.k. Fortsæt med at indtaste meddelelsen pÃ¥ indtastningslinjen. For at ændre farve igen, klikkes pÃ¥ knappen Indsæt &irc;-farve. Vælg en anden farve og klik pÃ¥ O.k. + + + + + + +Indstilling af &nickname;-temaer + +Du kan ændre ikonerne som vises ved siden af alias i aliaspanelet i kanalfanablade. For at ændre aliastema, vælg Opsætning Indstil Konversation i hovedmenuen. Skærmen Redigér indstillinger vises. Klik pÃ¥ Udseende for at udvide den, klik derefter pÃ¥ Temaer for at vis skærmen Temaer. + + + +Temaer-kærmen. + + + + + + + + + + + + + + Temaer-skærmen + + + + + + + + +Klik her for at vælge skærmen Temaer. +Vælg et tema. +Eksempelikoner vises her med det valgte tema. +Hvis du har hentet et aliastema far et andet sted, sÃ¥ klik for at installere det. + + + + + + + + + +Indstil hurtigknapper + +Du kan aktivere funktionen at vis hurtigknapper pÃ¥ hovedskærmen. SÃ¥ vises otte hurtigknapper. For at vise hurtigknapperne, vælg Opsætning Indstil Konversation i hovedmenuen. Skærmen Redigér indstillinger vises. Klik pÃ¥ Udseende for at udvid den, og klik sÃ¥ pÃ¥ Chat-vindue. Markér feltet Vis hurtigknapper og klik pÃ¥ O.k. + +Knapperne kan indstilles som du synes til at udføre &irc;-kommandoer som ofte bruges. For at indstille hurtigknapperne, vælg Opsætning Indstil Konversation i hovedmenuen. Skærmen Redigér indstillinger vises. Klik pÃ¥ Udseende for at udvide den, og klik sÃ¥ pÃ¥ Hurtigknapper for at vise skærmen Hurtigknapper. + + + +Skærmen hurtigknapper + + + + + + Skærmen hurtigknapper + + + + + +Der er otte hurtigknapper. Klik pÃ¥ en indgang for at ændre den. Søjlen Knapnavn er navnet som vises pÃ¥ knappen pÃ¥ hovedskærmen. Hold navnene korte. Søjlen Knapbegivenhed er handlingen som udføres nÃ¥r du klikker pÃ¥ hurtigknappen. Vink til at oprette handlinger gives pÃ¥ skærmen. + +Klik pÃ¥ O.k. for at gøre ændringerne færdige. + +Eksempel: + + + + + Knapnavn: Meddelelse + + Knapbegivenhed: Msg %u (der er et mellemrum efter %u) + + + + + +For at bruge denne knap pÃ¥ hovedskærmen, klikkes pÃ¥ et alias i aliaspanelet, og derefter klikkes pÃ¥ knappen. /MSG vises pÃ¥ indtastningslinjen fulgt af det valgte alias. Indtast en meddelelse som du vil sende til personen og tryk sÃ¥ pÃ¥ &Enter;. Meddelelsen sendes til brugeren. Kun denne bruger vil se meddelelsen. + +Bemærk: Du kan ikke tilføje eller fjerne hurtigkanpper. + + + + + + +Sende og modtage filer + +Du kan sende filer via &irc; til andre brugere der er forbundet, eller ogsÃ¥ kan de sende filer til dig. + + +Advarsel: Ã…bn aldrig en fil nogen sender til dig hvis det ikke er en pÃ¥lidelig kilde. Det kan være en virus. + + +For at sende en fil til en i en kanal, klikkes med højre museknap pÃ¥ personens alias i aliaspanelet pÃ¥ hovedskærmen. Vælg Send fil. En dialog kommer frem hvor du kan vælge filen som skal sendes. Derefter vises et nyt faneblad med DCC Status. + + + +Fanebladet DCC Status + + + + + + + + + + + + + Fanebladet DCC Status + + + + + + + + +Modtagerens alias og filnavnet vises her. + + +Søjlen Status angiver status for sendingen eller modtagelsen af filen som følger: + + + + + + Tilbyder + + + Du forsøger at sende en fil til modtageren. &konversation; venter pÃ¥ at modtageren skal acceptere filen. + + + + + Forbinder + + + &konversation; forsøger at oprette en forbindelse med den anden ende. + + + + + Sender + + + &konversation; sender filen til den anden ende. + + + + + Modtager + + + &konversation; modtager filen fra den anden ende. + + + + + Færdig + + + Filen er overført uden problemer. + + + + + Hænger + + + Overførslen er startet men gÃ¥r for øjeblikket ikke videre. + + + + + Afbrudt + + + Enten klikkede du pÃ¥ knappen Afbryd, eller ogsÃ¥ afbrød den anden person overførslen. + + + + + Mislykket + + + En fejl opstod og overførslen lykkedes ikke. + + + + + I kø + + + Overførslen er blevet accepteret og vil begynde nÃ¥r programmellet pÃ¥ den modtagende ende anerkender det. + + + + + SlÃ¥ op + + + &konversation; forsøger at hente afsenderens IP-adresse. + + + + + Genoptager + + + NÃ¥r en overførsel begynder men filen allerede findes pÃ¥ brugerens system, vil brugeren blive spurgt Filen eksisterer allerede. Genoptag overførsel? Denne status indikerer at brugeren genoptog overførslen. + + + + + + + + +NÃ¥r nogen vil sende en fil til dig, oprettes fanebladet DCC Status (hvis det ikke allerede er der). Klik pÃ¥ fanebladet DCC Status for at vise det. Klik pÃ¥ filen for at markere den, og klik derefter pÃ¥ denne knap for at acceptere filen, sÃ¥ begynder overførslen. Bemærk: Du kan indstille &konversation; til automatisk at acceptere overførsler fra andre personer ved at vælge Indstillinger Indstil Konversation DCC-indstillinger i hovedmenuen. + + + + + +Hvis du har problemer med at sende eller modtage filer, sÃ¥ er det mÃ¥ske din brandmur der blokerer DCC-portene. Se SpørgsmÃ¥l og svar. + + + + + + +Integration med &kaddressbook;. + +Du kan tilknytte ethvert &nickname;til en kontakt i KAddressBook. NÃ¥r du har gjort dette vil &konversation; vise kontaktens rigtige navn i parentes efter &nickname; i Alias-Panelet. + +For at tilknytte et alias til en kontakt i adressebogen, klikkes med højreknappen pÃ¥ personens alias i aliaspanelet pÃ¥ hovedskærmen. Vælg Hvem-er-det for at vise information som hjælper dig til at afgøre brugerens rigtige navn. Klik derefter med højreknappen pÃ¥ personens alias og vælg Adressebogstilknytninger. En undermenu vises. Hvis aliasset ikke allerede er tilknyttet en kontakt, vælges Opret ny kontakt. Skærmen Redigér kontakt vises. + + + +Skærmen Redigér kontakter + + + + + + + + + + + + + Skærmen Redigér kontakter + + + + + + + + +Aliasset udfyldes automatisk her. Hvis du kender personens rigtige navn, erstattes aliasset med det rigtige navn. + + +Bemærk at aliasset ikke vises her. I stedet, ... + + + +Klik her. Fanebladet IM-adresser-vinduet kommer frem. + + + + + + + Vinduet IM-adresser. + + + + + + Vinduet IM-adresser. + + + + + +Bemærk at &konversation; udfylder aliasset for dig med protokollen &irc;. + +Se &kaddressbook;'s hÃ¥ndbog for yderligere instruktioner om hvordan man bruger &kde;s adressebog. + +Udfyld mulig yderligere information om aliasset du kender til og klik pÃ¥ O.k. Personens rigtige navn vises i parenteser foran aliasset i Aliaspanelet i &konversation;. Det rigtige navn vises ogsÃ¥ nÃ¥r musen holdes stille over aliasset. + +SÃ¥ snart et alias er knyttet sammen med en kontakt i adressebogen, kan du højreklikke pÃ¥ personens alias i Aliaspanelet og redigere den tilknyttede kontakt, knytte aliasset sammen med en anden kontakt, eller fjerne tilknytningen. + +Hvis du har tilknyttet et alias til en kontakt, og brugeren ændrer sit alias mens du kører &konversation;, tilknyttes det nye alias automatisk til kontakten, og desuden beholdes den oprindelige tilknytning. + +Hvis du knytter et alias i &irc; til en kontakt i Kopete, vises ogsÃ¥ tilknytningen i &konversation; og modsat. + +Bemærk: Det er muligt at markere mere end et alias i Aliaspanelet, klik med musens højre knap, og udfør flere tilknytninger. + + + + + + +Indfangning af &URL;'er fra meddelelser + +Brugere sender ind imellem &URL;'er for interessante steder eller andre ressourcer pÃ¥ nettet, i hvilken som helst kanal. Du kan dobbeltklikke pÃ¥ alle sÃ¥danne &URL;'er sÃ¥ starter &konversation; programmet som hører sammen med &URL;'en. Programmet som startes afhænger af &MIME;-typen som &URL;'en har. For eksempel aktiveres din almindelige browser for en &URL; som begynder med http:, og viser den. Hvis &URL;'en ruller forbi pÃ¥ skærmen, kan det være svært at finde den igen. &konversation; kan gemme en bekvem liste med alle &URL;'er for dig. For at aktivere denne funktion, vælges Vindue &URL;-indfangning i hovedmenuen. Et nyt faneblad som hedder &URL;-indfangning laves. + + + +Fanebladet &URL;-indfangning. + + + + + + + + + + + + + + + + Fanebladet &URL;-indfangning. + + + + + + + + +Dette er listen med &URL;'er som er set siden du startede &konversation;. Søjlen Alias er alias pÃ¥ personen som sendte &URL;'en. Hvis alias er blankt, blev &URL;'en vist i fanebladet Servermeddelelser. (&URL;'er som vises i meddelelser for at gÃ¥ med i eller forlade kanaler er ikke pÃ¥ listen.) Klik pÃ¥ en &URL; for at markere den. + +Klik her for at aktivere programmet som hører sammen med den markerede &URL;. Programmet som startes afhænger af &MIME;-typen som &URL;'en har. For eksempel aktiveres din almindelige browser for en &URL; som begynder med http:, og viser netsiden. For netsider kan du ogsÃ¥ specificere den browser der skal bruges. + +Klik her for at kopiere markeret &URL; til &kde;'s klippebord. + +Klik her for at slette markeret &URL; fra listen. + +Klik her for at gemme listen med &URL;'er i en fil. + +Klik her for at rydde listen. + + + + + + + + + +Opsætning af din foretrukne browser + +NÃ¥r du klikker pÃ¥ en fremhævet &URL; hvorsomhelst i &konversation;, vil den starte standardprogrammet i &kde; tilknyttet &MIME;-typen for denne &URL;. For eksempel, nÃ¥r der klikkes pÃ¥ en &URL; der begynder med http, startes &konqueror; for at vise netsiden. Du kan angive et andet program end &kde;'s standard. For eksempel, kan du bruge Mozilla i stedet for. + +For at vælge en anden browser, vælges Opsætning Indstil &konversation; i hovedmenuen. Skærmen Redigér indstillinger vil sÃ¥ komme frem. + + + +Browser-skærmen + + + + + + + + + + + + + Browser-skærmen + + + + + + + + +Klik her for at vise skærmen Browser. + +Klik her for at angive at du ønsker at bruge en selvvalgt browser. + +Indtast kommandoen til at starte din ønskede browser. NÃ¥r du klikker pÃ¥ en &URL; vil %u blive erstattet med &URL;'en. + + + + +Vink: (kun for &UNIX;-systemer) Standardkommandoen er mozilla '%u', hvilket vil starte en ny udgave af Mozilla hver gang du klikker pÃ¥ en &URL;. Hvis du foretrækker at Mozilla viser netsiden i et nyt faneblad af en allerede-kørende udgave, sÃ¥ lav en fil der indeholder følgende: + + +#!/bin/sh +mozilla -remote "openURL($@, new-tab)" || exec mozilla "$@"; + + + +Navngiv filen moz, placér den i din PATH, og gør den kørbar (chmod a+x moz). Skriv sÃ¥ moz '%u' for browser-kommandoen i skærmen ovenfor. + +Bemærk: Browser-opsætningen kommer ikke til at gælde mailto: &URL;'er. mailto: &URL;'er starter altid &kde;s standardprogram. + +Klik pÃ¥ Anvend for at gemme dine ændringer. Du skal forbinde til hver server igen for at alle ændringer skal fÃ¥ virkning. Den nemmeste mÃ¥de at gøre det er at afslutte &konversation; og starte forfra. + + + + + + +Markering af kanaler og forespørgselslogger + +Du kan indsætte en markering i channel og query skærmene for at hjælpe dig til hurtigt at finde information. For at gøre dette vælg Indsæt Huskelinje i hovedmenuen, eller tryk pÃ¥ &Ctrl;R. En linje vil sÃ¥ komme frem for neden af teksten pÃ¥ skærmen. Linjen vil rulle med resten af teksten pÃ¥ skærmen. + +For at fÃ¥ en Huske-linje til at blive indsat i alle kanaler og spørgsmÃ¥l samtidigt, vælges Indstillinger Indstil Konversation i hovedmenuen, ekspandér Opførsel, klik pÃ¥ Chat-vindue og markér feltet Vis en huske-linje for alle kanaler og spørgsmÃ¥l. + +For at fÃ¥ &konversation; til automatisk at indsætte en huske-linje sÃ¥ snart du sender kommandoen /away meddelelse, se Opsætning af din identitet. + + + + + + +Logning + +Hvis logning er aktiveret, logger &konversation; hver server, kanal og privat konversation (spørgsmÃ¥l). Hver session opbevares i en logfil pÃ¥ disken. NÃ¥r du Ã¥bner samme session igen, tilføjer &konversation; til loggen. Loggen vokser til en grænse som du kan indstille (se nedenfor). NÃ¥r grænsen nÃ¥s, kasseres de ældste meddelelser. + +SÃ¥ snart du Ã¥bner en session igen, læses cirka de sidste 1024 tegn af foregÃ¥ende session fra slutningen af loggen og vises pÃ¥ skærmen. + +Mens sessionen er i gang, ruller meddelelser væk højst oppe pÃ¥ skærmen. Du kan rulle baglæns for at se disse meddelelser. Før eller siden, for at spare hukommelse, tages de ældste meddelelser væk fra skærmen. Dette kaldes for historikgrænsen. Meddelelser som forsvinder fra skærmen pÃ¥ grund af denne historikgrænse er stadigvæk tilgængelige i logfilen, hvis logning er aktiveret. + +For at vise logfilen for en session, klikkes pÃ¥ sessionens faneblad for at gøre den til aktuel session og sÃ¥ vælges Vindue Ã…bn logfil i hovedmenuen. Et nyt faneblad Ã¥bnes som viser logfilen. + + + +Logfil + + + + + + + + + + + + + + + Logfil + + + + + + + +Meddelelser fra logfilen vises her. De ældste meddelelser er højst oppe og de seneste forneden. +Klik pÃ¥ denne knap for at gemme logfilen til en anden fil. +Klik for at opdatere visningen af logfilen. Mens du kigger pÃ¥ en logfil, tilføjes nye meddelelser i tilsvarende session ikke automatisk til visningen af logfilen. Brug denne knap for at kigge pÃ¥ de seneste meddelelser. +Klik for at rydde skærmen med logfilen og fjerne logfilen pÃ¥ disken. +Brug dette felt til at indstille maksimal størrelse pÃ¥ logfilen. Indstillingen fÃ¥r ingen effekt førend du genstarter &konversation;. Hver logfil kan have en separat indstilling. + + + +Historikgrænsen kan ændres ved at vælge Indstillinger Indstil &konversation; i hovedmenuen, og derefter ekspandere Opførsel og klikke pÃ¥ Chat-vindue. Feltet Historikgrænse vises sÃ¥ pÃ¥ skærmen. Hvis du indstiller den til Ubegrænset, tages meddelelser ikke bort fra skærmen. + +Du kan aktivere eller deaktivere logning og indstille andre logningstilvalg ved at vælge Indstillinger Indstil &konversation; i hovedmenuen, og derefter ekspandere Opførsel og klikke pÃ¥ Logning. + + + + + + +&konversation;'s kommandoer + +Følgende kommandoer tolkes af &konversation; og kan være forskellige fra almindelige &irc;-kommandoer. Flag indenfor forkantede parenteser er valgfrie. Flag adskilte med en lodret streg (|) er forskellige former af kommandoen. Kommandoer som ikke er pÃ¥ denne liste, sendes til serveren som de skrives ind. + + + + + +/me meddelelse +Sender meddelelse til kanalen ud for dit alias. Hvis dit alias for eksempel er Tux, ville meddelelsen Tux brygger en kop te vises ved at skrive /me brygger en kop te. Hvis der ikke er filtre for denne slags meddelelser, ser alle brugere dem. Denne slags meddelelser bruges oftest til at udtrykke ikke-verbal information, sÃ¥som din følelsesmæssige tilstand lige nu, eller hvad du fysisk sysler med. Hvis du forlader maskinen en kort stund, sÃ¥ brug kommandoen /away i stedet for. + + + +/ame meddelelse +Ligesom kommandoen /me ovenfor, undtagen at meddelelsen sendes til alle kanaler og forespørgsler som er Ã¥bne pÃ¥ alle servere du er tilsluttet i &konversation;. + + + +/join kanal [pwd] +GÃ¥r med i kanal. Hvis serveren tillader det, og hvis kanalen ikke allerede findes, laves den og du bliver kanaloperator. Hvis kanalen kræver et kodeord for at gÃ¥ med, angives det som kodeord. De fleste kanalnavne begynder med #. + + + +/j kanal [pwd] +Samme som /join ovenfor. + + + +/part [kanal] [grund] +Forlader kanal med grund og lukker tilsvarende kanalfaneblad. Inde i en &konversation; kanal eller et forespørgselsfaneblad, kan du kun indtaste /part hvilket lukker kanalen eller forespørgslen med din standardbegrundelse som angivet i Indstillinger. + + +/leave [kanal] [grund] +Samme som /part ovenfor. + + +/quit +NÃ¥r dette indtastes i et kanalfaneblad, forespørgselsfaneblad eller DCC-faneblad, afbrydes forbindelsen til den tilsvarende server og alle kanalfaneblade, forespørgselsfaneblade eller DCC-faneblade som er Ã¥bne for denne server lukkes. + + +/notice alias|kanal msg +Sender meddelelse til brugeren med aliasset alias eller til alle i en kanal. Det følgende er et eksempel pÃ¥ hvad du ser i kanalfanebladet + +[17:14] [Notits] Sender meddelelse "Jeg tror jeg forstÃ¥r" til #konversation + +Og dette er hvad modtagerne ser + +[17:15] [Notits] -Eisfuchs- Jeg tror jeg forstÃ¥r + + + + +/query alias +Opretter et nyt faneblad med brugerens alias for en privat konversation, almindeligvis kendt pÃ¥ &irc; som en forespørgsel. Alt som skrives her ses kun hos dig og din partner. Du kan indtaste mere end et &nickname; adskilt af mellemrum og et forspørgselsfanebald for hvert &nickname;. Hver sÃ¥dan forespørgselsfaneblad vil være privat mellem dig og den forespurgte partner. + + + +/msg alias|kanal meddelelse +Sender en privat meddelelse til brugeren med aliasset alias eller til alle brugere i kanalen. I modsætning til /query Ã¥bner det ikke et nyt faneblad. Hvis meddelelse begynder med /me, formateres meddelelsen pÃ¥ samme mÃ¥de som en /me-kommando. + +Eksempler + +/msg Eisfuchs Jeg har brug for en del hjælp med kommandoen msg + +/msg #konversation Ny version af Konvi er online! + +/msg Eisfuchs /me kompilerer hÃ¥ndbogen lige nu. + + + + + +/smsg alias|kanal meddelelse +Samme som /msg undtagen at meddelelsen ikke vises pÃ¥ din skærm. Dette er nyttigt for at forhindre at kodeord og anden følsom information forbliver synlig pÃ¥ din skærm eller logges. + + + +/amsg alias|kanal meddelelse +Samme som /msg kommandoen ovenfor, undtagen at meddelelsen sendes til alle kanaler og forespørgsler som du har Ã¥bnet pÃ¥ alle servere du er tilknyttet i &konversation;. + + + +/op alias +NÃ¥r dette indtastes i et kanalfaneblad, forsøges det at give alias operatorrettigheder for kanalen. MÃ¥ske virker dette ikke hvis du mangler tilstrækkelige rettigheder til kanalen (du skal selv være kanaloperator). Du kan indtaste mere end et alias adskilt med mellemrum. + + + +/deop alias +NÃ¥r dette indtastes i et kanalfaneblad, fjernes operatorrettigheder fra alias. Du kan indtaste mere end et alias adskilt med mellemrum. + + + +/oper [alias] +Giver brugeren med aliasset alias &irc;-op rettigheder (administrator). Dette virker kun hvis aliasset er pÃ¥ listen pÃ¥ servernes O:-linje. En &irc;-op har ret til at udføre /kill for et alias, forbinde servere til &irc;-netværket med /connect med mere. Hvis alias ikke indtastes, forsøges det at give dig selv &irc;-op rettigheder. Du bliver spurgt om dit &irc;-op brugernavn og kodeord i begge tilfælde. + + + +/voice alias +I visse kanaler (med +m flag) kan brugere ikke sende meddelelser hvis de ikke har stemmeret. Denne kommandoen forsøger at give alias stemmeret. Du skal have kanaloperatorrettigheder for at udføre kommandoen. Kommandoen bruges oftest nÃ¥r du er operator pÃ¥ en modereret kanal. + + + +/unvoice alias +Fjerner stemmeret fra alias i kanalen. + + + +/topic [kanal] [meddelelse] +Forsøger at ændre emnet i kanal til meddelelse. NÃ¥r det indtastes i et kanalfaneblad, kan kanal udelades, og bliver som standard til kanalen som er aktiv i fanebladet. Hvis meddelelse udelades, vises kanalens nuværende emne. Ændring af kanalens emne kan mislykkes hvis du mangler tilstrækkelige rettigheder. + + + +/away grund +Hvis nogen forsøger at sende dig en privat meddelelse eller indbyde dig til en kanal, vil de blive fortalt at du er borte fra din maskine med grund. For at ændre din tilstand tilbage til det normale indtastes /away uden en grund. + + + +/aaway grund +Ligesom kommandoen /away ovenfor, bortset fra at kommandoen sendes til alle servere du er forbundet til i &konversation;. + + + +/invite alias [kanal] +Indbyder brugeren med aliasset alias til at gÃ¥ med i kanal. Kommandoen er særlig nyttig hvis kanalen kun er Ã¥ben for indbudte. NÃ¥r indtastes i et kanalfaneblad kan kanal udelades. + + + +/exec script [parametre] +Kører et skalscript som virker sammen med &konversation; som hedder script, og sender det parametre. Se Scripter for mere information om at bruge og skrive scripter. +Eksempler: + +/exec kdeversion + +Sender dit systems &kde;- og &Qt;-versionsnummer til kanalen. + +/exec cmd uname -a + +Sender din Linux-versionsstreng til kanalen. + + + + + +/notify [alias] +Tilføjer eller fjerner alias fra listen OvervÃ¥gede tilsluttede aliasser. Hvis aliasset allerede er pÃ¥ listen, fjernes det. Hvis det ikke er pÃ¥ listen, tilføjes det. Hvis alias udelades, vises den nuværende liste over overvÃ¥gede aliasser. + + + + +/prefs [list|gruppe] [liste|flag] [værdi] +Viser eller indstiller opsætning af &konversation; uden at bruge opsætningsskærmen. Hvis en parameter indeholder mellemrum, omgive den med citationstegn. + +Eksempler: + +/prefs list + +giver en liste af tilgængelige alternative grupper. + +/prefs "General Options" list + +giver en liste af valgmulighederne tilgængelige i gruppenGeneral Options sammen med deres aktuelle værdier + +/prefs "General Options" ShowTrayIcon + +Viser nuværende værdi af indstillingen som viser &konversation;s ikon i statusfeltet. + +/prefs "General Options" ShowTrayIcon false + +Lukker for &konversation;s ikon i statusfeltet. + + + + +/kick alias grund +NÃ¥r dette indtastes i et kanalfaneblad, forsøges det at sparke brugeren med aliasset alias væk fra kanalen med grund som begrundelse. Hvis grund ikke indskrives, bruges standardgrunden fra Indstillinger. Kommandoen mÃ¥ kun bruges i et kanalfaneblad. + + + +/ban [-host|-domain| -userhost|-userdomain] [kanal] brugere|mask +Forsøger at bandlyse bruger eller mask fra kanal. NÃ¥r dette indtastes i et kanalfaneblad, kan kanal udelades. For mere information om værter, domæner og masker, se dokumenterne pÃ¥ irchelp.org. For at hente den nuværende bandlysningsliste for en kanal, indtastes /mode kanal b. + + + +/unban [kanal] mønster +Tager en en tidligere bandlysning tilbage fra en kanal. NÃ¥r dette indtastes i et kanalfaneblad kan kanal udelades. + + + +/ignore [-all] alias +Tilføjer alias til din ignorér-liste. Du kan angive mere end et alias adskilt af mellemrum. Kanalmeddelelser fra brugere pÃ¥ din ignorér-liste vises ikke. Hvis du desuden indtaster -all, ignoreres alle typer af meddelelser fra brugeren (spørgsmÃ¥l, notitser, CRCP, DCC og undtagelser) sÃ¥ vel som kanalmeddelelser. + + + +/quote kommando +Sender kommando til serveren. + + + +/say meddelelse +NÃ¥r dette indtastes i et kanalfaneblad, sendes meddelelse til kanalen. Dette er det samme som at indtaste meddelelse i kanalens indtastningsfelt. Nyttigt for at sende &irc;-kommandoer nÃ¥r du ikke vil udføre kommandoen. To kommandotegn efter hinanden (//) gør samme som /say. Bruges ogsÃ¥ af script til at sende meddelelser. + + + +/raw [open|close] +Indstiller serverloggen til ubehandlet tilstand (open) eller afslutter ubehandlet tilstand (close). Hvis hverken open eller close indtastes, er standardværdien open. I ubehandlet tilstand viser loggen alle meddelelser som modtages fra serveren i rigtigt &irc;-format. + + + +/konsole +Ã…bner et nyt faneblad som kører en &kde;-terminal. + + + +/server [url] [kodeord] +Forbinder til serveren pÃ¥ adressen url. Hvis url udelades, forbindes til serveren som hører sammen med fanebladet hvor du indtastede kommandoen. Dette er nyttigt for at forbinde til en server igen hvis du blev afbrudt. Hvis serveren kræver et kodeord for at forbinde til den, indtastes det som kodeord. Hvis serveren kræver et andet portnummer end standardnummeret (6667), indtastes url sÃ¥dan her: irc.kde.org:6665. + + + +/dcc SEND alias [filnavn] +Sender filnavn til brugeren med aliasset alias. Hvis filnavn udelades, vises en dialog sÃ¥ du kan vælge en fil. + + + +/dcc +Ã…bner et DCC-statusfaneblad + + + +/ctcp alias|kanal ping +Sender en PING-meddelelse til alias eller kanal. Dette er nyttigt for at afgøre om nogen som du taler med har en lang netværksforsinkelse eller (nÃ¥r det sendes til en kanal) om dit system har en lang forsinkelse. + + + +/ctcp alias|kanal meddelelse +Sender en meddelelse til alias eller alle brugere i kanal. Det ligner kommandoen /msg ovenfor, bortset fra at meddelelsen sendes med CTCP-protokollen. Svaret fra den anden side afhænger af &irc;-klientprogrammet brugeren kører. Hvis du for eksempel taler med en anden brugere af &konversation;, returneres /ctcp Eisfuchs TIME systemtiden pÃ¥ Eisfuchs maskine. /ctcp Eisfuchs VERSION returnerer versionsnumret for &konversation; fra Eisfuchs maskine. + + + + + + + + + + +Scripter + +&konversation; levereres med nogle praktiske scripter som du kan køre fra programmet. For at køre et script i et kanalfaneblad, DCC-faneblad eller serverfaneblad, indtastes en kommando pÃ¥ formen + +/exec script [parametre] + +som kører et script som hedder script og sender det (valgfrie) parametre. + +Skriv for eksempel følgende kommandoer i et kanalfaneblad + +/exec kdeversion + +for at sende dine &kde;- og &Qt;-versionsnumre til kanalen. + +/exec cmd uname -a + +kører scriptet cmd, og sender uname -a til det. Det sender din Linux-versionsstreng til kanalen. + +For at fÃ¥ en liste over alle tilgængelige scripter, indtastes følgende kommando i en terminal: + +ls $KDEDIR/share/apps/konversation/scripts + +Du kan skrive dine egne scripter. Scripter er skalscripter og kan skrives med hvilket som helst skalsprog, sÃ¥som bash, perl eller python. NÃ¥r &konversation; kører et script, er de første tre parametre som sendes til scriptet: + + + +Portnumret for &irc;-serveren i fanebladet hvor kommandoen /exec blev skrevet. + + +Serverens adresse. + +Kanalens navn. + + + +Her er et eksempel pÃ¥ et skalscript (cmd). + + +#!/bin/sh + +# Kører en kommando og skriver resultatet ud i Konversation. + +PORT=$1; +SERVER=$2; +TARGET=$3; +shift;shift;shift; + +$@ | while read line; do dcop $PORT Konversation say $SERVER "$TARGET" "$@: $line"; done + + + +Bemærk at scriptet bruger DCOP til at kommunikere med &konversation;. Kommandoen /say gør at udskriften sendes til kanalen som en normal meddelelse. For at vise noget i fanebladet uden at sende det til andre brugere, bruges info i stedet. Kig i eksisterende scriptfiler for flere eksempler pÃ¥ at skrive scripter. + +For at kunne køre et script som du har skrevet, skal du installere det ved at kopiere det til $KDEDIR/share/apps/konversation/scripts eller til $HOME/.kde/share/apps/konversation/scripts. Du skal ogsÃ¥ give filen kørerettigheder, for eksempel med chmod a+x mit_script. + + + + + + + + +Kommandoreference + + + + + + +Hovedvinduet for &konversation; + + +Fil-menuen + + + + F2 Fil Serverliste + Viser listen med servere og kanaler. + + + F7 Fil Hurtigforbindelse + Viser Hurtigforbind-skærmen til at forbinde til en server. + + + Fil Forbind igen + Forbinder igen til alle servere som blev afbrudt pÃ¥ grund af en netværksfejl eller andet problem. + + + &Ctrl;J Fil GÃ¥ med i kanal + Viser en dialog hvor du kan indtaste navnet pÃ¥ en kanal at gÃ¥ med i. Gør det samme som at indtaste /join #kanalnavn i en kanal eller er serverfaneblad. + + + &Alt; &Ctrl;Q Fil Angiv som borte globalt + Ændrer status for dit alias til borte i alle kanaler. + + + &Ctrl;Q Fil Afslut + Afslutter &konversation; + + + + + + +Menuen <guimenu +>Redigér</guimenu +> + + + + &Ctrl;F Redigér Søg + + Søger efter tekststrenge pÃ¥ nuværende skærm. + + + + F3 Redigér Søg igen + + Søger igen efter tekststrenge pÃ¥ nuværende skærm ved brug af den tidligere søgestreng. + + + + &Ctrl;L Redigér Ryd vindue + + Rydder nuværende skærm. + + + + &Ctrl; &Shift;L Redigér Tøm alle vinduer + + Tømmer alle skærme. + + + + + + + +Menuen <guimenu +>Indsæt</guimenu +> + + + + &Ctrl;K Indsæt &irc;-farve + + Se Send farvelagte meddelelser. + + + + &Ctrl;R Indsæt Huske-linje + + Se Markering af kanal- og forspørgselslogger. + + + + &Alt; &Shift;C Indsæt Specialtegn + + Bruges til at indtaste specialtegn, sÃ¥som tegn pÃ¥ fremmede sprog. + + + + + + + +Menuen <guimenu +>Bogmærker</guimenu +> + + + + &Ctrl;B Bogmærker Tilføj bogmærke + + Lægger et bogmærke til for nuværende netværk og kanal + + + + Bogmærker Redigér bogmærker + + Ã…bner bogmærkeeditoren + + + + Bogmærker Ny bogmærkemappe + + Opretter en ny bogmærkemappe + + + + + + + +<guimenu +>Opsætnings</guimenu +>menuen + + + + &Ctrl;M Indstillinger Skjul menulinje + + Skjuler hovedmenuen. Tryk pÃ¥ &Ctrl;M for at vise den igen. + + + + Opsætning Skjul værktøjslinje + + Skjuler værktøjslinjen. + + + + Opsætning Skjul statuslinjen + + Skjuler statuslinjen for neden pÃ¥ hovedskærmen. + + + + Opsætning Identiteter + Viser skærmen Identiteter til indstilling af din identifikationsinformation. + + + Opsætnings Indstil genveje + + Tillader dig at ændre tastaturgenveje for &konversation;. + + + + Opsætnings Indstil værktøjslinjer + + Tillader dig at tilføje eller fjerne knapper fra &konversation;'s værktøjslinje. + + + + Opsætnings Indstil pÃ¥mindelser + + Viser skærmen Opsætning af pÃ¥mindelser. + + + + Opsætnings Indstil &konversation; + + Viser skærmen Redigér indstillinger. + + + + + + + +<guimenu +>Vinduer</guimenu +>-menuen + + + + &Ctrl;. Vindue ForegÃ¥ende faneblad + + Viser skærmen som svarer til foregÃ¥ende faneblad. + + + + &Ctrl;, Vindue Næste faneblad + + Viser skærmen som svarer til næste faneblad. + + + + &Ctrl;W Vindue Luk faneblad + + Lukker den nuværende skærm. Hvis en kanal lukkes, forlades kanalen. Hvis et faneblad med Servermeddelelser lukkes, lukkes alle Ã¥bne kanaler pÃ¥ serveren og afbryder fra serveren. + + + + F11 Vindue Luk alle Ã¥bne forespørgsler + + Lukker for alle Private konversationer (spørgsmÃ¥l). + + + + &Ctrl;H Vindue Skjul aliasliste + + Skjuler (eller viser) panelet med aliasser i kanalfaneblade. + + + + F4 Vindue OvervÃ¥gede tilkoblede aliasser + + Viser skærmen OvervÃ¥gede aliasser. Se OvervÃ¥g hvem der er pÃ¥. + + + + F5 Vindue Kanaler + + Viser en liste over kanaler tilgængelige pÃ¥ serveren. + + + + F6 Vindue URL-indfangning + + Viser skærmen &URL;-indfangning. + + + + Vindue Ny terminal + + Viser en terminalskærm. Du kan Ã¥bne sÃ¥ mange konsoller som du vil. + + + + &Ctrl;O Vindue Ã…bn logfil + + Viser en skærm med meddelelsesloggen fra nuværende faneblad. Virker kun for fanebladene kanal, servermeddelelser og spørgsmÃ¥lskanal. Logning skal være aktiveret med Indstillinger Indstil Konversation Logning i hovedmenuen. + + + + + + + +<guimenu +>Hjælpe</guimenu +>menuen +&help.menu.documentation; + + + + + + + +SpørgsmÃ¥l of svar +&reporting.bugs; &updating.documentation; + + + +NÃ¥r jeg starter &konversation; vil jeg forbindes til en server uden at gÃ¥ med i nogen kanaler. Hvordan gør jeg det? + + +Efterlad feltet Kanaler tomt pÃ¥ skærmen Redigér server. + + + + + +&konversation; forbinder ikke til nogen server. Hvad er der galt? + + +Der er flere ting som kan være galt. + + +Sørg for dig at du har indtastet det rigtige Servernavn og den rigtige Port pÃ¥ skærmen Tilføj server. + + +Kontrollér udskriften pÃ¥ skærmen Servermeddelelser for om der er nogen fejlmeddelelser. Afslog serveren forbindelsen pÃ¥ grund af et forkert kodeord? Afslog serveren forbindelsen fordi den kræver IDENTD og din maskine ikke svarede pÃ¥ forespørgsler om IDENT? Markerede du feltet SSL-protokol, men serveren understøtter ikke SSL? + + +Hvis du er bag en brandmur, sÃ¥ sørg for at de rigtige porte er aktiverede. &konversation; kræver at følgende porte er aktiverede: + + + +UdgÃ¥ende TCP 6667 (eller porten pÃ¥ serveren som du forbinder til) +Indkommende TCP 113 (hvis serveren kræver IDENTD) + + + + +For mere information om &irc;-forbindelsesproblemer, se irchelp.org. + + + + + + + + + +NÃ¥r jeg gÃ¥r til Vindue Kanalliste, kan jeg ikke vælge den. Hvad skyldes det? + + +Menupunktet Vinduer Kanalliste er grÃ¥t hvis et faneblad som ikke er en kanal, f.eks. OvervÃ¥gede forbundne aliasser vises for øjeblikket. For at gøre det muligt at vælge igen, gÃ¥ tilbage til et kanalfaneblad eller serverfanebladet. + + + + + + + + + + +Medvirkende og licens + +Konversation +Program ophavsret 2002-2005 ved Konversation-gruppen. +&konviwebsite; + +Bidragydere: +Dario Abatianni eisfuchs@tigress.com +Peter Simonsson psn@linux.se +Christian Muehlhaeuser chris@chris.de +John Tapsel john@geola.geo.uk +Ismail Donmez ismail.donmez@boun.edu.tr +Shintaro Matsuoka shin@shoegazed.org +Gary Cramblitt garycramblitt@comcast.net +Matthias Gierlings gismore@users.sourceforge.net +Alex Zepeda garbanzo@hooked.net +Stanislav Karchebny berkus@users.sourceforge.net +Mickael Marchand marchand@kde.org + + + +Tak til: +Michael Goettsche michael.goettsche@kdemail.net +Benjamin Meyer ben+konversation@kdemail.net +Jacub Stachowski qbast@go2.pl +Sabastian Sariego segfault@kde.cl +Olivier Bedard www.konversation.org hosting +Frauke Oster frauke@frsv.de +Lucijan Busch lucijan@kde.org +Sascha Cunz mail@sacu.de +Steve Wollkind steve@njord.org +Thomas Nagy thomas.nagy@eleve.emn.fr +Tobias Olry tobias.olry@web.de +Ruud Nabben r.nabben@gawab.com + + + +Dokumentation ophavsret © 2003-2005 Gary R. Cramblitt garycramblitt@comcast.net + +&erik.kjaer.pedersen.credit; +&underFDL; &underGPL; + + +Installation + + + + +Hvordan fÃ¥r man fat pÃ¥ &konversation; +&install.intro.documentation; Den seneste version af &konversation;, inklusive kildekode og byggeinstruktioner kan ogsÃ¥ hentes fra &konviwebsite; hjemmeside. + + + + + + +Krav + + + +For at det skal lykkes at bruge &konversation; har du brug for &kde; 3.2 eller senere, og en netværksforbindelse. For tidligere &kde;-versioner kan visse funktioner mangles. Hvis du vil køre &konversation; bag en brandmur, sÃ¥ se SpørgsmÃ¥l og svar. Hvis du ønsker at bruge SSL-protokollen, vil du mÃ¥ske have brug for OpenSSL. + + + + +&documentation.index; + + + diff --git a/doc/es/Makefile.am b/doc/es/Makefile.am new file mode 100644 index 0000000..212bba7 --- /dev/null +++ b/doc/es/Makefile.am @@ -0,0 +1,2 @@ +KDE_LANG = es +KDE_DOCS = konversation diff --git a/doc/es/addchannel.png b/doc/es/addchannel.png new file mode 100644 index 0000000000000000000000000000000000000000..08fde939ad282313219125e2d89f72ae6997cfe2 GIT binary patch literal 11767 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 bt!GIbn8VWWYz**5H=K-wqIjjKf&c#lAQT?B literal 0 HcmV?d00001 diff --git a/doc/es/addnetwork_co.png b/doc/es/addnetwork_co.png new file mode 100644 index 0000000000000000000000000000000000000000..fe1c9592da63aa446637dbe1a26a0cad529c7d6e GIT binary patch literal 38945 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

>v4{jZvUzvG%9lnyFT&0RPsGlfuE`H=+xQq2z zkszVa*=^!3p5V{!Zs}kb343(1vt^1L>q9tuKP5XCC000QJpKs1eWz=&K>A zGu)9Tux)Cb{N*9I;-2t9bd0As-q-gDhY9tS+1KTiuO%A2zH+g9N`(sqtHJ4lAq1cj zU~KmZCWo*;St8v0+5YVK)IrIYG4@ZcOZY0?Onx#x{h3FYULSF*jMxF369M@lnm=n0 zy#><#+Mox*NLvPr@JSuwAo&Dp@Fdl)Tq5h&w{C769C<;t#BIA)*W7#!@RCf0JP8pI zZ~3=Oh5~SKsF>^1MFU#{nqM@uX~RLIZn3=^6^OPUFrE|FokbOksNcNUm3vo6wfVJ# z#3Oe0uvGDAfUcfH;s~vZ)>!W1(f*;f9CU#X(a;k7WaW1MyX!gM=qSmn7gzp13-g`= z1DQ6qCCIE`xGpD@Mz%ILi{P>^zbdalJj=xO@V#w1Ta8<~YXKU&a_yQHz+lkk!&6sR z2V)BnXXWt<`(Q#fyAO~{<>1&|NgCTqP-R+r4$}QBrX@(!L8$8W>C>l%2$W0pz`#K9 z=(VbXNZ&VBfO_gf1S`^kQl5u<=iAk5{;<@b?RY^0>*~~$^rO`4m(ZEjTr;FI28+!o?%cTp zd2!fd#ai(1V$JKhe)TG{Q$eDt{kP8(r^60)Ak%I(e7wS*1t4kJ?6*OPvj;e`bc4VO z3b{oPo){K#O%%WweStC&41T~TiV=XqyVF?eW97DK&)u)dW=LOxI0})`GFuWTickcT zfnSIX+@I45NOwBmL=~%?N*lhTBNIbG-I?+ceFzPV;!~#sMsNiKt&_!UGd@%mKxow1 znrQ-T{LkW|7bK&ggo^5Td4rT)j4l>dQodmyE#Kh`ZmL9VGuZe=K$eV{xtsDw^Ho-TXD3JEcOZ zFJTh}I%x2ho6W2s5S|6?DXa0|O;S=)*h)SDZZN0&8?25R{K;EjJQ>;9FaJ5+pU{IS zqqHa%#}f&?MnsPHNIa?z;6T=iFdIwDX{gBx^t+y?6(A=ZZB}))2I5GG#q2e>E*MCC zp*9GNI$(bhC29Tz9C(}#-b1U)-NVCUZ!z4$bILsxTHq=aM&T0*R* zqeN~1lLte2;zz>vF729DZ|%1Ds|9{Ceivzyq$?q*ji{BCl@jY^0yOXz8^{LN9F4z~ zOkW{k)G#xXoNtdM26OiVtfMI?Iq41trO08k)YlJj2f&!Ky-1fc>_qOYJgcE5(te5Cp6ig(hVnVD}_ z=T}$#pil!zsvgW?#LBfD*o$=>(jO5HugM z7W{lbBr9xmUee>eUU}X%{Jj9_7(lEKG{>}?6V_n{@b}%&51q%#MPf#$&>^?Tk?fax zg7j_KS}uuWG4r{h;4mt}i;C0G%DIh?PZ=v#p!}qOPKe%fus;0~5}M(^EE{|D^m9iD zT+W#M_lk!4JtzX+b!VHsEnmRe+1;^sTo8`>-Y6j?m661`SHvc`^6^cr&?(P?qOX$O zlX^abnP((V``U`CzPj5#Ii!xVfF5hU?xeB!;AVW={I=JF{4BZT-r~f&A&s}J?FUdq zg>TsF)LLT;KSmPEhte)R_HLDn9ATc;JK2F`i>osVf z4-KCO#Ll?Wh63fP^pV<0}{qrX&SqG9wzE!+sHw)+@8n9y`wtn7(eXM}afdBz&hik>B_F~JG zmLcs=*ALnxTOXLno9mCYo0Ftysr>w~O64S3*Dis^;{q0c{O9!zFEJuMH(hMf1nO(* zk54{a)75oin|*7S!HJoHu0|S?cQsuK=@R8C*O1 zvTw=d&|z#i%4h-@16(Msi~M9bj@NvTY9{_v%}2SnGi^c{UdFkkvH}=3TO^%8nj9g)3f7Y z`xB1bBOd_kS}%2BQG5h}mlZ0hku6jzP@q&Q?4&*`G#4E6EGr5@(6g0~6Lw%T$xKR< zHlG_61Ue}CpHcS~&KPUG*VA1VJEd4JV|hD(iJ`6b^SWE?PfUu~4|Gbl(P0G#B3V+B zQLL{~DoR4%Eg}<){nA^?Bh@CDq5zD8K&(JaV$`htY&?l^;Q~@<0qp#&VW7Coc3lFZV!Cw7 zwX?G`Xfa_B=iQdekcAq?8<04e#OIfe_Sf@Xk+}#8(Z0{(gmZsiq}4GpVWBpjFgVu^jC^0Iiey-!e2(-#CY)uDgs7blAea^ zDM3cgv1bf8$#sB-B0h-F1{Z(z>I#VVfn@-Z5=vW2N=iZ8|G=a$u>dCh1y!`&Zl8j= zg~b$De?hB^`}!Ro1Qh-b6`gnm#AlTAu?^VAfwBMxuvaR8Oab311JDjy(J)g+D;>ij z=plGMr20belZed-cxdjd46#gX)S@V)_>FjlUkYtBEUV4xzN8nT=dsK;J99CuvL_}c zX729r2y)?z+8tAKrc@^JPU<|*G2L;^ik>?+%_~Y9$yzPMc_`C3LsZOo9*&uut5isf zWZQp3i|^-Ji67I`o12?A5#{hOFM*=x3l2s5-{>Nm20%_ocLHo6z$BRU!5ZWh%(iPP zzP`R_h=UmH;}`zG@@eSl35KTmdms%U0|yNtcW@a*1N`e3yaO1%Q5C<5zCM_(qJz75 z7fr>6F>rtuAq3yd$C|B85B~ZU6dY*)7(9IR=r#$7H#FS=cp^!@L?r=7oZ6uo2;JKk8Eli!+gUx9uE%e94!3+dpVnN>U ztF28uEBg{QgC`{Ymu{86ne!V4%TidK=!o%On*+d14FME+rR+SgXF~r3SXorS2ZQ|| z4WPKH-JTvtCsAK8{C)-u0l0sVs=Tdqur6Z#;eyMZMML93DeU4Q8j641JVJoUz&9$d&jVO1iJ0D$=jt{N8s3o$mK zaP58%ndb?lw!p?>0mR`l&K>XxXUePGBeAiuK`MNxOQ8Au1!T(M4C)Q7kEfrgLn;Va zu$Q-YHw}ylv=N&rks1snrI5C6faA*K^0Mgr_wVm`hpPv?6K>{wp%F5_4lybG1%}{_P zg_w-Y7iKWPEznSdNYw(x1)Q8FOr)sq(4)O_ZS>{w9{IOP?;0TRy|*-aL)$#{U)hb5 zQ$@cG0#-F^2O0n{RvA~dsekub4@8-F;neQ|SPI}Glvqf*33dUqW$lrd zS0K{{!0o-Yb$xd?SoINs5g$U&gFw^Oy&SAd4^8IZY)kVoZfndS_gWM z-=0UDRA6H=QU)xQ$+fk(RX1C3moQ+QjGUgFOf0<)R6!ENI3CLWxzhbe5HeUWfQ&qFKvoZ_?{e}Gg<~(trK>70F}I3^xR!#DMxS zCu4n7C}dV34|+hzjYN)SZ9qs!2yO%R8-E0H%>~PKWRR%Z|Dg@cT6=qCVFiXS8(k6L z3soR{b&O92g9UnFu%JPn_5oxC{mK-&?MuAkQLNB(uU08`uZD*^a_Jg!RJ%|)=NTiT zLv1CDpYJ2ZkA?KLA!kBdAc^^$owFgy-S9ROeMVpAf~^INhvR6FsPph!b71z@Hc zs@=O5z|a>mui%M5SeFuC){mDYVnLg}$$aF;EI+_1+G?glpI-<+XJW~E7A%x|@!b4o zW0|#e`!qC%+`XxURF7bq-jX3e;!14~AD!#Es|%35Xhx0*$42co?urM8L;M3Us4T_h%rf^z>OLvZ&d3C% zJblXj;m9sZg&!~H?jG1pm1r4Y0C5Ew9k6Jyxm04cd4Fps=jC)W2SUZ2dphCaP z)`@N1h>vLd*7kgx=G5nWCmwqebyrlNiE{Dx^?*NQ)Bi^u-aDb3$!kXPd0L|-UKQPm z$$t+RpY^*XW$LekKFvQ;eBKsW1@&`5rs03b=eLEte?PIq+>h$>S5X{hueayu4-MOm zfsJLNRBVdn7K~zHV$w6{Eio^$OXffDv{_Y0|5J&M5y`E`?wu3}4cvsEFNpte5CKMm z<}|U`m=-VAtKrePlGV(JtQlMc^&1(;}zgdpZwHz?eRJJG4M;BbGDxL=P2+z zM+idYNvceSi3RbY0AoX|HB9fQlzy52wx)z$S#$8Yo>y90cZ<#4rV4+cZU1kYV}(S-x))*kAv z59n!{thopE|KDF*#B*e_?zhxS=CoSSDB5K+>a82Bd+1a0TSu{rR()@Za5jz%q*VEP?#(}6@i;%CnqUO% zeXcY{@k?s~^SOGZ%_oV?QSQp-NeP5X0t>tKV1`B4X)98mxX5H8*2w9v!v3$+X;;x+ zjrG0#iOWQAP}l4a>`RF}hWqyVFW?h(H)1@W%H)cR-w6Bo7xx9SX`exayM@3am;OD5 zh^ATSqrZ`C`VcOFr*Gnwc0X zZZOw$kCwdA>Y%U2uO37DR84CI($rI94x2o&9I5_C{99~kPEi(ulVU3v zcQR=;bfVh*4zAy_HdXR!CipTmRnfC}sUgp~CXq#+=M7Cv8J^^_i0-8*KF!@mYcw=M z*ViuvWLs#esY>IM=7dgOtWomLgnKrRiqhNtJsi!RO4Ni}0hPfLI+na}p1<45aTYtj z-)EO6wl!3%3d+3dI%i0NrhY)wRd-|Ox_F7pynw&$XM%^-+*bo!BkLv^ zednFZ2(AAAJjjNZC{^1&Svfx$@17T_;KS*bLlZmW4E>ZwVcUh?g3al0*2PczM(6bl zRkvjo#cdXLCe4=tOLhfzA1d`8vuP%qMJBTsXtlhRsanO%d_F^k^mt6o@5)TnvhdU8 z8D=z&9bZc`Rm5Oi5q|SZIEP3&t!%G!=C>SiZI6P$(JxtAg@hWtSvYWJV18RhDteD2 ze^qLK-Hpo?Uj?Zh0;OwCE+V|k&|8IXp46$OW%4zQ3QC5WKk$sZv#=~smNdqTy@Mxq zy@!cStg-Gc`7e*nrxgjb-v?21wo}Z$%F#ETX><2!=a1-}@Y)Dy)^@nJ{527f04)}5 zPnDL4UNIHpueQWys8Er1*q7(zLD>40ZE{(`E6snFcZF{31;Z{0{Yr4UzUJFM+`{p# z>uY0l?-n^fSk3g?V1=$|R}N4r1!m4-DB^P3XT{JWTbFzgBQ%RJz1u;!Q@ z4IQZ)f0gt#-3AC20{_8_he5jn~r3|ToU)=nS_SztNVR)q?!gnn|6Xu&uJCR z_-axdXp_}s(oIdgKyLNOMRS}mM#g164`2P?tDF^CLBnsmZkJX`Glom?{tbofl{$NkKU9byd#I{q#adPwT&9J?cdcCx_GG{iq;a|Eu0;#Tf(k;nk1&3P@ZI zQT(s?izn&;l7wGvIRY6?|9)Gn2ik&u`rgZbf+BSde*gQr%9W~zmt?yCK9Dlm@9Dq% z!T*tMLiqn*wVeOk7yprM{zFyXxUP1Ogn~ly?!7)ND-*o^VMTl=&&Ea9B!qZBbZ_F_PZ<^Am8^kY)qp(3_d00CW`v}ZR&D^wE5 zktbwqpWYC;H^twSf9`*wGhH)S>#%ykB*|sYM7Eb5vGi#6lgdK!L-S~poJ^H6vhXyo z^w801La?|Set&H9JpWX^LP+%lR7*Ut0p7gGWN7l@jm4eSp}wM~KE?vEbRwbN+$Rhc z+jC=D$JK*=M>K^&$dO9y#F0}G@GaALu*7wPjje^#?_pu8HGT?sn5A4*73!_;6S65Z zc}i$W>3Cw%p9%w_)$7hqx!R?sDm>yOY$L)Hklyi982wFNu1x-kx@?G3t`wmyX`gxe z>zyG{<|ObQqn_mnCX55a|D1_M7Q(I3xWgV}h2GLHUAvgX0}(#U=Tir~tL)9q@a7K_ zNg&}}6bQU!{l)8De3&1P^$oCsb-U41wv;64JTlTZIaNOhm+(|VO(fIrzGQ3*M-@zh z4IWbK8xMHgf^T)PzR!t1_mlRPUK67%zGZD*+|}f{pfVzni%5PwrTCdcMui>E$pe~g z3&IDIMawK^4I6fcqS%amX3wWMmZr>-N2i(~mARO>BTWm}vO|))rC)Hsqni9AgB@&c zz`rJkDX7-}sn2xox}jVaF1~f{;2Fc(tzDGr6=kP^4it&ZR? zVu{ZlE=vID6%iH1*TW8(^Btfu6Ih4H{4kWFR!7i1pO?^zVkLh~eTuo&dP*6>|I#N( zRlt|41LL#ReF186gf0L1$A|xG0rajm(vO>}_esIOG)V(QmMI=}Y#QX48LFz(-O)|V z6UGlQuL#(c&FmY#>PosBBEHIJo!rjz?043cOOrzn;GuB$-&D;CZ11R{Lo>dDx9Is};miJ!#PXT>NfLaaQP+L1S&mKN{D5A}SF}`xj z9?hOT;G1a)Y)w4Dpv!dic#UVbkSh~Q@Vzs-JtCaB!-^Nmw=iol@m&df$%>INMCh-1 z4JGjFWcjgbAH#j-kRygfR(-5Ys#Ybb?Tz?PJUn|G4Q4n(I#RDmszOK#dEzLqJdb-6 zcqr-+;i;6miC=QcX8js( zw8xT%J!wJGBlcO^k=#p63xkeMmZp4hVa`5I-$5&R1=EAec)TF-CC(2Qj3dk0=2>R# zULLU*uKUuhe!1G?+1z0!YR_GJ($atJCBp0W5kkWg#~MR+hJ&Po(6LxJ)h^xsHEc=RS?#U#Clzj6P}g<3fqY%T);qq*h%L=rmB;l`!N% zNp!q(IE^fkGmOxVnb~>gQd#6Pf$K7xd2}t46`v)xx-Lg6`9Aq~pbib4&-2YWvBh^K zf3aMWeJCN(PRU`dSR0OR#lA#VON+Lv^tEE1!8c1-OW#y{R%o{*f1318l1I|zzAp?J z@-1lE7%#p~n_BKyUApY2oFxAtGjR9hT>~UPxvd?f7nqos&=UlG!ep~_e=SIz?JS@3 zFZG%`g^_bLy3osj6;nv`tz9FzvOo>za2h7ugY`Y8?mpt4$i*cq)6~(23tNva$JlvL zV29mOSR|4AniF|ERm_?>c#(I;Tk9P*PHR#l&&L+m48wIWB9LdgGuQR$yhZxCzxqnyurSGHL z<+@i%{0!vZJSJ+L-PI#8Kw0uY%R0b+z6C)!-Oh*+p%r#bHz9sqxaF zd#-hbBJii8G2P48TaMLg+YX$TPxa!qd8QBJ<~iphiShYj_R#qXwzstg138{rZ(S5h z4mvq;s^C!>EHKCTfL>MC(CWPPVuF^<+tqe$C%WFx^(1&pl&Wi(BTZ15s+V*wS&39U zOApUDJDd7+?GfjYVXu_v_l0h9*?<8FK|w*MBmVM8MssGRoPOh>8imXG7JVc@z17UD z-uRw)@u0ZAqw&+dPwLa}#82@@E4)0)S>jhuG4C<#)ee+nKlp+@*F4*jx;i^I$87NY zA^K{?VlR^$<@#Ayb`F)KgAdwyk<}8>vy&4d8Rc`wfFprf@G}4PYb?^w^)$lGX1uO7 z`oW8d=bjA|y{je|G;(A2(q!0~2T9Y52qCPFCpKaYTy4}C|dg%#paZE@u$BG`13peUIZA{YY zc0`K4e$5o5Ej+n63!Qn1uV0H3rL#PJeAq|E!`etAdG(%DI_%qX4Wy%glGJN{p%>`7 za~oeFPh;#GO%8@~(l)A5$VgCeoW6=q|3WZ9(qiXOFSlz<;}9whxYqt1Hkl|fXlMj1JY0zaiK>@hvt7uLHo_AqS)o~Vwy|Ldywt{s}_xT=`(=mmBYiPY~K?3>%k;wHSN zt*_t`8>xtqQ~g?G{H|rrFI9(t1UqA~{IyDTQ0og!MMnMx;}N0c&B@vHjI*}rv*sAi z?S-+lyz9oC%P_lW99toO7>&vBA1WyS(m_$&HuOgt(T2;k*i+#CUO zJ!qP$zkedV>+z9u#ZXnNXOv)vS|vIW=^;VO_%SZ5um>JlBV080pmf@^voEA{nWSJO zy1p`TPN}GqYjCATWb$#`oz3bi|)$*vg>3j$} zcrc#9bHof(fhk8zN7vL|_AwwYPf-;V9=^9U9}HE|yJO9Fm@jqB{(2OL z?fu6*AK`g_TEgd9lFa2o=$u$4d6R(0%2+Z_Wc3SNtAhjH+4 z&!U~#;<0sDX<3=Hyqa3iVYcc-0(BolhLJjp7OQGG+1A|hf{GO=3O{N7`gI`pikc1{ zk(pifnEvsy942;mGCRo|{}bF6lNN(T1CLM<@%sJZ#B@B9l#i&n8$&GwZOzeW-vll13(NTUwvr+s9|EjD7UIjN6@JKbHuq zoERS8*|7QoLxUP{2IMZ~XyQ_62&EGe*%ryKlyNuOvyY$pOQoyALP*oR8Q2mew`ePoguCB9iCgZ}PFH)jgQz>uiBNcy>TH&)bk}^YN9WtlTwNr#1ke$WI z;@y0zuGP6rQC@-4J@*G*DigCYb-9f$kS_$}U3TsD&Vu<%ig z2n$D}(Xe*i$5?5t7&_#2Murc^&CQ+nmc4Iw5bfEs7jH$5W$fsYbno7SsNc>uEgumU z&bF<8XKli21`Zs=pjTh#?a349+ouORGt&9+qgA-Nx|zNd<*E0m6$8rgOzdsTP4lF$ zUbCPoVixL7!DyZfMn5&0>?Y2X>A?nQb|at4!|0 zu>FfuELp!xZYC2#Jh->^@0=ZUEPG=`?a&~`pY%Rf@5a6NH88-}?D>gP-#*cDJ#HJ( z#16*IChu=8PzQBJ)Bf4&R=WGd#SwdftLA31{cn6c2*?y-A+0sd_t>F-XRx$ukp ze^g%*)Ix~=EChaDJNdwUJ$~|RgCBICNKn^=wZ)iUgIay>dD1Es7F}Mz;<+wR&%2vX zo<9G?LQ8^L2qAt!LG9q^$gvY=8eNDq)bCNF(U_f()S*&U|Bd{dsRXqULV{X6g`gG^ z)Ix}#CpR}2{+^t~iy6|FF^Y^R$ z+RJ+g3=Ck$_O0~l)ki9<5&Pnc|06IkK!REb(XbpG9BAk7X9{fbblSkl$?3k!yFCA# zDF{U46&M&`YAXq9Aw+|5a&mfLNQlOv%k$6GI|M}IC*Mpagb+eVPzxc15JG}l2qA=! zpcX<1A%q0A5JCtcB&dZDLI??JA%qY@NKgwQgb)(cLI@#*kf0Vq2qDBhzCyIBvO;P_ z2qA=!9<>lc2q7M+N1d_fGfug-lG+eL2q7AY%Q@F;gF0pJQK=Cjgb<>UIkGvHe*xW0 VatH+=E3NdQc}|0-Cfcl-QAsM&HKIQ`u?3C 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 literal 0 HcmV?d00001 diff --git a/doc/es/channel_screen_tour_co.png b/doc/es/channel_screen_tour_co.png new file mode 100644 index 0000000000000000000000000000000000000000..f97a28f1e85a8a52af0a3724ce180b8c2224a8e3 GIT binary patch literal 87922 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

IKs-W&00E+}W9TD?#95;4|ogRBzLhUPwbOfIr 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

)Ml+hPJP23qwRM#F#ax1&ePn$oeL@11Zq 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 F{{_^R_+$V8 literal 0 HcmV?d00001 diff --git a/doc/es/channellist_screen_co.png b/doc/es/channellist_screen_co.png new file mode 100644 index 0000000000000000000000000000000000000000..65a3ef68fa2ee78f89c80d74997056ef2cfd718a GIT binary patch literal 92402 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�&}5)#TSj`;4n_JXLxwyn?ICk&dPh`M#o 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